1

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

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

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

1 回答 1

1

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

在 Mahout in Action 一书的第 5 章中,有一个如何使用Rescorer该类的示例。您可以在此处查看代码(链接)

于 2013-05-16T07:57:05.003 回答