吴恩达《机器学习》课程总结(16)推荐系统
16.1问题形式化
(1)讲推荐系统的原因主要有以下几点:
1.推荐系统是一个很重要的机器学习的应用,虽然在学术界上占比较低,但是在商业应用中非常的重要,占有很高的优先级。
2.传达机器学习的一个大思想:特性是可以学习而来的,不需要人工去选择。
(2)说明的案例:电影推荐系统
希望创建一个算法来预测每个人可能会给他们没看过的电影打多少分,并以此作为推荐依据。
(3)此外引入一些标记:
nu代表用户的数量,
nm代表电影的数量,
r(i,j)如果用户j给电影i评过分则r(i,j)=1,
y(i,j)代表用户j给电影打的分数,
mj表示用户评分的电影的总数。
16.2基于内容的推荐系统
(1)总结:基于内容其实就是已经有了电影的特征X,然后求拟合的参数θ,后面提到的基于用户,则是已经有了参数θ,来求拟合的电影特征X。
(2)假设每部电影已知特征(基于内容):
参数说明:θ(j)表示用户j的参数,x(i)表示电影i的特征,
对于用户j和电影i,我们预测评分为:(θ(j))Tx(i)
对于单用户的代价函数(省略了样本数m,对θ0不做正则化,只计算有评分的)如下:
故对于所有用户的代价函数为:
梯度下降式的梯度更新方式:
16.3协同过滤
(1)基于用户的(即已知用户的参数θ,求电影特征x),其代价函数为:
(2)协同过滤算法是既不知道特性X,也不知道用户参数θ时同时对二者进行优化。
其代价函数为:
对代价函数求偏导数:
(3)协同过滤的算法步骤:
1.初始化x(1),x(2),……,x(nm),θ(1),θ(1),……,θ(nu)为一些随机小值;
2.使用梯度下降算法最小化代价函数;
3.在训练完算法后,我们预测(θ(j))Tx(i)为用户j给电影i的评分。
(4)如何给用户推荐:
1.根据计算出来的评分,把该用户评分高的电影给该用户;
2.如果用户观看某电影,根据计算电影特征间的相似度,推荐相似的电影给该用户。
16.4协同过滤算法
16.5向量化:低秩矩阵分解
将数据集评分存储在矩阵中->通过协同过滤学习得到元素为(θ(j))Tx(i)的预测矩阵->根据电影特征距离求电影间的相似性
16.6推行工作的细节
总结:怎么给新用户推荐电影(会把每部电影的平均分作为该用户的评分)
(1)用户评分数据以及新用户Eve:
(2)对每部电影做均值归一化,然后作为数据来训练模型
(3)预测的值加上该电影的均值为最终对电影的评分:
(4)学习到的模型会把每部电影的平均分作为新用户对电影的评分。
吴恩达《机器学习》课程总结(16)推荐系统相关推荐
- 8. 吴恩达机器学习课程-作业8-异常检测和推荐系统
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 8. ...
- 7. 吴恩达机器学习课程-作业7-Kmeans and PCA
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 7. ...
- 吴恩达机器学习课程全(python实现)
吴恩达机器学习课程(python实现) 作业1-线性回归 作业2-逻辑回归 作业3-多分类和神经网络 作业4-神经网络训练 作业5-Bias vs Variance 作业6-支持向量机 作业7-K-m ...
- 吴恩达机器学习课程(第一周)
吴恩达机器学习课程(第一周) welcome Welcome to Machine learning!(video) 机器学习在各领域的应用很多 比如搜索引擎 图像识别 垃圾邮件处理 这是一门让计算机 ...
- github标星11600+:最全的吴恩达机器学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...
吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,我在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目,star数达到11671+,曾经有相关报道 ...
- 6. 吴恩达机器学习课程-作业6-SVM
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 6. ...
- 5. 吴恩达机器学习课程-作业5-偏差和方差
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 5. ...
- 4. 吴恩达机器学习课程-作业4-神经网络学习
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 4. ...
- 3. 吴恩达机器学习课程-作业3-多分类和神经网络
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 3. ...
- 2.吴恩达机器学习课程-作业2-逻辑回归
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 2. ...
最新文章
- 【MVVM Light】新手初识MVVM,你一看就会
- 你这一辈子,有没有为五毛钱拼过命?
- python获取工作日_python – 获取下一个工作日的日期
- 列表生成式(List)
- 关于万能头文件的使用
- 朴素贝叶斯与贝叶斯网络
- mac pycharm安装设置_入门python,这样操作,简单易学(安装教程)
- sed在行首(行尾)添加字符串;在某行后添加多行字符串-转
- CSS样式大全(转)
- Building a Better Vocabulary: Lecture 1 Five Principles for Learning Vocabulary
- php网易音乐api接口,网易云音乐API接口
- php laypage,ThinkPHP5、内容管理系统、前端框架layui、layPage模块
- php公众号模板在哪,微信公众号文章模板哪里找,这四种编辑软件新手也适合
- 计算机word降序排列怎么做,怎么降序排列word
- PID控制器、试凑法整定
- 《预告 》 明天(9月19日),中国科学院自动化研究所首届智能决策论坛即将开幕!(附带10+位作者演讲主题及摘要)...
- 陶朱公商训 道出了管理的本质
- 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
- 计算机知识竞赛赛制,知识竞赛活动规则
- 《微信小程序-比较数字大小》
热门文章
- android 桌面循环滚动字幕,循环滚动字幕
- c++:opencv的安装和配置
- TypeError: rectangle() got an unexpected keyword argument ‘width‘报错:
- 计算机视觉算法——Transformer学习笔记
- 【AutoML】当前有哪些可用的AutoML平台?
- 【caffe速成】caffe图像分类从模型自定义到测试
- 全球及中国自主运输机器人行业十四五创新模式与运行战略规划报告2022版
- 中国电梯行业动态调研与未来发展趋势展望报告2022-2028年版
- JS与flash交互通信控制的方法
- 第二章 数组名是一个指针常量吗?