我有一堆数据,第一列代表用户,第二列是电影,第三列是十分评级。
0 0 9
0 1 8
1 1 4
1 2 6
2 2 7
我必须预测另一组数据(用户、电影、?)的第三个数字:
0 2
1 0
2 0
2 1
我使用这种方式来查找偏差值 https://youtube.com/watch?v=dGM4bNQcVKI这种预测方式 https://www.youtube.com/watch?v=4RSigTais8o .
用户编号 0 的偏差值:9 + 8/2 = 8.5 - 1.5 = 7
。
第 2 部电影的偏差值:6 + 7/2 = 6.5 - 1.5 = 5
。
和基线预测:
1.5 + 7 + 5
,其中结果是 13.5
,但比赛结果是:7.052009
。
但是问题描述说我的推荐系统的结果应该是:
0 2 7.052009
1 0 6.687943
2 0 6.995272
2 1 6.687943
我的错误在哪里?
最佳答案
原始平均值是所有当前分数的平均值 ((9+8+4+6+7)/5 = 6.8),我在任何地方都看不到这个数字,所以我猜这是你的错误。
在视频中,Prof. 在所有计算中都使用了 3.5 的原始平均值,包括计算偏差,他跳过了如何达到该数字,如果您将视频表格中的所有数字相加并相除,您将得到 3.5。
0 2 9.2 是第一个答案,以您的视频为指导。视频声称避免了微积分,比赛的不同最终答案可能来自使用“完整”方法。
0 2 ?,用户 0(第 0 行:9 8 x),电影 2(第 2 列:x 6 7)
raw average = 6.8
bias user 0: (9+8) / 2 - 6.8 = 1.7
bias movie 2: (6+7) / 2 - 6.8 = -0.3
prediction: 6.8+1.7-0.3 = 8.2
这个问题看起来像是 Netflix 竞赛的一个变体,竞赛的主持人知道实际的答案(收视率),他不会给你答案,你应该猜测/预测他们,竞赛的获胜者是最接近实际答案的那个。
你比赛的获胜者最接近,但他使用未知方法到达那里,或者他自己知道方法的变体,如果你的目标是完全匹配他的答案,你最好问他用了什么方法以及他是如何修改它的,并尝试复制他的结果。
如果这是家庭作业而不是比赛,那么老师会希望你使用他教给你的“正确”方法(没有固定的方法,只有许多不同准确度的方法),你必须使用就像他教你的一样。但这是一场竞赛,您的目标是找到一种接近最佳的基本方法(您使用的方法精度非常低),并稍微修改一下以获得更好的结果。
如果您想了解链接,我建议您先研究一下,然后再问一个统计问题,因为它只是简单的统计数据。您可以尝试了解链接或自行研究矩阵分解。请记住,要获得(或关闭)比赛获胜结果,您将无法使用像在 youtube 视频中找到的那种简单方法,而是需要一种包含更多数学知识的方法。
关于algorithm - 推荐系统和基线预测器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29338183/