Mahout in Action ブックを読んで、分散型レコメンデーション エンジンの例を試しています。ただし、ウィキペディアのデータセットの代わりに、小さなデータセットを例として使用しています。
input.txt->
1,15
1,13
1,12
1,10
2,11
2,15
2,20
2,17
2,12
3,10
user.txt->
3
ここで、input.txt と user.txt は次の形式user,item
であり、input.txt はユーザーが過去に購入したアイテムを表し、user.txt は現在の購入を表します。
これら2つのファイルをhdfsにコピーして実行すると
hadoop jar mahout-core-0.5-job.jar \ org.apache.mahout.cf.taste.hadoop.item.RecommenderJob \ -Dmapred.input.dir=input/input.txt \ -Dmapred.output.dir=output - -usersFile 入力/user.txt --booleanData
マップ削減は適切に実行されます。ただし、出力をチェックするとbin/hadoop fs -cat output/
part-r-00000
空のファイルを見つけました。
誰かが私に何が悪いのか説明できますか? 私が正しく理解していれば、レコメンダージョブはアイテム間の類似性マトリックスを構築し、それをユーザーアイテムマトリックス(user.txtから)で乗算して結果を生成する必要があります。
理解の助けが必要です。単一ノードで Mahout 0.5 と hadoop 1.2 を使用しています。バージョンの互換性の問題ではないことを願っています。
編集
user.txt を次のように変更すると、回答が得られます
2
また
1