我已经基于矩阵分解技术实现了一个推荐系统。我想要对其进行评估。
我想要使用10折交叉验证和All-but-one协议(https://ai2-s2-pdfs.s3.amazonaws.com/0fcc/45600283abca12ea2f422e3fb2575f4c7fc0.pdf)。
我的数据集结构如下:
我想要使用10折交叉验证和All-but-one协议(https://ai2-s2-pdfs.s3.amazonaws.com/0fcc/45600283abca12ea2f422e3fb2575f4c7fc0.pdf)。
我的数据集结构如下:
user_id,item_id,rating
1,1,2
1,2,5
1,3,0
2,1,5
...
我很困惑如何分割数据,因为我不能把某些三元组(用户、项目、评分)放入测试集中。例如,如果我选择将三元组(2,1,5)放入测试集中,并且这是用户2所做的唯一评分,那么关于该用户的任何其他信息都不会被学习模型使用,因此训练模型将无法预测出任何值。
考虑到这种情况,我应该如何进行数据拆分呢?