2

我目前正在尝试使用Python LightFM库构建推荐引擎。我的输入是一个形状为 (n_users, n_items) 的稀疏矩阵,其中矩阵中的每个单元格值表示用户与特定项目的交互次数。这与我见过的大多数示例完全不同,其中矩阵通常本质上是布尔值(1 或 0)或使用小规模(例如 1-5 的评级),我不确定这是否可以我面临的问题的一个促成因素。

Training AUC score: 0.892
Testing AUC score: 0.873

K=10,
Training precision_at_k: 0.0363
Testing precision_at_k: 0.0363

我很困惑为什么 AUC 分数似乎表明引擎运行良好,但 K 的精度表明并非如此。

我对 AUC 分数的理解是,它似乎更适合用于二元分类任务。难道这就是为什么分数看起来如此之高的原因吗?它将每个正值识别为布尔真值,将每个 0 值识别为负值。在这种情况下,考虑到矩阵的稀疏性,正值的数量大大超过了 0 值的数量。

我对 k 精度的经验相对较少,只知道它代表了预测的平均精度。当我们将它与较高的 AUC 分数一起考虑时,这个低分数意味着什么?

编辑:

所以我仍然不完全确定这个话题,但我只是想我会分享一些我在这个话题上收集到的直觉,以防其他人遇到和我一样的问题。推荐引擎得分低的一个可能原因precision_at_k是该指标考虑了推荐的排名。这意味着它可以提供 10 条用户会喜欢的推荐,但如果推荐不是按照偏好降序排列,那么模型的得分就会很差。

4

0 回答 0