我的情况是我有一个由经典的UserID,ItemID和首选项值组成的数据集,但它们都是字符串。
我已经设法通过覆盖FileDataModel类(它是Mahout库的一部分)中的readItemIDFromString()和readUserIDFromString()方法来读取UserID和ItemID字符串但是,似乎没有任何支持转换如果我没有弄错的话,我会选择偏好值。
如果有人对这个问题的解决方法有什么意见,我会非常感激。
为了说明我的意思,这里是我的UserID字符串的示例"转换":
benefitID
AbstractIDMigrator的实现:
@Override
protected long readUserIDFromString(String value) {
if (memIdMigtr == null) {
memIdMigtr = new ItemMemIDMigrator();
}
long retValue = memIdMigtr.toLongID(value);
if (null == memIdMigtr.toStringID(retValue)) {
try {
memIdMigtr.singleInit(value);
} catch (TasteException e) {
e.printStackTrace();
}
}
return retValue;
}
String getUserIDAsString(long userId) {
return memIdMigtr.toStringID(userId);
}
答案 0 :(得分:0)
Mahout正在弃用基于Hadoop的旧推荐器。基于一种称为相关交叉发生(CCO)的新算法,我们提供了更加现代化的产品。它使用Spark构建,速度提高了10倍,并在与查询服务器结合使用时提供实时查询结果。
此方法为user-id和item-id提取字符串,并生成具有相同ID的结果,因此您不再需要管理这些字符串。你真的应该看看新系统,不知道旧系统将被支持多长时间。
Mahout docs:http://mahout.apache.org/users/algorithms/recommender-overview.html和此处:http://mahout.apache.org/users/recommender/intro-cooccurrence-spark.html
所描述的整个系统,包括SDK,输入存储,模型和实时查询的培训,是Apache PredictionIO项目的一部分,也是PIO和“Universal Recommender”的文档,在这里:http://predictionio.incubator.apache.org/在这里: http://actionml.com/docs/ur