1

我正在使用 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);

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

4

1 回答 1

2

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

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

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

于 2013-06-18T07:18:53.243 回答