Mahout推荐的返回已经存在的项目

时间:2014-05-14 06:07:26

标签: mahout mahout-recommender

我使用mahout' s(v 0.9)推荐使用参数

  

- 输入/usr_pref.csv --numRecommendations 10 --output / out / --tempDir / temp1 / --similarityClassname SIMILARITY_PEARSON_CORRELATION

在检查结果时,我发现它向用户推荐了他已评级的项目。为什么会发生这样的事情?

感谢您的时间。

根据要求,这里有一些建议:

  

34175 [89005462:1.7624004,89017464:0.11477072,89011967:0.11375865,89007606:0.113421306,14103126:0.11096669,89002502:0.10888276,14103124:0.106607914,89011035:0.10636083,40111014:0.104254685,89016109:0.104254685]

以及来自用户偏好的相应行:

  

34175,89005462,0.07596562

我已经在dropbox中上传了这两个文件。 建议:https://www.dropbox.com/s/uapzq0926y7427p/outusrpref_final 用户首选项:https://www.dropbox.com/s/6nru9799udgrzl8/usr_pref_final.csv

UPDATE 根据我的问题与我的评级范围有关的想法,我将它们乘以100,然后将它们截断为两个数字。运行推荐人后,我发现没有重复。我仍然不明白为什么会这样。

2 个答案:

答案 0 :(得分:-1)

Apache Mahout推荐用户已经评价的项目?

您可能有可能没有更新文件中的项目的用户评级,而是将其作为mahout的输入。

例如: 如果您将input.csv作为mahout的输入,请检查您是否更新了input.csv。 (即)检查input.csv文件是否包含具有该评级的用户标识。 Mahout不会推荐您在输入文件中已经评级和更新的项目。

解决方案:

尝试使用已经使用的用户更新您的输入文件,然后进行检查。这可能会解决您的问题。

答案 1 :(得分:-1)

示例:

现在,检查您要输入的输入文件作为mahout的输入

示例:input.csv

979    300    2.0

979    400    1.0

800    200    3.0

800    300    4.0

Recommendations.csv(在本例中为userid 979,itemid 200,评级1.0)

979 [200:1.0]

800 [400:2.0]

注意: Mahout将仅针对用户ID 979推荐项目200,并且不推荐项目300和400,因为它已经被评级并存储在input.csv中,并且将作为输入馈送到mahout。

明智地打开你的两个文件并手动交叉检查。我猜Mahout建议不会推荐已经评级的项目。

建议: 为了测试,创建一小组输入数据并对其进行测试,以便于跟踪和识别。