我试图使用mahout在我的输入上获得als-wr算法的精确度和召回率。
问题是我发现使用als-wr算法的唯一方法来自mahout命令行 - https://mahout.apache.org/users/recommender/intro-als-hadoop.html
我没有在网络上看到任何在代码中使用此算法的示例。
任何使用评估程序在scala / java中运行它的示例或帮助都将非常感激。
答案 0 :(得分:0)
RecommenderIRStatsEvaluator user_eval = new GenericRecommenderIRStatsEvaluator();
RecommenderBuilder user_rb = new RecommenderBuilder()
{
@Override
public Recommender buildRecommender(DataModel model) throws TasteException
{
UserSimilarity user_ll_sim = new LogLikelihoodSimilarity(model);
UserNeighborhood user_ll_nbhd = new NearestNUserNeighborhood(5, user_ll_sim, model);
return new GenericUserBasedRecommender(model, user_ll_nbhd, user_ll_sim);
}
};
IRStatistics user_ll_stats = user_eval.evaluate(user_ll_rb, null, model, null, 2, GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 0.8);
System.out.println(user_ll_stats.getPrecision()+" "+user_ll_stats.getRecall());
用SVD替换基于用户的LogLikelihood模型。