【问题标题】:Recommender system: simple user-based collaborative filtering to evaluate with precision and recall推荐系统:简单的基于用户的协同过滤,以精确度和召回率进行评估
【发布时间】:2011-05-11 23:21:43
【问题描述】:

我正在寻找基于用户的collaborative filtering 在 Java 中的一个非常简单的实现。我想用 movielens 数据集评估这个 CF 的精度和召回率。我已经看到性能 (F1) 应该在 20% 到 30% 左右(使用 Pearson 相似度和 KNN)。

这个简单的框架是否存在用于精度和召回代码的评估?

【问题讨论】:

    标签: java recommendation-engine collaborative-filtering precision-recall


    【解决方案1】:

    Apache Mahout 会执行您在此处提到的所有操作。它基于 Java,并通过GenericUserBasedRecommender 支持基于用户的协同过滤(以及其他)。它是一种 k 最近邻算法,您可以在其中插入相似性实现,例如 PearsonCorrelationSimilarity 等。

    查看org.apache.mahout.cf.taste 包和子包。在.impl.eval 子包中找到GenericRecommenderIRStatsEvaluator。这将运行一个报告精度、召回率和 F1 的测试。

    最后,在mahout-examples 中已经有一些基于GroupLens 的工作示例。

    【讨论】:

    • 您好,感谢您的回答。然而 Apache Mahout 是不可能使用的,并且需要太多的包。此外,缺乏简单的文档(例如,如何在 eclipse 中创建一个新项目以使用 Taste 的类)也无济于事......
    • 不确定您的意思?这段代码只有几个依赖项......我相信 SLF4J 和 Google Guava。它是一个基于 Maven 的项目,因此如果使用 Maven,您只需在 Maven 项目中添加几行代码即可依赖它。您还可以从项目中获得一个包含所有内容的简单 .jar,您可以将其放入任何 Eclipse 项目中,就像任何其他库一样。就是这样——没有太多需要记录的东西——但如果你有特定的问题,我相信它可以在 user@mahout.apache.org 上解决。
    【解决方案2】:

    您尝试过 RapidMiner 吗? 如果您有兴趣尝试诸如评估精度和召回之类的事情,而无需专注于编码。这就是你的工具。网络上有很好的信息,甚至论文和 youtube 视频教程都可以帮助您。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      • 2011-09-04
      • 2010-12-03
      • 2013-02-04
      • 2012-02-11
      • 2018-05-11
      相关资源
      最近更新 更多