mahout协同过滤输入二进制数据集

时间:2011-10-02 13:00:24

标签: input binary dataset mahout collaborative-filtering

我是mahout的新手。

我已经使用mahout基于项目的算法和对数似然相似性度量。我在过去的帖子中读到,当推荐者处理二进制值(喜欢或不喜欢)时,最好使用对数似然相似性。我还读到mahout使用三个值(比如,不喜欢,不存在)。所以我对输入数据集文件的格式感到困惑。

输入文件格式是否必须如此?

 userId, itemID

默认情况下,首选项是1?

我想知道是否有办法将不喜欢信息放入数据集中。

除了输入数据集文件之外,我会这样:

userid,itemid,binaryPreference 1,15,1.0

2,35,0

1,25,1.0 ......

请帮帮我! Thanx提前!

1 个答案:

答案 0 :(得分:0)

我不确定你在哪里阅读,但这是错的。 Mahout中没有三态“布尔”偏好。您要么在数据中有评级,要么没有,在这种情况下,您有布尔首选项,它们存在或不存在。没有第三国。

尽管看起来很奇怪,但我鼓励你尝试将“喜欢”和“不喜欢”视为同样的事情。它可能运作良好。

您可以稍后尝试将人工评级纳入-1到1的等级或某些东西,以表示之间的喜欢,不喜欢和阴影。然后,您可以尝试其他相似性指标,如欧几里德距离,看看它是如何做的。

第三种可能性是构建两个推荐者:一个具有“喜欢”关联,另一个具有“不喜欢”关联的数据模型。您可以使用“喜欢”推荐器的输出,并根据“不喜欢”推荐器的结果过滤或修改结果。这需要一些编码,但并不难。

user@mahout.apache.org将是一个跟进此事的好地方。