アイテムベースの協調フィルタリングの作り方 その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
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
2009-08-20 23:59
nice!(1)