Microsoft Azure Machine Learnig (ML) のサンプルの、Recommender Systemの中身

Microsoft Azure Machine Learnig (ML) のサンプルの、

Recommender Systemの中身

 

仕事で読んだので、まとめました。

一応 Microsoft Azure MLの初心者向けです。

 

f:id:sumie_n_y:20150224104614j:plain

■サンプルを開くところまで■

ぐぐれ。

 

■データセット3つ■

Restaurant ratings

Restaurant customer data

Restaurant feature data

データセットの中身は、データセットのアイコンの下の丸を右クリック→Visualize を選択すると見られます。

 

左上にカラム数と、列数が表示されています。

Restaurant customer dataには、19項目、138人分のデータが入っているようです。

 

■前処理■

Restaurant customer dataと、Restaurant feature dataには、

レコメンドと関係のないデータも入っていますので、

Project columnsを使って、必要なカラムだけを抜き出しています。

 

Project columnsを選択した状態で、右のProperties(畳まれている場合は、上の<マークをクリック)を開きます。

Selected columnsに、選択したカラムが表示されます。

変更したい時は、Launch column selectorボタンで、変更画面が表示されます。

 

Restaurant ratingsは、Splitに繋がっています。

データを、学習用、計算用、評価用と分けてくれています。

 

■学習■

Train Matchbox Recommenderです。

Helpのページを見ますと、

(Propertiesの一番下の(more..)をクリックすると、Helpのページが開きます。)

Ratingのデータと、ユーザのデータと、アイテムのデータを入力すると、

学習後のデータを出力するそうです。

 

パラメータは2つです。

Matchbox論文を見ると、

Number of traitsは、特性ベクトルの数、

Number of recommendation algorithm iterationsは、この特性ベクトルの計算を何回繰り返すか、です。

特性ベクトルの数が、Restaurant customer dataと、Restaurant feature dataのカラム数より少なくないと動かないです。

特性ベクトルの計算回数も、答えが収束する計算なので、より多く繰り返せばいい結果が出るような気がしますが、

答えが変わらなくなってきたら、いい感じのところで止めてください。

 

■計算■

Score Matchbox Recommenderです。

Module parametersで、計算したいことを選択してください。

ふつう、みなさんの目的のデータは、これのoutputだと思います。

API化するときは、アイコンの下の丸を右クリックし、

Set as Publish Outputを選択します。変なマークがつきます。

 

■評価■

Evaluate Recommender です。

最後に、計算したデータが正しいか、

Restaurant ratingsSplitで分けて、

計算したデータを、実際のRestaurant ratingsのデータで答え合わせしています。

 

Visualizeを開くと、MAERMSEが見られます。

どちらの値も、小さいほうがより正確だったということです。

ただ、統計のデータなので、あまりあてになりません。

レコメンドに限らず、

用途によっては許されない間違い(健康診断で病人を見落とすとか)があると思いますので、

結果の指標だけ見ずに、Score Matchbox Recommenderの結果とか、細かいところを見たほうがよいです。

 

メモ)気が向いたら、図を入れる