将movielens数据拆分为trainvalidationtest数据集

2024-05-16 07:11:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从事一个关于推荐系统的项目,该项目由python编写,使用贝叶斯个性化排名优化。我很有信心我的模型能够很好地学习我提供的数据,但现在是时候找出精确的模型超参数并尝试避免过度拟合了。由于movielens数据集只为我提供了5倍的列车测试数据集,而没有验证集,因此我想自己分割原始数据集以验证我的模型

由于movielens数据集包含943个用户数据,每个用户保证至少对20部电影进行了排名,因此我正在考虑拆分数据,以便训练和测试数据集都包含相同数量的用户(例如943),并将80%的隐式反馈数据分发给训练,另一个分发给测试。培训后,将使用所有943名用户在k精度下的召回平均值进行验证

这是分割数据集的正确方法吗?我很好奇,因为原始的movielens测试数据集似乎并不包含所有943用户的测试数据。如果某个用户没有任何测试数据可预测,我如何使用recall@k--这样做会导致零除法吗?我是否应该跳过该用户,与其他用户一起计算平均值

谢谢你的长篇大论,我希望你不要像我一样困惑


Tags: 数据项目用户模型参数原始数据电影系统