ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

Azure Machine Learning で玉手箱の例題を解いてみる

Global Azure Boot Camp 2016 in Japan で LT した内容を記事にまとめておきます。
gooner.hateblo.jp

Azure Machine Learning を使って、玉手箱の例題を解いてみました。
玉手箱は、就職活動でお馴染みの WEB テストです。その中でも、計数理解テストにある「表の空欄予測」の問題を使います。表中の他の数値から規則性を見て、空欄の数値を答えさせる問題です。
機械学習の手法としては、線形回帰(Linear Regression)を使います。教師あり学習に属し、予測できるもの(関数)を作成する手法の1つです。

例題

こちらのサイトに掲載されている例題を使います。

f:id:TonyTonyKun:20160413182324p:plain

正解は、「A:210」となります。
ML Studio で ソリューション(Experiment)を作成し、この例題を解いていきます。

データのアップロード

例題の表をもとに CSV ファイルを作成します。

f:id:TonyTonyKun:20160413182500p:plain

DATASET - FROM LOCAL FILE メニューから、作成した CSV ファイルをアップロードして、画面中央のスペースにドラッグ&ドロップします。

f:id:TonyTonyKun:20160413182517p:plain

データの分割

必要なデータだけをアップロードしたので、データの正規化は必要ありません。
データを学習用とモデル評価用に分割します。Sprit Data モジュールを追加し、Fractionof rows in the first の値を 0.7 に設定します。

f:id:TonyTonyKun:20160413182637p:plain

この結果、学習用に70% のデータが割り振られることになります。

モデルの作成

線形回帰を使うので、Linear Regression と Train Model の2つのモジュールを追加します。

f:id:TonyTonyKun:20160413182725p:plain

販売量を求めたいので、Train Model の LaunchColumnSelector をクリックして「Sales」を設定します。

f:id:TonyTonyKun:20160413183133p:plain

モデルの評価

予想の販売量を出すために、Score Model モジュールを追加します。

f:id:TonyTonyKun:20160413183248p:plain

Score Model には、入力口が2つあります。左側は学習用、右側は評価用のデータの入り口となります。
次に、予想と実際の比較をするために、Evaluate Model モジュールを追加します。

f:id:TonyTonyKun:20160413183259p:plain

ここまでの操作で学習アルゴリズムの訓練が終わり、モデルを構築できました。

Web API の公開

SET UP WEB SERVICE の Predictive Web Service[Recommended] を実行すると、Web service input と Web service output のモジュールが上下に追加されます。

f:id:TonyTonyKun:20160413183401p:plain

RUN → DEPLOY WEB SERVICE の順序で実行します。Web API の公開が完了すると、テストページに遷移しますので、Test ボタンを押します。

f:id:TonyTonyKun:20160413183417p:plain

4月5日の降水確率と平均気温を入力して、実行します。

f:id:TonyTonyKun:20160413183431p:plain

「209.997288616848」という結果が返ってきましたので、正解の「A:210」にかなり近い結果を取得できたことが分かります。

まとめ

Azure Machine Learning は、機械学習の知識がなくても、ブラウザで簡単に学習アルゴリズムを作ることができます。Web API も公開することができ、テスト機能もあるのですぐに検証できる面白いサービスです。いざ試してみようとすると、データを用意するのが大変なので、身近なデータを使ってみると分かりやすいです。機械学習を本格的に取り組むと敷居が高そうなので、まずは Azure Machine Learning で遊んでみるところから始めてみようと思います。