使用测试集评估协同过滤算法

时间:2017-08-08 01:31:25

标签: machine-learning cross-validation recommendation-engine collaborative-filtering

通过基于项目的协同过滤,我们将类似用户的项目评级用于给定用户以生成推荐。研究经常建议使用保持测试集来评估算法,例如20%的数据,80%用于培训。但是,如果在保留设置中某个项目的所有评级都被拒绝,该怎么办?我们的培训数据将不再包含该项目,并且永远不会被推荐。

E.g。 5个用户每人观看10部电影,其中一部是“泰坦尼克号”。我们随机提出每个用户20%的数据= 2个电影/用户的测试集。如果每个用户的测试集中都有“泰坦尼克号”怎么办?它永远不会被推荐。

1 个答案:

答案 0 :(得分:2)

评估方法取决于用例和数据类型。因此,在某些情况下,使用随机80/20分割进行评估是不够的,即当时间像基于会话的建议一样起着重要作用时。

假设可以以这种方式评估此用例,请尽量不将评估仅基于单个随机序列/测试拆分,而是进行N次交叉验证。在这种情况下,5次交叉验证与保持。评估结果将是所有折叠的汇总结果。更进一步,这个单一实验可以重复几次,以获得最终结果。

查看这两个项目:

两者都对你有用。至少在寻找合适的评估方法。