如何分割推荐系统的极端稀疏数据集的训练/测试?

lit*_*kid 2 recommendation-engine machine-learning svd collaborative-filtering

我在现实世界的数据集上使用 CF 算法(SVD)。现在我遇到一个关于数据稀疏问题的问题。这意味着用户/项目评分矩阵的稀疏度约为 0.01%。我以 80/20 将数据分成训练/测试集,我发现测试集中只有少数用户和项目出现在训练集中,所以我可以只使用测试集中的一些评级来计算 RMSE。你能给我一些修复它的建议吗?

Art*_*lev 5

对于推荐系统,通常将每个用户的历史记录分为训练和测试。更详细:

  1. 对于每个用户,我们写下他与之交互的项目。
  2. 最好,我们按(增加)时间对它们进行排序,以克服“时间旅行问题”(用户可以重新访问已知的项目,因此您不想在早期数据集上进行测试)。
  3. 像往常一样,您使用数据集的前 (1-k)% 作为训练集,其余部分作为测试集。