我正在使用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}}不会生成标准化值,以及如何正确解释它们?
答案 0 :(得分:2)
评估员与此无关。用布尔数据推荐器评估绝对误差是没有意义的。平均误差在实际和预测评级之间,但没有评级。
相反,假设输入的评级为“1”。然而,在这种情况下,预测的“评级”不是具有意义的数量,尽管更高意味着更强。
您必须使用精确/召回指标或类似的排名指标。