首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mahout Precision Recall Movielens 1000万部

Mahout Precision Recall Movielens 1000万部
EN

Stack Overflow用户
提问于 2013-03-20 00:14:49
回答 2查看 2.2K关注 0票数 2

我是第一次接触推荐系统。我正在尝试学习Mahout,到目前为止,我认为我已经掌握了它。

但是,当我尝试使用书Mahout in Action (清单2.4,第21页)中的示例计算Precision & Recall时,我遇到了一个相当奇怪的问题,为了更方便起见,我将正文复制粘贴到这里:

代码语言:javascript
复制
RandomUtils.useTestSeed();
 DataModel model = new FileDataModel (new File("intro.csv"));
 RecommenderIRStatsEvaluator evaluator =
 new GenericRecommenderIRStatsEvaluator ();
  RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
  @Override
   public Recommender buildRecommender(DataModel model)
    throws TasteException {
    UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
    UserNeighborhood neighborhood =
     new NearestNUserNeighborhood (2, similarity, model);
      return
      new GenericUserBasedRecommender (model, neighborhood, similarity);
     }
   };
    IRStatistics stats = evaluator.evaluate(
    recommenderBuilder, null, model, null, 2,
    GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
    1.0);
 System.out.println(stats.getPrecision());
 System.out.println(stats.getRecall());

当我尝试使用在书中找到的小数据集执行上述操作时,一切都是正常的。但是,当我尝试使用Movielens 1M或10M来计算精度和召回率时,结果非常低……例如,Precision和Recall @2等于: P: 0.00573和R: 0.005882

我没有想法,所以如果有人有或有类似的问题,我很高兴听到有解决方案……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-20 01:22:25

第2.4.2节涉及到解释:精确度和召回率测试对推荐者来说意义不大,因为你实际上不知道哪些项目是“相关的”结果。你可以猜到高评级的项目是相关的,但你不知道未评级的项目是否相关。测试相当于找出推荐与排名最高的项目有多大的交集,这并不是精确/召回所需要做的。

所以你得到的分数很低。实际上,10%还不算坏。现在,0.5%是相当贫穷的,是的。这意味着对于这个数据集,这不是一个好的算法。

Mean average precisionAUC可能会让你对结果的质量有一个更广泛的了解,因为他们关注的是更大范围的结果的行为。这些都不是在Mahout中实现的(至少在代码的这一部分中没有实现)。

但它们是在Myrrix中。我知道你会在Grouplens 10M数据集上获得25+%精度/召回和14+%平均精度,因为有一个unit test for this。(我是Mahout这一部分的作者,并将其商业化为Myrrix。)如果您正在寻找在这种开箱即用的数据上做得很好的东西,我认为值得您花时间去看看。

票数 12
EN

Stack Overflow用户

发布于 2016-03-05 03:28:45

我想问题出在你的邻里大小。我记得看过一篇关于邻居大小的文章,10的大小是很少的。尝试使用大于10的数字。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15504762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档