科学の箱

科学・IT・登山の話題

機械学習

Mahout in Action/chap2

投稿日:

2.1

レコメンドには2種類ある。

  • collaborative filtering
  • contents based filtering

collaborative filteringではコンテンツの内容については一切関知しない。コンテンツについて同じ動作がとられた場合には関連があるとみなされる。コンテンツを精査する必要がないために属性がよくわからないコンテンツについても適用できる。別名ユーザーベースレコメンドともよばれる。

contents based filteringはコンテンツの属性から共通点を見つけ出してレコメンドをする。例えば本のレコメンドを考えると、本のカテゴリ、同じ出版社、同じ出版時期がある。別名アイテムベースレコメンドとも呼ばれる。コンテンツに関す専門知識が必要になることが多い。

2.2

RecommenderIntro

コンパイル

wget http://manning.com/owen/MiA_SourceCode.zip
cd tdunning-MiA-5b8956f
mvn install

1ntro.csvを現在のディレクトリにコピーする。

cp src/main/java/mia/recommender/ch02/intro.csv ./

実行する

java -cp ./target/mia-0.1-job.jar mia.recommender.ch02.RecommenderIntro
RecommendedItem[item:104, value:4.257081]

2.3 トレーニング

レコメンダの評価

レコメンダを作ったのはいいが、その結果は誰も保証できないし、好みに合っているかはレコメンダされた本人しかわからない。あるいは無意識の好みもあるので本人自身も、これって自分の好みになのかなあ、と疑問を持つかもしれない。

レコメンダがどの程度正しいかを把握するための評価ができる。データを学習用とトレーニング用セットに分ける。まず学習用でモデルを作る。次にトレーニングセットにモデルを適用する。実際の好みと計算結果の好みの差分を計算する。

差分が0であれば最高にマッチしているレコメンダということになる。差分は2通りの値の求め方がある。算術平均と平方和平均。算術平均では0になってしまうので、平方和を使ったほうがよいだろう。

EvaluatorIntro

java -cp ./target/mia-0.1-job.jar mia.recommender.ch02.EvaluatorIntro
1.0

ここでは結果は1になる。このモデルを採用した場合1~5段階で好みを設定した場合1くらいはずれるという意味になる。割合でいうと20%となる。これを大きいとみるか小さいと見るかはレコメンダの精度をどの程度求めるかによる。

適合率と再現率

レコメンダの評価をする指標として適合率と再現率がある。

適合率 = TP に対して全体の正として予測された割合

再現率 = TPに対して全体の正である割合

適合率は引っ張り出した検索結果がどの程度正しいかの指標になる。検索結果が大量に出たとしてもノイズが多い、つまり間違った結果が多ければ適合率は低くなる。それに対して再現率は検索もれの指標となる。適合率が100%であったとしても、検索漏れが200%あった場合には検索エンジンとしては役に立たない。

IREvaluatorIntro

java -cp ./target/mia-0.1-job.jar mia.recommender.ch02.IREvaluatorIntro
0.75
1.0

Item 2 に対する適合率が0.75であるから、検索結果の75%はただしいといえる。再現率は1.0は検索漏れがないことを意味する。

適合率と再現率の問題

  • ユーザーの好みとしてリストが上がっていなければレコメンドにはいってこない。知らないアイテムにも好みがあうアイテムがある可能性。
  • レコメンドの結果がbooleanでしか戻らない場合には好みの度合いがわからない。

メタ情報

inarticle



メタ情報

inarticle



-機械学習
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

独立性の検定 2つ

ニートの年齢別割合が1996年と2012年で関連性があるか独立性の検定をしてみる。 ニートの割合  1996 2012 15~19歳 9 9 20~24歳 12 17 25~29歳 10 18 30~ …

no image

Pythonではじめる機械学習 – GMM

k-Meansの課題 クラスタ間で微妙な位置関係にあるデータについて特定クラスタに分類された際の不確実の度合いを知ることができない。 例えば51%の確率でクラスタAであり、49%の確率でクラスタBかも …

no image

データ分析について評価する

デザイン コントロールグループはあるか モデル 検定の前提は満たしているか(正規分布) 従属変数の尺度は適切か(名義、順序、間隔、比率) 独立変数の数は適切か モデルについて説明できるか(独立変数の数 …

no image

仕事で始める機械学習 – 2.機械学習で何ができるか – 分類 – SVM

SVMの決定境界 SVMの決定境界はSVMで利用するカーネルにより異なる。 線形カーネル→線形 RBFカーネル→非線形 損失関数 損失関数としてはヒンジ関数を利用するが、パーセプトロンとは異なり、横軸 …

no image

Core Concept in Data Analysis – Week 4

Contingency Table : 分割表 Nominal : 名目 (カテゴリカル) Taxon : 分類 Marginal : 周辺 Conditional Probability : 条件付 …

2014年1月
« 12月   2月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

side bar top



アーカイブ

カテゴリー