【问题标题】:how to compute AUC(Area Under Curve) for recommendation system evaluation如何计算推荐系统评估的 AUC(曲线下面积)
【发布时间】:2017-06-05 02:07:18
【问题描述】:

我对计算 AUC(曲线下面积)来评估推荐系统结果感到困惑。

如果我们有交叉验证数据,例如(用户、产品、评级)。如何为每个用户选择正样本和负样本来计算AUC?

是否可以选择数据集中每个用户发生的产品作为正样本,而将数据集中没有出现的其余产品作为负样本?我认为这种方式无法找出那些“真正的”负样本,因为用户有机会喜欢负样本中的那些产品。

【问题讨论】:

    标签: machine-learning data-science


    【解决方案1】:

    “ROC 曲线绘制了召回率(真阳性率)与后果(假阳性率)的关系,以增加推荐集的大小。” Schröder, Thiele, and Lehner 2011 (PDF)

    一般来说,您会保留一部分数据作为测试数据。对于特定用户,您将在(例如)她 80% 的数据上进行训练,并尝试根据剩余 20% 的数据预测她将表现出偏好的项目(在数据集中的所有项目中)。

    假设您正在构建一个排名前 20 的推荐系统。您为用户推荐的 20 个项目是正面项目,不推荐的项目是负面项目。因此,True Positive 项目是您在 Top-N 列表中显示的与用户在她的保留测试集中首选的项目相匹配的项目。误报是您的 Top-N 列表中的项目与她在保留测试集中的首选项目不匹配。 True Negative items 是那些您没有包含在 Top-N 推荐中的项目,并且是用户在她的保留测试集中的首选项目中没有的项目。假阴性是您未包含在 Top-N 推荐中但与用户在她的保留测试集中偏好的项目相匹配的项目。这就是混淆矩阵。现在,您可以改变推荐的项目数量,计算每个项目的混淆矩阵,计算每个项目的召回率和影响,并绘制 ROC。

    【讨论】:

      猜你喜欢
      • 2012-01-29
      • 2017-01-25
      • 2014-03-19
      • 2017-03-14
      • 2018-01-28
      • 2018-05-20
      • 2011-06-24
      • 2011-09-04
      相关资源
      最近更新 更多