【发布时间】:2015-06-26 21:15:57
【问题描述】:
我正在尝试使用 Apache Mahout 创建一个基于项目的推荐器,该推荐器根据其他用户也有的相似项目推荐返回项目。
我首先创建一个 DataModel,然后尝试将其传递给各种不同的 ItemSimilarity 对象:
// Create data model
DataModel datamodel = new FileDataModel(new File("input.csv"));
// ItemSimilarity object
// ItemSimilarity similarity = new EuclideanDistanceSimilarity(datamodel);
// ItemSimilarity similarity = new PearsonCorrelationSimilarity(datamodel);
ItemSimilarity similarity = new CityBlockSimilarity(datamodel);
然后我将 DataModel 和 ItemSimilarity 传递到 GenericItemBasedRecommender 并调用 mostSimilarItems() 函数并将其传递到列表中。
ItemBasedRecommender irecommender = new GenericItemBasedRecommender(datamodel, similarity);
List<RecommendedItem> irecommendations = irecommender.mostSimilarItems(item, amount);
CityBlockSimilarity() 类在小型数据集上运行良好,但一旦我切换到大型数据集,它就不再可靠了。
我需要实施不同的类来根据用户也有的其他项目返回对项目的推荐吗?
【问题讨论】: