ブラウザで機械学習
Microsoft Azureですが、今年3月に、Pepperと連携することが発表されましたね。
この実証実験として、「Pepperだらけのケータイショップ」が記憶に新しいですが、店内では、カメラ映像からお客さんの年齢を割り出したりしていました。
この Microsoft Azureを使った予測分析を、ブラウザ上でできるサービスが ” Microsoft Azure Machine Learning Studio “です。
Azure Machine Learningは、クラウドベースの予測分析サービスで、データセットや学習モデルなどのモジュールを順に並べ、線で繋ぐだけで、簡単に予測分析ができるというもの。
Microsoftアカウントを持っていれば無料で利用できるとのことで、早速試してみました。
チュートリアルを試してみる:車の価格の予測分析
以下のチュートリアルに添って学習モデルを作成してみます。
最近、ブロックを繋ぐようなGUIベースの開発環境が増えましたねー。
1. 生データを加工する
調査したい生データは本来なら予め用意しておきますが、今回はAzure Machine Learning側で用意されたデータセット群の “Automobile price data(車両価格のデータ)” を使います。
実測に基づく生データは、値がところどころ抜けている箇所があり、このまま学習させると精度に影響が出ます。そこで、今回使う生データ中の、値が抜けている列を除外します。
2. 価格と相関がある車の特徴を抜き出す
相関を調べるため、予測する特徴の変動に関係しそうな特徴を、いくつか抜き出します。 データを自前で用意した場合では、予測する特徴や、調査する分野に関する知識や経験が重要となります。
ここでは、チュートリアルに従い、「メーカー」、「ボディ形状」、「ホイールベース」、「エンジンサイズ」、「馬力」、「エンジンの最高回転数」、「高速道路の燃費」、そして「価格」の列をモジュールで抜き出します。
ちなみに、ここで価格と相関がありそうな一般道路の燃費を選択しなかった理由ですが、価格以外の他の特徴(高速道路の燃費)と強い相関があり、データの信頼性が低くなるためです(多重共線性問題)。
3. 線形回帰で学習させる
2. で抜き出したデータの75%を使い、線形回帰アルゴリズムで学習させます。 アルゴリズムモジュールも、Azure Machine Learning側で用意されているので、ボックスを繋ぐだけです。
※線形回帰についてはここを参照↓
予測する特徴(ここでは価格)を選び、画面下部のRunボタンをクリックして学習を始めます。
4. 価格を予測する
2. のデータの残り25%をテスト用のデータとして、先程の学習モデルとScore Modelモジュールで評価します。
Score Modelモジュールの出力ポートをクリックし、Visualizeを選択すると、 既知データと、予測したスコアがひとまとめの表で表示されます。
表の右端のScored Labels列が、学習モデルがスコア付けした予測価格です。 列をクリックすると、frequency:度数(値の出現回数)を縦軸に取ったヒストグラムが表示されます。
さらに、compared to から他の特徴を選択すると、予測価格との相関を示すグラフが表示されます。
このグラフは予測価格と高速道路の燃費との相関
5.学習モデルを評価する
Evaluate Modelモジュールで学習モデルの信頼度を評価することもできます。 4. と同様にVisualizeを選択すると、既知データとの誤差や、決定係数(1に近いほど予測精度が高くなる)が表示されます。
決定係数が約0.91なので、かなり高い精度で予測できているといえます。
使ってみて
これまで、プログラムを書くか、新しく環境を用意しなければいけなかった機械学習が、ブラウザで、GUIベースで簡単に出来るようになり、利用ハードルは大幅に下がったと思います。
他にも、R言語やPythonで作成した自前のアルゴリズムを組み込んだり、Webサービスへのデプロイも出来るため、拡張性は高いのではないでしょうか。
どのアルゴリズムを使えばいいか分からない!という人の為に、チートシートも用意されています(英語)。 https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-algorithm-cheat-sheet/ ※非公式の日本語版チートシートもあるようです。
ただ、予測するデータに関する知識は別に必要になりますが…。
機械学習や統計分析が気になるけど、面倒臭そう、手が出にくい…と思っている人は、ぜひ触ってみてはいかがでしょうか。