Microsoft Azure Machine Learnig (ML) のサンプルの、Recommender Systemの中身
Microsoft Azure Machine Learnig (ML) のサンプルの、
Recommender Systemの中身
仕事で読んだので、まとめました。
一応 Microsoft Azure MLの初心者向けです。
■サンプルを開くところまで■
ぐぐれ。
■データセット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 ratingsをSplitで分けて、
計算したデータを、実際のRestaurant ratingsのデータで答え合わせしています。
Visualizeを開くと、MAEとRMSEが見られます。
どちらの値も、小さいほうがより正確だったということです。
ただ、統計のデータなので、あまりあてになりません。
レコメンドに限らず、
用途によっては許されない間違い(健康診断で病人を見落とすとか)があると思いますので、
結果の指標だけ見ずに、Score Matchbox Recommenderの結果とか、細かいところを見たほうがよいです。
メモ)気が向いたら、図を入れる