我目前正在尝试使用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分数的理解是,它似乎更适合用于二进制分类任务。这可能就是为什么得分看起来如此之高?它将每个正值都识别为布尔值true,将每个0值识别为负值。在这种情况下,给定矩阵的稀疏性,正值的数量大大超过0值。
我对k的精度经验相对较少,只知道它代表了预测的平均精度。当我们考虑到较高的AUC分数时,这个低分是什么意思?
编辑:
所以我对这个话题仍然不太确定,但我只是觉得我会分享一些关于这个主题的直觉,以防万一其他人遇到和我一样的问题。推荐引擎在precision_at_k
评分较低的一个可能原因是该指标考虑了推荐排名。这意味着它可以提供10个用户喜欢的建议,但如果建议不按优先级降低的顺序,那么模型的得分将非常低。