LoginSignup
3
4

More than 5 years have passed since last update.

機械学習(Azure)

Last updated at Posted at 2018-07-09

はじめに

 前回(2018/06/29)に弊社にて社外向け勉強会を「機械学習」で行いました。その際に使用した「Azure MachineLearning」の手順概要となります

 弊社では月に1回程外部勉強会を開催しております。実は筆者も先月社外勉強会を行いまして、その際のテーマが「クラウドで実践する機械学習」として「AWS」と「Azure」の機械学習のサービスを使用してどちらがより簡単か?どちらがより精度が高いのかを比較しました。本記事はその時のデモで取り扱ったデータの作成方法等のご紹介となります。
 前回は「AWS MachineLearning」を取り扱いましたので今回は「Azure MachineLearning」になります。

前回の記事 : 機械学習(AWS)


■1■今回やること

 [AWS MachineLearning]で行った「二項分類」を今度はAzureで行います。予測内容と使用する予測データは「AWS」で使用したものと同様のものを使用します。作り方等は機械学習(AWS)を参照してください。

作業時間はおおむね30~40分程度となります。

テーマ:
「AWS」、「Azure」それぞれの機械学習サービスはどちらが簡単でどちらの方が精度が高いか

本記事の予測内容:
「Azure」の「MachineLearning」を使用してある特定日に雨が降ったか降らなかったのかを予測する

■2■準備

・Azure Account
・予測するデータ(今回は気象庁のデータになります)

-予測データ概要-
日にち : 2014年1月1日 ~ 2018年5月31日
天候予測地区:東京
データ取得日数 : 1613日
データ数 : 36349

■3■ワークスタジオ作成

 まずはAzureのMachine Learningを使用するためのワークスペースを作成します。
やり方はMarketから該当するものを選びます

1). 「Azure Portal」にログインしmarket playce から[Machin Learning studio]を選択

image.png

2). 「作成」を押下する
3). 以下設定内容を入力し「作成」を押下する
  3-1). ワークスペース名を入力する(TESTML-201807)
  3-2). リソースグループは「任意」もしくは「新規」を選択する
      ※自動作成させるため本書では「新規」を選択(TESTML-201807)
  3-3). 場所 ⇒ 東日本
  3-4). ストレージアカウント ⇒ デフォルト
  3-5). ワークスペース価格レベル ⇒ デフォルト
  3-6). webサービスプラン ⇒ デフォルト
  3-7). webサービスプラン価格レベル ⇒ 以下を設定
      DEVTEST Standard : 無料
  3-8). 「ダッシュボードにピン止め」 ⇒ チェック

image.png

■4■DataSet

 AWSでも行ったようにAzureのストレージにデータをアップします。ここで使用するデータはAWSMLで使用した[Weather.csv]になります。データの作成方法はリンク先(AWSML)をご参照ください

1). 下記画像より「Machine Learning Studio の起動」をクリック

image.png

2). 「Microsoft Azure Machine Learning Studio」の画面から「Sign in」をクリッくしログインする。

image.png

3). 「Microsoft Azure Machine Learning Studio」の画面から「DATASETS」を選択しページ下部にある「+NEW」をクリックする

000001.png

4).「FROM LOCAL FILE」を選択する
image.png

5).「ファイルを選択」を押下しデータとして使用するファイル(Weather.csv)を選択する。

image.png

6). アップロードが終わるまで静観する

image.png

7). アップロードしたファイルが表示されていることを確認する

000002.png

■5■Model作成

 AWSと違いAzureではモデルの作成を自動化させることはできません。しかしながらGUIでモデルの作成が可能です。作成方法に関しては多少の機械学習の知識が必要になりますが深い知識は必要ありません。また各オブジェクトでデータがどうなっているかを確認することができるためその点はAzureのほうが親切だといえます。

1). 「Microsoft Azure Machine Learning Studio」の画面から「EXPERIMENTS」を選択しページ下部にある「+NEW」をクリックする

2). 下記画面から「Blank Experiment」を選択する

image.png

3). 以下画面から「Saved Datasets」 ⇒ 「My Datasets」の順に展開し「アップロードしたファイル」をダブルクリックする

image.png

4). 「Search experiment items」に「Select」と入力し「Select Coumns in Dataset」をダブルクリックし展開する

image.png

5). 「Weather.csv」と「Select Coumns in Dataset」を下図のように関連付けを行う

image.png

6). 「Select Coumns in Dataset」オブジェクトの「Launch column selector」をクリック

image.png

7). 下図のように項目をすべて選択し「>」をクリックして追加する。追加後、「レ点」をクリックし反映させる

image.png

8). 「Search experiment items」に「split」と入力し「split data」をダブルクリックし展開し
「Select Coumns in Dataset」と「split data」を関連付けする

image.png

9). 「split data」の「Fraction of rows in the first output dataset」を「0.5」から「0.75」に変更する

image.png

10). ページ下部にある「Run」を押下する

image.png

11). 「split data」の下図赤枠内を右クリックしメニューより「Visualize」をクリックする

image.png

image.png

12). 下図画面より赤枠内を確認する
   ※上記画像の左右両方で同様の作業を行い、Rowsがどちらが多いかをチェックしておく

image.png

13). 「Search experiment items」に「Train」と入力し「Train Model」をダブルクリックする。展開後は、「Split Data」のデータ数の多いほうと「Train Model」の左側に関連付けを行う

image.png

14). 「Search experiment items」に「two」と入力し「Two-Class Boosted Decision Tree」をダブルクリックして展開する

15). 展開した「Two-Class Boosted Decision Tree」を「Train Model」の上部に配置し、「Train Model」の右側と関連付けをする

image.png

16). 「Train Model」オブジェクトの「Launch column selector」をクリック

image.png

17). 下図のように「ターゲット」を選択し「>」をクリックして追加する。追加後、「レ点」をクリックし反映させる

image.png

18). 「Search experiment items」に「Score」と入力し「Score Model」をダブルクリックする。
19). 以下の内容の関連付けを行う
   ・「Score Model」の右側と「Train Model」
   ・「Score Model」の左側と「Train Model」

image.png

20). ページ下部にある「Run」を押下する
21). 「Search experiment items」に「Eva」と入力し「Evaluate Model」をダブルクリックする。展開後、「Score Model」と「Evaluate Model」の左側を関連付けする
22). 「Evaluate Model」を右クリックしメニューより「Run selected」を選択する
image.png

22). (補足)上記実施後、「Visualize」すると[ROC曲線]や[AUC評価等]確認が可能

image.png

23). ページ下部にある[SAVE]をクリックして保存する

image.png

■6■予測

 前項でモデルの作成は終わり予測の準備段階は整いました。本稿では作成したモデルをWEBサービスにして予測の実行を行います

1). 「Microsoft Azure Machine Learning Studio」の画面下部の「Run」を押下する
2). ページ下部にある[SET UP WEB SERVICE]をクリックする

image.png

3). 「Select Coumns in Dataset」と「Weather.csv」に関連づいている線を右クリックし「Delete」を選択する

image.png

4). 「Search experiment items」に「Select」と入力し「Select Coumns in Dataset」をダブルクリックし展開する。展開後「Weather.csv」と関連付けを行う。

image.png

5). 手順「4」で作成した「Select Coumns in Dataset」をクリックし「Launch column selector」をクリックする

image.png

6). 「Select columns」で以下の設定を行う
  ・「BY NAME」から「WITH RULES」に変更
  ・「Begin With」を「ALL Columns」に変更
  ・「Include」から「Exclude」に変更

image.png

7). 「Select columns」で以下の設定を行う
  ・下図のように「ターゲット」を指定し、「レ点」をクリックし反映させる

image.png

8). 「Select Coumns in Dataset」同士を関連付けする

image.png

9). 既存の「Select Coumns in Dataset」を削除する

image.png

10). 「Web Service input」と「Select Coumns in Dataset」を「Score Model」に関連付けをする

image.png

11). ページ下部にある「Run」を押下する
12). ページ下部にある[DEPLOY WEB SERVICE]を押下する
image.png

----予測実行-----

13). 表示されたWEBページの下図枠内をクリックする

image.png

14). 表示されたページに以下の日程のデータを入力する。入力後「レ点」をクリックし反映させる
   ・2018年7月2日

image.png

15)「Detail」をクリックし以下のResult部分を確認する

16). 手順「13). ~ 15).」を繰り返し「2018年6月10日」分のデータを取得する

00C.png

■7■予測結果

 前項までで「AWS」で使用したデータ「Weather.csv」を使って「2018年7月2日」と「2018年6月10日」のデータを予測しました。本稿ではその予測結果と、実際のデータの比較を行います。

<<2018年7月2日>>

◆気象庁データ : 雨は降っていない
image.png

◆入力データ

入力データ
年月日,平均気温(),最低気温(),最高気温(),降水量の合計(mm),日照時間(時間),降雪量合計(cm),平均風速(m/s),最大風速(m/s),最大風速(m/s),平均湿度(),平均蒸気圧(hPa),平均雲量(10分比),合計全天日射量(MJ/),最深積雪(cm),最大瞬間風速(m/s),最大瞬間風速(m/s),最多風向(16方位),最小相対湿度(),最低海面気圧(hPa),平均海面気圧(hPa),平均現地気圧(hPa),平均雲量(10分比)
2018/7/2,28.8,24,33.5,0,13.6,0,3.7,10.9,,70,27.6,0,29.11,0,10.9,,,54,1010.9,1014,1011.3,
2018/6/10,20,22,18.6,31,0,,3,6.5,東北東,91,21.2,10,2.09,0,11,東北東,北東,76,1006.9,1009.6,1006.8

◆機械学習予測結果 : 0 (雨は降っていない)

20180702-WeatherResult
Result: {"Results":{"output1":{"type":"table","value":{"ColumnNames":["年月日","平均気温(℃)","最高気温(℃)","最低気温(℃)","降水量の合計(mm)","日照時間(時間)","降雪量合計(cm)","平均風速(m/s)","最大風速(m/s)","最大風速(m/s) (2)","平均湿度(%)","平均蒸気圧(hPa)","平均雲量(10分比)","合計全天日射量(MJ/㎡)","最深積雪(cm)","最大瞬間風速(m/s)","最大瞬間風速(m/s) (2)","最多風向(16方位)","最小相対湿度(%)","最低海面気圧(hPa)","平均海面気圧(hPa)","平均現地気圧(hPa)","Scored Labels","Scored Probabilities"],"ColumnTypes":["DateTime","Double","Double","Double","Double","Double","Int32","Double","Double","String","Int32","Double","Double","Double","Int32","Double","String","String","Int32","Double","Double","Double","Int32","Double"],"Values":[["7/2/2018 12:00:00 AM","28.8","33.5","24","0","13.6","0","3.7","10.9","南","70","27.6","0","29.11","0","10.9","南","南","54","1010.9","1014","1011.3","0","0.00391858769580722"]]}}}}

<<2018年6月10日>>

◆気象庁データ : 雨は降っていなる
image.png

◆入力データ

入力データ
年月日,平均気温(),最低気温(),最高気温(),降水量の合計(mm),日照時間(時間),降雪量合計(cm),平均風速(m/s),最大風速(m/s),最大風速(m/s),平均湿度(),平均蒸気圧(hPa),平均雲量(10分比),合計全天日射量(MJ/),最深積雪(cm),最大瞬間風速(m/s),最大瞬間風速(m/s),最多風向(16方位),最小相対湿度(),最低海面気圧(hPa),平均海面気圧(hPa),平均現地気圧(hPa),平均雲量(10分比)
2018/6/10,20,22,18.6,31,0,,3,6.5,東北東,91,21.2,10,2.09,0,11,東北東,北東,76,1006.9,1009.6,1006.8

機械学習予測結果 : 1 (雨)

20180610-WeatherResult
Result: {"Results":{"output1":{"type":"table","value":{"ColumnNames":["年月日","平均気温(℃)","最高気温(℃)","最低気温(℃)","降水量の合計(mm)","日照時間(時間)","降雪量合計(cm)","平均風速(m/s)","最大風速(m/s)","最大風速(m/s) (2)","平均湿度(%)","平均蒸気圧(hPa)","平均雲量(10分比)","合計全天日射量(MJ/㎡)","最深積雪(cm)","最大瞬間風速(m/s)","最大瞬間風速(m/s) (2)","最多風向(16方位)","最小相対湿度(%)","最低海面気圧(hPa)","平均海面気圧(hPa)","平均現地気圧(hPa)","Scored Labels","Scored Probabilities"],"ColumnTypes":["DateTime","Double","Double","Double","Double","Double","Int32","Double","Double","String","Int32","Double","Double","Double","Int32","Double","String","String","Int32","Double","Double","Double","Int32","Double"],"Values":[["6/10/2018 12:00:00 AM","20","22","18.6","31","0","0","3","6.5","東北東","91","21.2","10","2.09","0","11","東北東","北東","76","1006.9","1009.6","1006.8","1","0.999954700469971"]]}}}}

■8■終わり

 前回は「AWS」でやって今回は「Azure」でやってみました。「AWS」のほうが処理自体は簡単ですがより細かい設定ができるのは「Azure」かなとおもいます。しかしながら今回は「よりシンプル」にという目標がありますのでそういった意味だと「AWS」のほうがいいのではないかと思います。

出展:気象庁HP(http://www.jma.go.jp/jma/)

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4