我使用的电影镜头数据文件(ml-100k.zip)u.data不变,所以它有列:userID,MovieID和用户评级。
我使用LLR:
hadoop jar C:\ hdp \ mahout-0.9.0.2.1.3.0-1981 \ core \ target \ mahout-core-0.9.0.2.1.3.0-1981-job.jar org.apache.mahout.cf .taste.hadoop.item.RecommenderJob -s SIMILARITY_LOGLIKELIHOOD --input u.data --output udata_output
当我查看udata_output文件时,我会看到推荐的电影ID,然后是推荐分数,如:
1226:5.0 和 896:4.798878
推荐分数似乎在5.0到4.x之间变化
但是,当我从u.data文件中删除用户评级列并重新运行上面的相同命令行时,我收到的结果如下:
615:1.0
其中所有推荐分数均为1.0。
2个问题:
1)如果LLR忽略用户评级,我改变的唯一输入是是否提供用户评级,为什么推荐分数会改变?
2)总的来说,我正在尝试确定推荐排名,所以我正在使用LLR。另外我应该忽略推荐分数,只关注推荐项目的顺序(例如:第一项排名高于第二项)?
提前致谢。
答案 0 :(得分:1)
LLR不使用这些优势。理论上说,如果用户实际上与某个项目进行了交互,那就是所需的所有指示。 LLR将根据称为Log Likelihood Ratio的概率计算将该交互与其他用户相关联并得分。它确实创造了优势,但只使用了相互作用的数量。
<强>答案强>
这里描述了Mahout 1.0-snapshot或更高版本中的新Multimodal Recommender: