评估基于Mahout的推荐人实施

时间:2013-06-18 07:12:00

标签: mahout mahout-recommender

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

为什么带有AverageAbsoluteDifferenceRecommenderEvaluator的{​​{1}}不会生成标准化值,以及如何正确解释它们?

1 个答案:

答案 0 :(得分:2)

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

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

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