推荐系统和基线预测器

Recommendation system and baseline predictors

我有一堆数据,第一列代表用户,第二列是电影,第三列是十分评分。

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 and this way for predicting 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),我在任何地方都看不到这个数字,所以我猜这是你的错误。

在视频中,教授在所有计算中都使用了 3.5 的原始平均值,包括计算偏差,他跳过了如何达到该数字,如果您将视频 table 上的所有数字相加并除以, 你得到 3.5.

0 2 9.2 是第一个答案,以您的视频为指导。视频声称避免了微积分,比赛的不同最终答案可能来自使用"full"方法。

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 竞赛的一个变体,竞赛的主持人知道实际答案(收视率),他不会给你答案,你应该 guess/predict 他们,比赛的获胜者是最接近实际答案的人。

你比赛的获胜者最接近,但他使用未知方法到达那里,或者他自己知道方法的变体,如果你的目标是完全匹配他的答案,你最好问他什么方法他使用了他是如何修改它的,并尝试复制他的结果。

如果这是作业而不是比赛,那么老师会希望你使用他教给你的"correct"方法(没有固定的方法,只是很多方法的准确率不同),你'我必须完全按照他教你的那样使用它。但这是一场竞赛,你的目标是找到一个接近最佳的基本方法(你使用的那个精度很低),并稍微修改它以获得更好的结果。

如果你想了解 link 我建议你研究一下,然后再问一个统计问题,因为它只是简单的统计。您可以尝试自己理解 link 或研究矩阵分解。请记住,要获得比赛获胜结果(或关闭),您将无法使用像在 youtube 视频中找到的简单方法,而是需要一种包含更多数学知识的方法。