【问题标题】:Evaluating mahout based Boolean recommendation engine - interpreting precision & recall评估基于 mahout 的布尔推荐引擎 - 解释精度和召回率
【发布时间】:2015-05-22 18:32:03
【问题描述】:
我想评估一个时尚电子商务网站的基于 mahout 的推荐引擎。他们使用有关一起购买的商品的购物卡信息 - 如此布尔值。我想使用精度和召回率来评估引擎。
1) 我如何使用这些指标来评估推荐引擎?是否可以在更改算法时使用这些值然后对自己进行检查?
2) 或者与其他算法(也使用布尔数据)进行比较是否有意义?如果是,是否有任何可用的精度和召回基准(例如,如果精度是 x,召回率是 y,那么算法应该被丢弃或接受)?
希望能得到帮助我提前谢谢你们!
【问题讨论】:
标签:
boolean
mahout
precision-recall
collaborative
【解决方案1】:
在信息检索上下文中,项目以布尔方式处理,即它们是相关的或不相关的。 Mahout 的 GenericRecommenderIRStatsEvaluator 使用数据拆分器从代表相关项目的已首选(或在您的情况下购买,已购买)项目中制作一组。在 mahout 的情况下,所选项目是前 n 个最喜欢的项目。因此,由于评级是布尔值,它只选择 n 个首选项目。我不相信这会使评估本身比正常的五星级评级更加不准确,因为购买是非常强烈的偏好迹象。所以:
1) 如果您设法提出建议,那么您可以使用精确率和召回率作为指标来评估建议。
2) 我使用了一个随机推荐器作为基准(只是一个选择 n 个随机项目的 mahout 推荐器的实现)。它通常会产生相当低的精度和召回率,因此如果该算法的精度和召回率低于随机推荐器,则可能应该放弃它。我将在离线评估阶段查看的其他指标是达到,因为仅向 6000 名活跃用户中的 80 名用户推荐的推荐器非常无用。
还应该注意的是,在学术论文中,准确率和召回率指标在用作唯一指标时会受到批评。最后,用户决定什么是相关的,什么是不相关的。而一个产生比另一个略低的推荐器,不一定比另一个差。例如,更新颖或偶然的推荐可能更喜欢精确度和召回率。