如何对 Top n 推荐系统执行留一交叉验证?

数据挖掘 机器学习 推荐系统 交叉验证 准确性
2022-02-13 02:50:06

我是制作推荐系统的新手。我正在使用 惊奇库来评估我的建议。该库很好地支持所有准确度指标。但我也想计算我的前 n 个推荐系统的命中率

我知道命中率的公式是:

(没有用户购买过的商品)/(用户数)

但这对我来说没有意义,因为要训练和测试用户与项目评分,我的数据集中只有那些已经对数据集中所有项目进行评分的用户。(**毕竟这使我能够衡量我的评分预测的准确性**)

这意味着我每次都会获得100% 的命中率!!!

如果不是我的理论是错误的,我该怎么做才能正确测量命中率?我知道有一种方法称为“留一出交叉验证 ”,在这种情况下可以帮助我。如果这就是答案,他们如何与前 n 个推荐系统一起工作?

1个回答

这是我计算“带有留一法交叉验证的命中率”的过程:

  1. 从火车数据集中只留下一个实际的用户-项目交互(这可以是评分、购买或您在数据中处理的任何内容)(如果您至少有一个交互,这会给您总共 U 个“未见过”的交互)每个用户);
  2. 使用您使用的任何推荐系统为所有用户生成前 n 条推荐;
  3. 如果用户实际上与推荐的项目进行了交互(被遗漏的项目是该特定用户的前 n 个推荐之一)=> 这是一次命中率 = 用户所有命中的总和(这最多可以是U,因为每个用户最多可以有 1 次点击)除以用户数 (U)。