【发布时间】:2014-09-04 08:04:12
【问题描述】:
我正在阅读 Mahout in Action 一书并尝试分布式推荐引擎示例。但是,我在示例中使用了一个小型数据集,而不是 Wikipedia 数据集。
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 代表当前购买
当我将这两个文件复制到 hdfs 并运行时
hadoop jar mahout-core-0.5-job.jar \ org.apache.mahout.cf.taste.hadoop.item.RecommenderJob \ -Dmapred.input.dir=输入/输入.txt\ -Dmapred.output.dir=output --usersFile 输入/user.txt --booleanData
map reduce 运行正常。但是当我检查bin/hadoop fs -cat output/
part-r-00000中的输出时@
我找到一个空文件。
谁能解释我出了什么问题? 如果我理解正确,推荐作业应该建立一个项目到项目的相似度矩阵,将它与用户项目矩阵(来自 user.txt)相乘并产生结果。
需要一些帮助理解。我在单个节点上使用 Mahout 0.5 和 hadoop 1.2。我希望这不是版本兼容性的问题。
编辑
如果我将 user.txt 更改为
,我会得到答案2
或
1
【问题讨论】:
-
你能把你正在使用的代码贴在这里吗?也许您使用的是无效的 DataModel...
-
我不认为这是模型的问题。检查我的编辑。
-
可能是用户3偏好不足,程序无法为他推荐?
-
嗯,是的,就像您在文件中看到的那样,用户只有一个偏好。然而,即使对于 1 个事务,用户项目矩阵也应该有 1 个条目,并且与项目项目相似性矩阵相乘应该会给出一些结果。我不确定我是否完全理解内部是如何工作的。
-
@AbhiroopSarkar:您忘记投票/接受或对现有答案提供某种反馈。
标签: hadoop mahout recommendation-engine mahout-recommender