【问题标题】:Extend Mahout for new dataset为新数据集扩展 Mahout
【发布时间】:2013-05-09 10:30:03
【问题描述】:

我想建立一个基于 Mahout 的推荐模型。我的数据集格式有除 userID、itemID、rating 和 timestamp 之外的额外列。因此,我认为我需要扩展 文件数据模型。

我以 JesterDataModel 为例进行了研究。但是,我的逻辑流程有问题。在它的 buildModel() 方法中,首先构造一个空的地图“数据”。然后将其扔到 processFile 中。我假设在这个方法中修改了“data”,因为后面是用来构造GenericDataModel的,但是data是局部变量而不是类变量,那么怎么修改呢?

processFile(iterator, data, timestamps, false);
return new GenericDataModel(GenericDataModel.toDataMap(data, true));

【问题讨论】:

  • 你想用这些额外的列做什么?
  • @Julian 例如,每个用户阅读一本书,给它评分,然后添加一些标签。额外的列是标签。当向用户推荐一本书时,我还想看看这本书的标签是否与用户的标签匹配。当然,我可以创建另一个数据结构来存储这些标签首选项,但理想情况下,我想将所有东西都包装到 DataModel 中。

标签: mahout datamodel mahout-recommender


【解决方案1】:

我明白了...我相信您必须重写 DataModel、相似性计算等主要部分才能使其工作。您可以查看Rescorer,它允许您引入自己的逻辑并根据您的要求过滤掉项目或提升一些其他项目。

在 Mahout in Action 一书的第 5 章中,有一个如何使用 Rescorer 类的示例。你可以在这里看到代码(link)

【讨论】:

    猜你喜欢
    • 2017-03-31
    • 2013-07-04
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多