SSブログ

アイテムベースの協調フィルタリングの作り方 その1 [データサイエンス、統計モデル]

アイテムベースの協調フィルタリングの作り方 その1

SPSS Clementine(PASW Modeler)を使ってアイテムベースの協調フィルタリングを実装した。
以前、ユーザベースのも作ったのだが、計算にやたら時間がかかってしまう。
それにあんまり当たらなかった。w



アイテムベースの方が計算時間が早いし、アルゴリズムも簡単だ。
アイテムベースでもあんまり精度は期待できないのだが、、、

さて、プログラム手順だが、例として、下記のようなデータを考える。

ユーザが7人いて、アイテムがa,b,c,d,e,f,gの7アイテムあるとする。

raw data は、下記のようなものをイメージして欲しい。


Step1
セットで購入されるアイテム間の関連性のみを把握したいので、数値データを0-1データに置換する。


ユーザ×アイテムのテーブルで書くと、


Step2
Step1で作ったユーザ×アイテムのテーブルをアイテム×アイテムの形にしたい。
(同じユーザが購入した商品の組み合わせの回数のテーブル)
イメージで書くと、

のように変換したい。

実は、このデータ加工はそんなに難しくない。

で実現できる。

レコード集計ノードの中身は、


フィルタノード i の中身は、


フィルタノード j の中身は、


レコード結合の中身は、


最後に i = j を削除して、


これで、上記のテーブルが出来上がる。

Step 3 以降の続きは、
★ アイテムベースの協調フィルタリングの作り方 その2 ★
http://skellington.blog.so-net.ne.jp/2009-08-21

nice!(1) 

nice! 1