当我对评级矩阵使用矩阵分解(Netflix Prize 解决方案)时,我试图找出一个奇怪的现象:
评分范围从 1 到 10。
然后我通过每个标签在测试集中的绝对平均误差来评估模型,第一列是 origin_score,第二列(我们不转换数据,然后训练及其预测误差),第三列(我们将数据全部转换为除2,训练,当我使用这个模型进行预测时,首先重建矩阵,然后乘以2并使其回到相同的比例)
如您所见,在 3-4 年级(大多数样本是 3-4 的标签),它更精确,而在高分范围内(如 9 和 10,仅占整个训练集的 2%),情况更糟。
+----------------------+--------------------+--------------------+
| rounded_origin_score | abs_mean_avg_error | abs_mean_avg_error |
+----------------------+--------------------+---------------------+
| 1.0 | 2.185225396100167 | 2.559125413626183 |
| 2.0 | 1.4072212825108161 | 1.5290497332538155 |
| 3.0 | 0.7606073396581479 | 0.6285151230269825 |
| 4.0 | 0.7823491986435621 | 0.6419077576969795 |
| 5.0 | 1.2734369551159568 | 1.256590210555053 |
| 6.0 | 1.9546560495715863 | 2.0461809588933835 |
| 7.0 | 2.707229888048017 | 2.8866856489147494 |
| 8.0 | 3.5084244741417137 | 3.7212155956153796 |
| 9.0 | 4.357185793060213 | 4.590550124054919 |
| 10.0 | 5.180752400467891 | 5.468600926567884 |
+----------------------+--------------------+---------------------+
我已经重新训练了几次模型,得到了相同的结果,所以我认为这不是随机性的影响。