吴恩达ML课程笔记(Chapter 16)

16-1 问题规划

1.几个说明:
n.u=the number of users
n.m = the number of movies
r(i,j)=1 if user j has rated movie i
y(i,j)=rating given by user j to movie i

16-2 基于内容的推荐算法

1.题目如下:
在这里插入图片描述
我们的任务就是,对于用户j,研究一个三维列向量θ(j),并预测用户j给电影i打的分数是(θ(j)Tx(i)

2.如何获得上述θ(j)?这需要引入一个新的变量m(j):用户j评价过的电影总数,计算公式如下:
在这里插入图片描述
这里要注意,正则化项的分母也是2m

3.第2点是对单个用户进行求值,下面的第二条公式是用来对用户整体求θ的:
在这里插入图片描述

4.梯度下降更新θ值
在这里插入图片描述

16-3 协同过滤

1.给定θ,求x:
在这里插入图片描述
正则项需要的是平方项。这样相当于是求电影的特征向量(注意,这里所说的特征向量和高代中的特征向量不是一回事,这里的特征向量仅仅是该电影系列特征值组成的向量而已)

2.实际应用中,我们可以用16-2的方法算出θ,然后再根据求出来的θ用本小节的方法求出新的x(i),接着用这个x去更新θ,如此循环往复,即可得到一组较为理想的θ和x

16-4 协同过滤算法

1.把16-2和16-3结合起来的算法如下:
在这里插入图片描述
这样,就不需要在两个参数和两条式子之间来回折腾了,应用上面这条式子,可以让θ和x同时最小化

2.协同过滤算法:
1)把x(1),x(2),…,x(nm)(1)(2),…,θ(nu)初始化为一个小的随机数

2)用梯度下降法则最小化代价函数:
在这里插入图片描述
3)给定一个新用户以及他的θ参数向量,然后预测其对电影i的评分。这里的θ向量是和第2点所求出来的θ体系相对应的

16-5 矢量化:低秩矩阵分解

1.怎么判断电影i和电影j是不是相关的?
看||x(i)-x(j)||是不是足够小,即两个特征向量是不是足够小就可以了。从而就能通过用户给电影A打了高分,我们就可以找到另外一些特征向量和x(A)相距较近的电影推荐给用户

2.如何得到所有用户对所有电影的评分?矩阵相乘即可:
(x(1),x(2),…,x(m)T(1),θ(2),…,x(nu))

16-6 实施细节:均值规范化

1.给定这样一个场景,我们有4位顾客对5部电影的评分数据,像这样:
在这里插入图片描述
现在有第五位顾客,但是这位顾客没有任何的评分数据, 这样,根据下面这条式子算出来的θ将是0向量,这样,用θTx算出来的分数也只能是全0:
在这里插入图片描述

2.对于第1点所描述的情况,我们就可以先求出每一部电影的均分,然后用得分矩阵减去均分,得到新的得分矩阵,再用这个新得分矩阵去训练得到我们的θ,然后再用θTx+μ得到该新用户对某部电影的可能得分。这样,就不至于出现全评为0分的情况了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值