読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Azure MLでガジェクラかどうか判定してみよう #azurejp #jazug

Azure

たなかさんからこんな問い合わせがありました。

なので手動でインタビューをしてサンプリングしたのと一般人を大量投入したデータを作ってみました。

f:id:okazuki:20151008224617p:plain

おでさん(予測値)が際立ちますね。

クラスタリング

さて、教師なし学習の代表例?であるクラスタリング(要は分類)してみたいと思います。データをつっこむと勝手にデータをグルーピングしてくれるというやつですね。便利便利。

データのアップロード

先ほど作成したデータをML StudioのDATASETにアップします。

f:id:okazuki:20151008224948p:plain

EXPERIMENTSの作成

ガジェクラ判定機という名前でEXPERIMENTSを作成して先ほどアップしたガジェクラ誰だというDATASETを置きます。クラスタリングをしてくれるアルゴリズムはK-Means Clusteringというのがあります。こいつをぽとっと置きます。

クラスタリングのトレーニングはTrain Clustering Modelでやります。こいつをつなぎ合わせます。

Train Clustering Modelに赤いびっくりマークが出るので右側のLaunch column selectorでクラスタリングの判定に使う列名を指定します。今回は端末所持台数であるcountを選びます。

f:id:okazuki:20151008225420p:plain

これで、こんな感じになります。

f:id:okazuki:20151008225520p:plain

K-Means ClusteringでNumber of Centroidsの数字をいじると何個に分類分けするか決めることができます。今回はライトユーザー、ヘビーユーザー、廃人の3パターンくらいにわけたいので3を設定しました。

f:id:okazuki:20151008225727p:plain

最後に、結果を表示するためにProject Columnsで表示列を絞り込みます。Train Clustering Modelの右側のピンとつないでname, count, Assignmentsを選びます(Assignmentsが分類結果)

そしたら実行します。

実行してProject Columnsの出力をVisualizeすると以下のようになります。

f:id:okazuki:20151008230738p:plain

どうやら0がライトユーザー、1が廃人、2がヘビーユーザーと分類されたみたいです。(ここらへん分類にどういう名前つけるかは人の仕事)

では、SET UP WEB SERVICEでPredictive Web ServicesでWebサービス化しましょう。以下のような感じになります。

f:id:okazuki:20151008231211p:plain

ガジェクラ誰だとAssign Data to Clustersの間にProject Columnsを入れて入力をcountのみに絞り込みます。そしてAssign Data to ClustersとWeb service outputの間にProject Columnsを入れてAssignmentsのみに絞り込みます。(Assignmentsが出ない場合は適当な列を選んでから一度実行するといい)

RUNしてエラーがないことを確認したらDEPLOY WEB SERVICEをします。

Excelで動作確認

ダウンロードできるエクセルを使って動作確認をします。 0がライトユーザーで2がヘビーユーザーで1が廃人です。

1台持ちの人はライトユーザー。 f:id:okazuki:20151008232447p:plain

5台持ちの人はヘビーユーザー。 f:id:okazuki:20151008232559p:plain

15台持ちの人は廃人っぽいです。 f:id:okazuki:20151008232647p:plain

まとめ

スマートフォンの持ちすぎには注意しましょう。