我知道一些数据集可用于运行协作式过滤算法,例如基于用户或基于项目的过滤。但是,我需要在许多数据集上测试一种算法,以证明我提出的方法具有更好的性能。我生成了值为1到5的随机用户项目评分矩阵。我将生成的矩阵视为基本事实。然后,我删除矩阵中的某些评分,并使用我的算法预测缺少的评分。最后,我使用RMSE度量来比较地面真实矩阵和从算法中获得的矩阵。这种方法论是否有意义?
答案 0 :(得分:0)
不是真的。
您缺少非均匀/实际分布。每个推荐系统都是建立在假设之上的,或者它不能胜过随机猜测。 (请记住,这不仅与评级的分布有关,而且还与对哪些项目进行评级有关->许多理论研究显示了不同的假设:例如,统一与其他假设;主要是具有核范数的凸MF与max-norm和co。)。
最好选择那些可用的数据集,并在需要时对它们进行子采样而不会破坏各种相关性。例如。通过某些属性(例如A)进行过滤:电影<= 1990的所有评分;所有收视率都>1990。是的,这将改变基本分布,但听起来像是您想要的。如果不是总是可以统一对子样本进行采样,那么对于某些泛化评估(小型数据集还是大型数据集)而言,那就更多了。