我需要使用 mahout 制作推荐系统。我的数据有以下数据片段:
- userID -> 用户的数字 id
- foodID -> 包含食物的数字 id(例如番茄酱的 id 为 88)
- 评级 -> 用户给该项目的评级从 1 到 5
- brandID -> foodID 品牌的数字 id(例如 Heinz 可能是 id 4)
使用下面的代码:
UserBasedRecommender recommender;
int userId = 5;
try {
File file = new File(getClass().getResource("databaseFILE.csv").getFile());
DataModel dataModel = new FileDataModel(file);
UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel);
UserNeighborhood userNeighborhood = new ThresholdUserNeighborhood(0.1, userSimilarity, dataModel);
recommender = new GenericUserBasedRecommender(dataModel, userNeighborhood, userSimilarity);
List<RecommendedItem> recommendations = recommender.recommend(userId, 5);
for (RecommendedItem recommendation : recommendations) {
System.out.println(recommendation);
}
} catch (IOException e) {
throw new RuntimeException(e.getMessage(), e);
} catch (TasteException e) {
throw new RuntimeException(e.getMessage(), e);
}
这给出了 itemID 及其相应值的输出,但是我没有得到 brandID 的结果。我不确定如何更改它,以便品牌ID 也可以包含在数据结构中。
谢谢你的帮助 :)