我想建立一个基于Mahout的推荐模型。我的数据集格式除了userID,itemID,rating和timestamp之外还有其他列。因此,我认为我需要扩展 FileDataModel。
我查看了 JesterDataModel 作为示例。但是,我的逻辑流程有问题。在其 buildModel()方法中,首先构造一个空映射“data”。然后将其抛入processFile。我假设在这个方法中修改了“data”,因为后来它用于构造GenericDataModel但是,数据是一个局部变量而不是一个类变量,那么它是如何被修改的呢?
processFile(iterator, data, timestamps, false);
return new GenericDataModel(GenericDataModel.toDataMap(data, true));
答案 0 :(得分:1)
我明白了...我相信你必须重写像DataModel,相似度计算等主要部分,以便完成这项工作。您可以查看Rescorer
,它允许您介绍自己的逻辑和过滤项目,或根据您的要求提升其他项目。
在Mahout in Action书的第5章中,有一个如何使用Rescorer
类的例子。您可以在此处查看代码(link)