推荐系统和基准预测器

3

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

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 = 7enter image description here 电影编号2的偏差值为:6 + 7 / 2 = 6.5 - 1.5 = 5enter image description here 还有基准预测器: https://intern.contest.yandex.ru/testsys/tex/render/XGhhdCByX3t1bX0gPSBcbXUgKyBiX3UgKyBiX20s.png 1.5 + 7 + 5,结果为13.5,但在比赛结果中是:7.052009
但问题描述说我的推荐系统的结果应该是:
0 2 7.052009
1 0 6.687943
2 0 6.995272
2 1 6.687943

我的错误在哪里?

1个回答

2

原始平均数指的是所有现有分数的平均值((9 + 8 + 4 + 6 + 7)/ 5 = 6.8),我没有看到那个数字出现在任何地方,所以我想这是你的错误。

在视频中,教授在所有计算中使用了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 视频中找到的简单方法,而需要使用更多数学的方法。

在视频中,Mung Chiang教授找到了D行的偏差(计算D行中的数字),然后找到了3列的偏差(计算第3列中的数字)。 - rel1x
原始平均值=6.8, 用户偏差0:(9 + x + x)/ 1-6.8 = 2.2 电影偏差2:(x + x + 7)/ 1-6.8 = 0.2 得分:6.8 + 2.2 + 0.2 = 9.2我最初说的是8.2,因为我搞错了,认为用户=行,电影=列:P - gia
Bleh第一次就是正确的,但我仍在使用你的视频,并更新了数学公式,而不仅仅是结果。比赛的结果来自使用不同的方法,如果您可以取消踩的话,那将不胜感激。 - gia
你觉得我需要对均方根误差(RMSE)做些什么吗? - rel1x
是的,但我不明白我需要做什么。 - rel1x
我修改了答案,试图让你理解。是的,你可以使用RMSE来测试你的答案,但现在你不需要这样做,因为你知道8.2与获胜的7.052009相差很远。 - gia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接