コードの写経だけで満足しないために。初心者のための機械学習WEBシステム構築のはじめの一歩。ブログお問い合わせコードの写経だけで満足しないために。初心者のための機械学習WEBシステム構築のはじめの一歩。LINE2018.10.26こんにちは、荒井(@yutakarai)です。僕が最初に機械学習に学びはじめた当初、誰かが書いて公開したソースコードをそのまま写して動かす、ということを繰り返していました。誰かが書いたソースコードをそのまま写す「写経」から学べることも大きいです。そこで自己満足していては先へ進めないということに気づきました。今回は、コードの写経だけで終わらないために、簡単な機械学習WEBシステムを作る方法を説明します。目次まずは、データセットを手にいれるモデルをトレーニングする機械学習モデルの保存とロード機械学習モデルを組み込むWEBシステムを準備するサーバーにモデルを配置するまとめまずは、データセットを手にいれる機械学習プロジェクトは、良いデータセットを見つけることが大切です。データ活用は目的ではなく手段こんにちは、荒井(@yutakarai)です。「我が社もビッグデータを活用するんだ!」といわれてもなにをどうすれば良いかわかりません。データを活用して何がしたいかが明確になっていないからです。課題や目標を明確にすること...localab.jpデータセットの質が低かったり小さすぎる場合、正確な予測を行うことはできません。Repositoryなどで良いデータセットを見つけることができます。今回この記事では、ワイン品質のデータセットを利用してみます。特徴として、pH、密度、酸性度などがあり、ラベルカラムとしてワイン品質(0から10の間でスコア)があります。10)(ワイン品質)このデータセットを扱うためにpandasというライブラリを利用します。pandasは、データ解析についての便利な機能を提供しているライブラリです。データセットをpandasにロードし、ラベル(label)と特徴(features)に分割します。ラベルとして「品質」を取得し、そしてその他のすべての特徴を取得します。axis=1)モデルをトレーニングする機械学習は、ラベルとその特徴との間の関係を見つけることによって機能します。モデルにデータセットを与え、モデルはそれぞれの特徴がラベルにどのように影響するかを学習します。このプロセスを、モデルのトレーニング(学習)と呼びます。シンプルな機械学習のためにScikit-learnライブラリを利用します。今回のワインのデータセットには、線形回帰モデルを使います。線形回帰は、データ分析の中でも非常に単純なモデルです。データセットを通って一番良い直線の直線を描こうとするモデルです。(詳しい解説は専門書を参照するかググってみてください)モデルはfit関数を通して回帰データを得ます。予測機能によって偽ワインの特徴を渡すことでモデルを利用できます。例として下のコードでは、偽ワインの特徴(適当な特徴の数値)をモデルに渡しています。モデルはトレーニングに基づいて答えを出力します。regr.predict([[6.3,1.65,0,2.3,0.062,23,30,0.8876,4.63,0.59,8.2]]).tolist()機械学習モデルの保存とロードPythonのPickleライブラリを利用すると、学習済みのモデルをファイルに簡単にシリアライズできます。モデルを保存しておくと、プログラム内でモデルを読み込んでそのまま使うことができます。これにより、モデルをトレーニングするコードと、モデルを展開するコードとを分けておくことができます。Pickleについては以下記事に書きましたのでご参照ください。Learningで、正確な機械学習モデルを見つけることは、プロジェクトの終わりではありません。今回は、scikit-learnを使って機械学習モデルを保存して読み込む方法を紹介します。これにより、モデルをフ...localab.jp以下のコードでは、一度保存したモデルを他のプログラムでロードして使用しています。pickle.load(open("winemodel.pkl","r"))機械学習モデルを組み込むWEBシステムを準備する機械学習モデルをWEB上で使うためには、WEBシステムを準備する必要があります。WEBシステムは、送られたリクエストに対して紐づけられた処理を実行します。実行した結果をレスポンスとしてリクエスト元へ送り返します。Flaskは、手軽にWEBシステムを作成することができるPythonのフレームワークです。以下のコードでは、Flaskを利用してシンプルなWEBシステムを実行します。ひとつPOSTリクエストを待ち受け、リクエスとを受けたらレスポンスを返します。POSTリクエストによって、JSONオブジェクトが渡されます。"さん"サーバーにモデルを配置するpickleライブラリを利用して、学習済みモデルをWEBシステムにロードすることができます。これでこのWEBシステムは初期化の際、学習済みモデルをロードするようになりました。「/predict」へリクエストを送ることによってモデルを利用できます。リクエストを受け取ったシステムは、JSON情報を取得し、モデルに渡します。レスポンスとして、モデルの予測結果が返されます。flask.jsonify(response)まとめGithubのリポジトリにソースコードを上げておきましたので、ご確認ください。今回は、ものすごくシンプルな機械学習WEBシステムをつくってみました。おおまかな流れを掴んでいただけたら幸いです。実際にビジネスに適用する場合は、もっとたくさん考慮しなければいけない点や、泥臭い作業があります。公開されているサンプルをそのまま使って実行するだけでは、そこから実務へ活用するまでにはギャップがあります。実務への機械学習の活用を考えた際は、ぜひ自分の手で試行錯誤しながら作ってみることをおすすめします。AIをビジネスに導入する前に行うべきPoC(概念実証)とは?こんにちは、荒井(@yutakarai)です。AIをビジネスに活用しようと考える企業が多くなってきました。「AIを活用するんだ」といっても、そう簡単に活用できるものでもありません。それっぽいAIシステムを作って...localab.jpロカラボのサービス紹介はこちら人気の記事◾️ITシステムを内製化するための現実解。◾️AIは魔法の杖じゃない。scikit-learnで機械学習モデルを保存&ロードする人気ブログランキングへProfile荒井豊メイドインジャパンを盛り上げる!日本のモノづくりを全力で応援しています。IT内製化コンサルタント/PM/ITセミナー講師。理詰めで考えて泥臭く行動するのが性に合ってるみたいです。Cueこんにちは、荒井です。海外のスタートアップの事例を通して、新しいビジネスアイデアのきっかけや、ビジネスのヒントを得ようという主旨で、毎回気になった海外スタートアップを紹介しています。翻訳(適宜意訳)したものです。誤り等あればご指摘いただけたら幸いです。KOMPASこんにちは、荒井です。海外のスタートアップの事例を通して、新しいビジネスアイデアのきっかけや、ビジネスのヒントを得ようという主旨で、毎回気になった海外スタートアップを紹介しています。今回紹介するAIビジネスの事例は「KOMP...AI・機械学習・ディープラーニングAIプロジェクトを炎上させないための最低限チェック項目こんにちは、荒井(@yutakarai)です。早いもので弊社のAI/IoTの支援事業は4年目となります。Truthingこんにちは、荒井(@yutakarai)です。海外のスタートアップの事例を通して、新しいビジネスアイデアのきっかけや、ビジネスのヒントを得ようという主旨で、毎回気になった海外スタートアップを紹介しています。iBotこんにちは、荒井(@yutakarai)です。海外のスタートアップの事例を通して、新しいビジネスアイデアのきっかけや、ビジネスのヒントを得ようという主旨で、毎回気になった海外スタートアップを紹介しています。荒井豊メイドインジャパンを盛り上げる!日本のモノづくりを全力で応援しています。IT内製化コンサルタント/PM/ITセミナー講師。理詰めで考えて泥臭く行動するのが性に合ってるみたいです。メイドインジャパンを盛り上げる!日本のモノづくりを全力で応援しています。IT内製化コンサルタント/PM/ITセミナー講師。理詰めで考えて泥臭く行動するのが性に合ってるみたいです。0%"})}t.find(".footnote-content-wrapper").css({"max-height":Math.min(l,a)+"px"});t.css({left:s.leftRoom-s.leftRelative*o+"px"});m(t,s.leftRelative);parseInt(t.css("height"))。