【问题标题】:mahout collaborative-filtering input binary datasetmahout 协同过滤输入二进制数据集
【发布时间】:2011-10-02 22:33:22
【问题描述】:
我是新手。
我已经使用了 mahout 的基于项目的算法和对数似然相似性度量。我在过去的线程中读到,当推荐器处理二进制值(喜欢或不喜欢)时,最好使用对数似然相似性。我还读到 mahout 使用三个值(喜欢、不喜欢、不存在)。所以我对输入数据集文件的格式有点困惑。
输入文件格式一定要这样吗?
userId, itemID
默认情况下首选项是 1?
我想知道是否有办法将不喜欢的信息放入数据集中。
除了输入数据集文件之外,我会是这样的:
userid、itemid、binaryPreference
1、15、1.0
2、35、0
1、25、1.0
......
请帮帮我!
提前谢谢!
【问题讨论】:
标签:
input
binary
dataset
mahout
collaborative-filtering
【解决方案1】:
我不确定你在哪里看到的,但它是错误的。 Mahout 中没有三态“布尔”首选项。您的数据要么有评级,要么没有,在这种情况下,你有布尔偏好,要么存在,要么不存在。没有第三种状态。
虽然看起来很奇怪,但我还是鼓励您尝试将“喜欢”和“不喜欢”视为相同,开始。它可能工作得很好。
您可以稍后尝试在 -1 到 1 的范围内加入人工评分,或以介于两者之间的表示喜欢、不喜欢和阴影的东西。然后,您可以尝试其他相似性指标,例如欧几里得距离,看看效果如何。
第三种可能性是构建两个推荐器:一个具有“喜欢”关联,另一个具有具有“不喜欢”关联的数据模型。您可以使用“喜欢”推荐器的输出,并通过“不喜欢”推荐器的结果过滤或修改结果。这需要一些编码,但并不难。
user@mahout.apache.org 是跟进此事的好地方。