Mahout - 运行als-wr推荐评估员

时间:2014-07-17 10:01:27

标签: java algorithm scala hadoop mahout

我试图使用mahout在我的输入上获得als-wr算法的精确度和召回率。

问题是我发现使用als-wr算法的唯一方法来自mahout命令行 - https://mahout.apache.org/users/recommender/intro-als-hadoop.html

我没有在网络上看到任何在代码中使用此算法的示例。

任何使用评估程序在scala / java中运行它的示例或帮助都将非常感激。

1 个答案:

答案 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模型。