1

我找到了几个关于如何创建我自己的非分布式推荐器的教程,但没有找到如何创建我自己的分布式推荐器工作的教程(如果你知道的话,欢迎任何链接)。

在“Mahout in Action”一书中,有一些如何使用 Mahout 的对象编写 Mappers/Reducers 的示例,但似乎没有说明如何将这些工作放在一起?

然而,mahout-core 中有 item/RecommenderJob,它给出了如何做到这一点的想法。我的实际意图是替换第一个映射器,这样我就不必在 mahout 之外准备我的数据(行看起来像“userid,itemid1,itemid2,itemid3 ...”并使用 item.RecommenderJob 我显然需要像“ itemid1,itemid2", "itemid1,itemid3", ...)。

现在复制 RecommenderJob 类并更改我需要的内容是个好主意吗?我已经尝试过了,但是因为这个类使用了包范围内的变量(例如 UserVectorSplitterMapper.USERS_FILE),所以我必须替换这些——这感觉不好。

我是否应该创建一个扩展 AbstractJob 的新类并从 RecommenderJob 中挑选出我需要的东西?那么 RecommenderJob 中我真正需要的元素是什么?

4

1 回答 1

2

您的替代方案是在工作之前使用您自己的工作,将您的输入转换为工作所需的形式,或者实际上只是修改工作。如果您需要不(并且没有意义)作为某种配置参数支持的重要更改,我认为复制作业并修改和自定义它并不是什么大不了的事。

于 2012-11-20T16:27:28.850 回答