SlideShare uma empresa Scribd logo
1 de 42
パソコン部活動報告
番外編2
最新の技術をとりあえず試
してみることを目的とした
部です。
活動内容
azure MLを使って機械学習をしてみる。
作った機械学習のモデルをWebサービス化し
て番外編1で作ったアプリケーションから呼び
出すまでをやってみる。
1.とりあえずやってみる
機械学習もazure MLもまったくわならないがノリでやってみ
る。
新規でExperimentを作成するとこんな画面になる。
1.とりあえずやってみる
あとは、やりたいようにフロ
ーを作ればおっけー!!
全然わからんな。
つか、日本語にしてよ!
1.とりあえずやってみる
まだ調べるには早いんだぜ!
データ読み込んで学習させればいいんだからこんな感じなは
ず。
1.とりあえずやってみる
Save Datasets >
Sampleから選択
Data Transformation >
Sample and Splitから選
択
Machine Learning >
Trainから選択
1.とりあえずやってみる
次は。。。。。
全然わからんな。
つか、日本語にしてよ!
1.とりあえずやってみる
1. データを選択する
2. 必要な項目を抽出する
3. 学習データと評価データに分割
4. 学習させる
5. 評価させる
6. 学習を実行
僕には敷居が高かったようです。。。
少し調べてみました。
azureでMLを作るときのフロー作成手順は
の順番で配置していく。
2.しらべてみる
1.データを選択する
データはazureが用意しているサンプルもあるけど、Rの時
に使ったデータを利用して予測させてみる。
自分の用意したデータは簡単にアップロードできる。
あと、データにデータベースを選択することもできる。
画面下部の+NEWを押すと↓の画面が出てくる。
FROM LOCAL FILEを選択するとアップロード画面が出てく
る。
3.フローの作成
アップロードすると、右メニューの[Saved Datasets]に表
示されるので、使う場合はD&Dかダブルクリックするとフロ
ー作成のエリアへ移動する。
ローカルからアップロード
したCSV
データベースを利用したい
場合はこっちのReader
3.フローの作成
2. 必要な項目を抽出する
説明変数(※1)として必要な項目を指定す
る。
Data Transformationのツリーから
[Project Columns]を選択する。
※1:物事の原因となる要因を表すもの。
目的変数(物事の結果)を説明するため
変数。
3.フローの作成
選択したデータとProject Columnsを接続する。
これでProject Colunmsを利用して説明変数を選択できる
ようになる。
配置したProject Columnsをクリックすると左メニューで
オプションを指定できるようになるのでそこから設定をす
る。
ここをクリックする
ここをクリックする
3.フローの作成
Launch columns selectorをクリックすると画面がポップ
アップするので説明変数にしたい項目を選択する。
関係ないけど、昔赤枠みたいに動くセレクトボックスを作ろ
うとして挫折したっけ。。。
3.フローの作成
3. 学習データと評価データに分割
学習データは言葉通りで学習させるためのデータ。
評価データは学習済みのモデルに通すデータ。
Data TransformationツリーからSplitを
選択する。
Splitを使って読み込みデータを学習データ
と評価データに分割させる。
3.フローの作成
配置したSplitとProject Columnsを接続する。
Splitクリックすると左メニューでオプションを指定できる
ようになる。
オプションは選択するSplitting modeによって変更される
。
3.フローの作成
1.Split Rows
2. Fraction of rows in the first output dataset
今回はSplitting modeにSplit Rowsを選択して実行するので
、Split Rowsとそのオプションを簡単に説明しておく。
データセットをランダムに学習データと評価データに分割
するモード。
読み込んだデータのうち学習データに割り振るの割合を指
定する。
3.フローの作成
4.Stratified split
3. Randomized split と Random seed
割り振るデータをランダムにするかどうか。
チェックを入れた場合、Random seedによって疑似乱
数シーケンスが初期化されるので同一のseedを使えば実
行結果が再現可能になる。
0の場合は実行する度にデータの振り分けが変化する。
層化分割(※2)するかどうか。
※2:統計学における母集団からの標本調査の手法のひとつ
3.フローの作成
4. 学習させる
学習させるためのモジュールはTrainってやつ。
Machine LearningからTrain Modelを選
択してSplitと接続させる。
他にも学習用モジュールがあるけど、選択
するアルゴリズムによって適切なものを選
択する必要がありそう。
3.フローの作成
次に学習用のアルゴリズムを選択する。
Machine LearningからBoosted
Decision Tree Regressionを選択し
てTrain Modelと接続させる。
予測のアルゴリズムでよく使われる
のは回帰分析ってことなので、
Regressionアルゴリズムから選択し
た。
他にも回帰のアルゴリズムがあるけ
ど、MSのデモムービーでこれを使っ
ていたから使ってみる。
3.フローの作成
Train Modelのオプションで目的変数を設定する。
ここをクリックする ここをクリックする
3.フローの作成
学習結果を受けて、ここのパラメータは変更するのがよいら
しい。
ここをクリックする
3.フローの作成
5. 評価させる
学習結果のモデルの性能を評価させる。
評価で使うのは、ScoreモジュールとEvaluateモジュール。
Scoreモジュールは実際の値と学習の結果出力された結果を
比較するモジュール。
EvaluateモジュールはScoreモジュールの比較結果を受けて
制度を数値化するモジュール。
評価させるときはこの2つのモジュールをセットとして考え
ておけばいい。
3.フローの作成
Machine LearninからScore Modelを選択してSplitとTrain
Modelと接続させる。
3.フローの作成
Machine LearninからEvaluate Modelを選択してScore
Modelと接続させる。
3.フローの作成
これでフローの作成が完了。
3.フローの作成
画面下部のRUNを押せば作ったフローに沿って学習が実行さ
れる。
実行が完了したモジュールは緑のチェックが付くようになって
いる。
4.フローの実行
学習結果を確認するのはScore Modelの下部にある●をクリッ
クしてVisualizeを選択する。
精度はEvaluate Modelの下部にある●をクリックして
Visualizeを選択する。
4.フローの実行
Score Modelの実行結果
Evaluate Modelの実行結果
ここが実行結果
意味がわからない。。。
4.フローの実行
Evaluate Modelの実行結果の内容はazureのドキュメントを
見るとこのように定義されている。
● 平均絶対誤差 (MAE) - 絶対誤差の平均です (*誤差*とは
、予測された値と実際の値との差です)。
● 二乗平均平方根誤差 (RMSE) - テスト データセットに対
して実行した予測の二乗誤差平均の平方根です。
● 相対絶対誤差 - 実際の値とすべての実際の値の平均との絶
対差を基準にした絶対誤差の平均です。
● 相対二乗誤差 - 実際の値とすべての実際の値の平均との二
乗差を基準にした二乗誤差の平均です。
● 決定係数 - "R-2 乗値" ともいいます。どの程度モデルが
高い精度でデータと適合するかを示す統計指標です。
4.フローの実行
各誤差の統計値は、小さいほど優れています。つまり値が小さ
くなるほど、予測が実際の値に近くなることを意味します。決
定係数では、値が 1 (1.0) に近づくほど、予測の精度が高く
なります。
つまり、決定係数(Coefficient of Determination)は1.0
に近ければよくて、それ以外は0に近ければいいということ
かな?
ってことは実行結果はダメな感じですね。。。
データが少ないのも原因かも。
4.フローの実行
ちなみにエラーが起きたらどうなるか試したところ、エラー発
生個所のモジュールに赤で×がついて、以降のフローは実行さ
れなかった。
赤×をクリックするとエラー内容が英語で表示されたのでそれ
をみれば何を直すかはちゃんとわかりそう。
4.フローの実行
ひとまず分析までできたから、Webサービス化してみる。
手順はとても簡単。
ここを押すだけ。
非活性になっている場合は、一度RUNを行えば活性化される
。
メニューのWebServiceからinputとoutputを配置して作る
こともできる。
5.Webサービス化する
作成すると、Webサービスのページが表示される。
5.Webサービス化する
呼び出し方とかのページへ
遷移できる
呼び出し方は↑の通り別ページに書いてあるのでそれを参考に
よびだしてみる。
6.Webサービスを呼び出す
nodeのアプリケーションから呼び出そうと試みるも、401エラ
ーになった。。。。
C#,Python,Rの場合はWEBサービス作成時に生成されるドキ
ュメントのコードをコピペすれば問題ないみたい。
6.Webサービスを呼び出す
エラーログを見てみると認証に失敗しているらしい。。
ってことは、request時に設定している値がおかしいというこ
と。
リクエストヘッダーをみてみたら、Authorizationにキーが設
定されていなかった。
凡ミスだぜ。。。。
6.Webサービスを呼び出す
再度実行したところ、400エラーが出た。。。
エラー内容は
「No request body provided or error in deserializing the
request body」
つまり設定しているパラメータがダメってことだね。
と思い込んでしまったため解決するのに時間がかかってしまっ
たよ。。。
6.Webサービスを呼び出す
実際はリクエストヘッダーのcontents-typeが
application/jsonに設定していたつもりが、
「application/x-www-form-urlencoded」
になっていることで、azure側の要求している形と違うことか
らエラーとなっていたみたい。
リクエストはnpmパッケージのrequest.jsを使っていたんだけ
ど、パラメータ設定では、対応できなかったので改造すること
にした。
6.Webサービスを呼び出す
request.jsの使い方は割愛するけど、optionにazureってのを
追加して対応した。
このoptionをrequest.postに渡す。
requestパッケージのrequest.jsのinit処理のformメソッド実
行後に、option.azareの分岐を追加してazureの場合は、
contents-typeにapplication/jsonにするようにした。
6.Webサービスを呼び出す
で、実行したところresponseが戻ってきた。
値もちゃんと入っているので、これでnodeアプリケーション
でもazureのmlを使ったアプリを作ることができそう。
6.Webサービスを呼び出す
azureのUIがイケてるから、ノリでできると思っていた時期が
僕にもありました。。。
そもそも、機械学習の知識がない人はノリで使うことはできな
い。
分析したいことがあったとしても、どんな分析方法を使えばい
いかわからないから。
オンラインドキュメントは完全には日本語になっていない。

Mais conteúdo relacionado

Semelhante a Azure ml

iphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリiphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリSatoru Murakami
 
機械学習のはじめかた
機械学習のはじめかた機械学習のはじめかた
機械学習のはじめかたBus Hato
 
活動報告7 d&dなディレクティブを作る-
活動報告7  d&dなディレクティブを作る-活動報告7  d&dなディレクティブを作る-
活動報告7 d&dなディレクティブを作る-vx-pc-club
 
活動報告5 ~簡単なディレクティブを作る~
活動報告5 ~簡単なディレクティブを作る~活動報告5 ~簡単なディレクティブを作る~
活動報告5 ~簡単なディレクティブを作る~vx-pc-club
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Hiroki Sakamoto
 
活動報告6 オートコンプリート的なディレクティブを作る-
活動報告6  オートコンプリート的なディレクティブを作る-活動報告6  オートコンプリート的なディレクティブを作る-
活動報告6 オートコンプリート的なディレクティブを作る-vx-pc-club
 
プログラミング勉強会
プログラミング勉強会プログラミング勉強会
プログラミング勉強会ssuser50bb47
 
PENGUIN AI ML-Agents
PENGUIN AI ML-AgentsPENGUIN AI ML-Agents
PENGUIN AI ML-Agentsyosukehirano1
 
Netcommonsアドオンモジュールセミナー第7回
Netcommonsアドオンモジュールセミナー第7回Netcommonsアドオンモジュールセミナー第7回
Netcommonsアドオンモジュールセミナー第7回Mitsuru Mutaguchi
 

Semelhante a Azure ml (13)

iphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリiphoneアプリ開発 その1:導入〜初アプリ
iphoneアプリ開発 その1:導入〜初アプリ
 
機械学習のはじめかた
機械学習のはじめかた機械学習のはじめかた
機械学習のはじめかた
 
Stac2014 石川
Stac2014 石川Stac2014 石川
Stac2014 石川
 
活動報告7 d&dなディレクティブを作る-
活動報告7  d&dなディレクティブを作る-活動報告7  d&dなディレクティブを作る-
活動報告7 d&dなディレクティブを作る-
 
活動報告5 ~簡単なディレクティブを作る~
活動報告5 ~簡単なディレクティブを作る~活動報告5 ~簡単なディレクティブを作る~
活動報告5 ~簡単なディレクティブを作る~
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
 
スライド2
スライド2スライド2
スライド2
 
活動報告6 オートコンプリート的なディレクティブを作る-
活動報告6  オートコンプリート的なディレクティブを作る-活動報告6  オートコンプリート的なディレクティブを作る-
活動報告6 オートコンプリート的なディレクティブを作る-
 
20140712 mintsumu
20140712 mintsumu20140712 mintsumu
20140712 mintsumu
 
3
33
3
 
プログラミング勉強会
プログラミング勉強会プログラミング勉強会
プログラミング勉強会
 
PENGUIN AI ML-Agents
PENGUIN AI ML-AgentsPENGUIN AI ML-Agents
PENGUIN AI ML-Agents
 
Netcommonsアドオンモジュールセミナー第7回
Netcommonsアドオンモジュールセミナー第7回Netcommonsアドオンモジュールセミナー第7回
Netcommonsアドオンモジュールセミナー第7回
 

Mais de vx-pc-club

Bing autosuggest apiを使ってみた
Bing autosuggest apiを使ってみたBing autosuggest apiを使ってみた
Bing autosuggest apiを使ってみたvx-pc-club
 
Azure text analytics apiつかってみる
Azure text analytics apiつかってみるAzure text analytics apiつかってみる
Azure text analytics apiつかってみるvx-pc-club
 
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-vx-pc-club
 
Azureで作るnodeアプリケーション①
Azureで作るnodeアプリケーション①Azureで作るnodeアプリケーション①
Azureで作るnodeアプリケーション①vx-pc-club
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-vx-pc-club
 
活動報告8 r入門-
活動報告8  r入門-活動報告8  r入門-
活動報告8 r入門-vx-pc-club
 
活動報告4 ~gitとjenkinsとcloud9~
活動報告4 ~gitとjenkinsとcloud9~活動報告4 ~gitとjenkinsとcloud9~
活動報告4 ~gitとjenkinsとcloud9~vx-pc-club
 

Mais de vx-pc-club (7)

Bing autosuggest apiを使ってみた
Bing autosuggest apiを使ってみたBing autosuggest apiを使ってみた
Bing autosuggest apiを使ってみた
 
Azure text analytics apiつかってみる
Azure text analytics apiつかってみるAzure text analytics apiつかってみる
Azure text analytics apiつかってみる
 
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-
Azure app serviceの環境構築 php7とpdo-sqlsrvを使う方法-
 
Azureで作るnodeアプリケーション①
Azureで作るnodeアプリケーション①Azureで作るnodeアプリケーション①
Azureで作るnodeアプリケーション①
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 
活動報告8 r入門-
活動報告8  r入門-活動報告8  r入門-
活動報告8 r入門-
 
活動報告4 ~gitとjenkinsとcloud9~
活動報告4 ~gitとjenkinsとcloud9~活動報告4 ~gitとjenkinsとcloud9~
活動報告4 ~gitとjenkinsとcloud9~
 

Azure ml

Notas do Editor

  1. Image Sources: http://www.flickr.com/photos/cat_bus/2436839379/sizes/l/ http://www.flickr.com/photos/chippenziedeutch/1338350448/sizes/l/ http://www.flickr.com/photos/17625613@N00/63534223/sizes/o/ http://www.flickr.com/photos/andy_bernay-roman/740526711/sizes/o/ http://www.flickr.com/photos/criminalintent/2246696077/sizes/l/ http://www.flickr.com/photos/criminalintent/2300328819/sizes/l/in/set-72157603816609718/ http://www.flickr.com/photos/criminalintent/2344482203/sizes/l/in/set-72157603816609718/ http://www.flickr.com/photos/billward/110319298/sizes/o/ http://www.flickr.com/photos/ginamig/2283868571/sizes/l/ http://www.flickr.com/photos/cochese/1388690893/sizes/o/