Netflix competition 总结学习

竞赛规则

竞赛规则是通过给定的数据(48万用户,关于1.8万部电影的一共1亿条评分),来预测给定用户对一部没有看过(你的数据里面没有)的电影的评分会是多少。

关键点

  • 首先要明白这个用户和电影的这个matrix是非常sparse的一个矩阵,有的电影会有很多评分,有的电影基本没有,有的人很喜欢打评分,有的人则不喜欢。

  • 测试有两个一个叫做quiz set一个是test set,quiz set的目的是leader board的评分排名,当你在quiz set上超过baseline 10% 就会被拿到test set上做测试。设立两个的原因是防止不断的尝试quiz set从而让你的算法overfit了。

  • 使用数据中要注意,only use ones that has pairs of

Process

  1. 首先是分析数据,数据是不是非常sparse,需不需要dimensionality reduction. Missing数据怎么处理之类的。

  2. 使用什么算法?
    首先也是最重要的,一般来说,最好的算法一定是多个算法的融合,也就是ensemble。
    想到可以clustering,是根据电影cluster人还是根据人cluster电影。然后怎么measure距离,这里距离代表什么?是代表相似度吗。相似度又怎么measure,两个向量相乘(dot product)?这些都是按照流程逻辑思考会碰到的问题。
    相似度在实际生活中确实是一个比distance更好的measurement.

  3. 1NN or KNN:
    找一个最相似的人,然后他对这一部电影的评分就是我的输出也就是我对另外一个人对这部电影评分的预测。
    找到k个和我相似的人,根据他们和我的相似程度做不同的weight然后输出。(kernel method)

  4. Clustering:
    cluster人的话,可以通过被分配到的这个cluster中所有人对星战的评分的平均值作为predication初出。

Best method:

KNN + matrix reconstruction(类似 dimensionality reduction)
可以找到相似的人,看他们对这个电影的评分。
也可以找到相似的电影,看这个人对他们的评分。

也可以做soft KNN,这个公式是cluster电影的版本
在这里插入图片描述
减去一个baseline的原因是有些人趋向于给所有电影都高分,同理,有些电影趋向于被大多数人高分。有了这个baseline之后,会发现计算出来的分数会更集中在baseline附近,这样的结果会更可靠。

在这里插入图片描述
使用这个方法可以替代s,也就是之前的similarity(这个并不知道之前是怎么求出来的),能根据已有的数据找到最好的(也就是能做出最好判断的)weight。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值