Microsoft Azure の Machine Learning でロジスティック回帰分析

  • このエントリーをはてなブックマークに追加

前回はRで競馬のデータをロジスティック回帰を使って分析しました。
今回はMicrosoft社が提供しているクラウドプラットフォームであるAzureのMachine Learningというサービスを使って
分析をしてみたいと思います。
前回やった分析の一部をAzureでやってみるといった内容です。
 

1. Microsoft Azureにログインします

アカウントの作成方法に関してはこちらを参考に

 

2. 左下のプラスボタンをクリックします

2015-01-21_blog.001

 

3.「DATA SERVICES」の「MACHINE LEARNING」の「QUICK CREATE」を選択します。

必要情報を記入し、「CREATE AN ML WORKSPACE」をクリックします。
STORAGE ACCOUNTがない場合は「Create a new storage account」を選択して作成する必要があります。
2015-01-21_blog-3.001
 

4. ML Studioへ

3.で作成したプロジェクトを選択します。
2015-01-21_blog.003
 

「Sign-in to ML Studio」をクリックします。
2015-01-21_blog-5.004

 

5. Experimentを作成

左下の「+NEW」をクリックします。
2015-01-21_blog.005
 

テンプレートの選択画面が出てきます。今回はロジスティック回帰を行いたいので、「Blank Experiment」を選択します。
2015-01-21_blog.006

 

6. データのアップロード

左メニューから使いたいアイテムを選んで、ドラッグアンドドロップで簡単に使うことができます。
基本的な操作方法等はこちらを参照ください。
使用感はKNIMEというソフトウェアとほぼ同じです。
2015-01-21_blog.007
 

分析に使うデータのアップロードを行います。
左下の「+NEW」をクリックします。
2015-01-21_blog.008
 

「DATASET」の「FROM LOCAL FILE」をクリックして、ローカルのデータをアップロードします。
2015-01-21_blog-4.001
 

データのアップロードが完了すると、左メニューの「Saved Datasets」から選べるようになります。
2015-01-21_blog.010

 

7. 構築したモデル

今回作ったモデルは下記のような感じです。
2015-01-21_blog.011
 

前回の記事で書いたように2クラスのロジスティック回帰の分析ですので、
今回は 「Two-Class Logistic Regression」アイテムを使っています。
「06_17_2500_l2.csv」はローカルからアップロードした学習用データです。
これらを「Train Model」アイテムにより学習させます。

学習したモデルと「06_20141228-10_17-2500_l2.csv」はローカルからアップロードした予測するためのデータで
「Score Model」アイテムにより、モデルへのあてはめ、確率を取得します。

今回は 「Two-Class Logistic Regression」アイテムを利用しましたが、
その他一般化線形モデルをはじめ、ニューラルネットワーク、SVMなんかも使えるようです。
また、Rのソースコードをワークフローに組み込むことも可能です。

「Score Model」アイテムの下側の丸を右クリックし、「Visualize」をクリックすると、予測結果を閲覧することができます。
2015-01-21_blog.012
 

このような形で、ロジスティック回帰分析による確率値の予測ができます。
2015-01-21_blog.013

 

Azure Machine Learningを使う利点・欠点

メリット
・プログラム不要。Webブラウザーで機械学習による分析ができる。
・作ったモデルをWebAPIしてくれ、外部プログラム・サービスから簡単に利用できる。
・R言語が使える。

デメリット
・Rによる分析に比べ、実行から予測結果の取得までにかかる時間が長い。
 (より大きなデータセットを扱うとまた違うかもしれません)
 
簡単にWeb API化してくれるのは便利ですね。
分析済みのモデルに関して、サクッとWebAPI化して、外部から利用するという用途はありかなと思っています。
また、Microsoft AzureのHDInsightというサービスと連携して、MapReduceすることもできるらしいです。

このあたり、今後も実験的に使っていこうと思います。

  • このエントリーをはてなブックマークに追加