我想评估一个时尚电子商务网站的推荐引擎基于mahout。他们使用购物卡信息一起购买商品-所以布尔值。我想用精确度和召回率来评估引擎。
1)如何使用这些指标来评估推荐引擎?有没有可能在修改算法时使用这些值,然后对自己进行检查?
2)或者与其他算法(也使用布尔数据)进行比较是否有意义?如果是,是否有可用的精度和召回率基准(例如,如果精度是x,召回率是y,那么算法应该被丢弃或接受)?
希望能找到帮助,提前感谢各位!
发布于 2015-05-25 04:17:13
在信息检索上下文中,项是以布尔方式处理的,即,它们要么相关,要么不相关。Mahout的GenericRecommenderIRStatsEvaluator利用数据拆分器从代表相关项目的已经首选(或在您的情况下是购买的)项目中生成一个集合。在mahout的情况下,所选项目是top-n最受欢迎的项目。因此,由于评分是布尔值,它只选择n个首选项目。我不认为这会使评估本身比正常的五星评级更不准确,因为购买是相当强烈的偏好信号。所以:
1)如果你已经成功地提出了建议,那么你就能够使用精确度和召回率作为指标来评估这些建议。
2)我使用了一个随机推荐器作为基准(只是一个mahout推荐器的实现,它选择n个随机项目)。它通常产生相当低的精确度和召回率,所以如果算法的精确度和召回率低于随机推荐,那么它可能应该被抛弃。我在离线评估阶段会看到的另一个指标是reach,因为只向6000个活跃用户中的80个用户提供推荐的推荐是非常无用的。
此外,应该注意到,在学术论文中,精确度和召回率指标在用作唯一指标时受到了批评。最后,用户决定什么是相关的,什么是不相关的。而一个推荐器的产出略低于另一个,并不一定比另一个更差。例如,更新颖或更偶然的建议可能会提高精确度和召回率。
https://stackoverflow.com/questions/30403596
复制相似问题