我知道一些数据集可用于运行协同过滤算法,例如基于用户或基于项目的过滤。但是,我需要在许多数据集上测试一种算法,以证明我提出的方法表现更好。我生成了值从 1 到 5 的随机用户项目评分矩阵。我将生成的矩阵视为基本事实。然后我删除矩阵中的一些评分,并使用我的算法预测缺失的评分。最后,我使用 RMSE 度量来比较地面实况矩阵和作为算法输出的矩阵。这种方法是否有意义?
问问题
96 次
1 回答
0
不,真的。
- 如果每个项目在 [1-5] 中都是均匀随机的
- 完美估计器为所有条目预测 3
您缺少非均匀/真实世界的分布。每个推荐系统都建立在假设之上,或者它无法击败随机猜测。(请记住,这不仅与评级的分布有关;还与哪些项目被评级有关 -> 大量理论研究显示了不同的假设:例如统一与其他事物;主要是在具有核范数的凸 MF与 max-norm 和 co.)
更好地选择那些可用的数据集,如果需要,在不破坏所有相关性的情况下对这些数据集进行二次抽样。例如,按某个属性过滤,例如 A:某部电影 <= 1990 的所有评分;所有评级 > 1990。是的,这将改变基础分布,但听起来这就是你想要的。如果不是,您总是可以统一地进行子采样,但这对于一些泛化评估(小数据集与大数据集)更有用。
于 2018-11-22T20:46:13.170 回答