首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RMSE太小。推荐系统

RMSE太小。推荐系统
EN

Stack Overflow用户
提问于 2015-06-20 15:47:12
回答 1查看 688关注 0票数 0

对不起,我是推荐系统的新手,但是我用apache mahout库写了几行代码。嗯,我的数据集非常小,500x100,已知8102个单元。

所以,我的数据集实际上是来自"Yelp商业评级预测“竞赛的Yelp数据集的子集。我只选择评论最多的100家餐厅,然后选择最活跃的500名顾客。

我创建了SVDRecommender,然后评估了RMSE。所以结果大约是0.4...为什么它这么小?也许我只是不理解一些东西,我的数据集不是那么稀疏,但后来我尝试了更大更稀疏的数据集,RMSE变得更小(约0.18)!有人能给我解释一下这种行为吗?

代码语言:javascript
复制
DataModel model = new FileDataModel(new File("datamf.csv"));
final RatingSGDFactorizer factorizer = new RatingSGDFactorizer(model, 20, 200);
final Factorization f = factorizer.factorize();


RecommenderBuilder builder = new RecommenderBuilder() {
            public Recommender buildRecommender(DataModel model) throws TasteException {
                //build here whatever existing or customized recommendation algorithm
                return new SVDRecommender(model, factorizer);
            }
        };


RecommenderEvaluator evaluator = new RMSRecommenderEvaluator();
        double score = evaluator.evaluate(builder,
                null,
                model,
                0.6,
                1);

System.out.println(score); 
EN

回答 1

Stack Overflow用户

发布于 2015-07-16 04:52:47

RMSE是通过查看预测评级与其隐藏的地面事实来计算的。因此,稀疏数据集可能只有很少的隐藏评级需要预测,或者您的算法可能无法预测许多隐藏评级,因为与其他评级没有相关性。这意味着即使你的RMSE很低(“更好”),你的覆盖率也会很低,因为你预测的项目不是很多。

还有另一个问题: RMSE完全依赖于数据集。在星级为0.5到5.0星的MovieLens评级数据集上,均方根E值约为0.9是很常见的。但在另一个0.0到1.0点的数据集上,我观察到RMSE约为0.2。查看数据集的属性,看看0.4是否有意义。

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

https://stackoverflow.com/questions/30951602

复制
相关文章

相似问题

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