【问题标题】:Evaluating Mahout based Recommender Implementation评估基于 Mahout 的推荐器实现
【发布时间】:2013-06-18 07:12:00
【问题描述】:

我正在使用 mahout 0.7 来实现推荐系统。

Ro 评估所提供建议的质量,我使用 AverageAbsoluteDifferenceRecommenderEvaluator,它允许我评估 MAE(平均平均误差)。当我使用 AverageAbsoluteDifferenceRecommenderEvaluator 时,MAE 值似乎在 0.0 和 1.0 之间进行了标准化。但如果我选择GenericBooleanPrefItemBasedRecommender,则值不在 0.0 和 1.0 之内。

如果我增加训练数据集的百分比,评价值会更大,GenericBooleanPrefItemBasedRecommender 表示推荐不佳。

我是这样评价推荐人的:

RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
      RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
      public Recommender buildRecommender(DataModel model) throws TasteException {
            ItemSimilarity similarity = new EuclideanDistanceSimilarity(model);
            return new GenericItemBasedRecommender(model, similarity); // or GenericBooleanPrefItemBasedRecommender
      }
};
double evaluation = evaluator.evaluate(recommenderBuilder, null, model, 0.7, 1.0);

为什么 AverageAbsoluteDifferenceRecommenderEvaluatorGenericBooleanPrefItemBasedRecommender 会产生未标准化的值,我该如何正确解释它们?

【问题讨论】:

    标签: mahout mahout-recommender


    【解决方案1】:

    评估者与它无关。用布尔数据推荐器评估平均绝对误差是没有意义的。平均误差在实际评分和预测评分之间,但没有评分。

    相反,假设输入的评级为“1”。然而,在这种情况下,预测的“评级”并不是一个有意义的量,尽管越高意味着越强。

    您必须改用精确率/召回率指标或类似的排名指标。

    【讨论】:

    • 谢谢,我将使用 RecommenderIRStatsEvaluator 运行一些测试来评估精度/召回率。
    • 我已经尝试为 GenericBooleanPrefItemBasedRecommender 运行 RecommenderIRStatsEvaluator,但我的准确率和召回率总是为 0。我正在使用 100k MovieLens 数据集。你知道是什么导致了这种行为吗?
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多