Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
9.5 Predicting Movie Ratings
9.5.1 Problem Formulation
推荐系统。
推荐系统的问题表述:电影推荐。根据用户对已看过电影的打分来推测用户对其未打分的电影将会打什么分。下面对一部电影的打分区间是[0,5]。

做道题:

9.5.2 Content Based Recommendations
推荐系统的一种实现:基于内容的推荐。

对于每个用户i训练一个参数向量Θ(i),对于每部电影j训练一个特征向量x(j)(其中默认x0=1,实际上特征抽取是不容易的),那么(Θ(i))Tx(k)就是用户i可能对电影k的打分。
下面用线性回归解决上面的问题:
注意min式子的正则化部分的Θ有n+1维,但是是从Θ0维度开始计算的。抽离m(j)不影响最小化的结果。
对于每个用户也就是

对于整体也就是

那么可以这么做(梯度下降法等):

做道题:

D
9.6 Collaborative Filtering
9.6.1 Collaborative Filtering
协同过滤(Collaborative Filtering)。协同过滤能够自行学习所要使用的特征。
协同过滤是执行一个算法时,通过一大堆用户得到的数据,由参数矩阵得出特征,再由特征优化参数矩阵。
最小化下面的式子得到特征矩阵:

基于内容的推荐是最小化下面的式子:
注意两者的区别。
做2道题:

A

D
9.6.2 Collaborative Filtering Algorithm
协同过滤算法(Collaborative Filtering Algothrim)。
将对于参数矩阵和特征矩阵的优化结合:下面有3个式子,第一个式子最优化参数矩阵,第二个式子最优化特征矩阵,最后一个式子将两者结合。

这里注意最后一个式子中的Θ(j)和x(i)都是n维向量,没有默认初始的Θ0和x0,和上面的两个式子不一样。
协同过滤算法:

做道题:

9.7 Low Rank Matrix Factorization
9.7.1 Vectorization: Low Rank Matrix Factorization
协同过滤算法的向量化实现以及协同过滤算法的使用实例。
协同过滤算法的向量化实现(低秩矩阵分解):
协同过滤算法的使用实例:比如当前用户买了A电影的票,判断对于电影B,他是否有可能买。
做道题:


9.7.2 Implementational Detail: Mean Normalization
均值归一化:可以使算法运行得更加有效。
例子:如果有一位用户对所有电影都没有评分,为了推测出该用户对某一个具体电影的评分,需要用到均值归一化。
下图中对于某一部电影i,求已经评分的用户j评分Yij的平均数ui,然后Yij=Yij-ui,得到新的矩阵Y。用新的Y来训练得到参数Θ(j),然后Yi5=(Θ(j))T(X(5))+ui

做道题:

练习:



不知道这题为什么错:

Coursera 机器学习 第9章(下) Recommender Systems 学习笔记的更多相关文章
- Coursera 机器学习 第7章 Support Vector Machines 学习笔记
7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数 ...
- Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记
5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L 神经网络的总层数. sl 第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上 ...
- 【机器学习】决策树(Decision Tree) 学习笔记
[机器学习]决策树(decision tree) 学习笔记 标签(空格分隔): 机器学习 决策树简介 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个 ...
- Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记
8 Dimensionality Reduction8.3 Motivation8.3.1 Motivation I: Data Compression第二种无监督问题:维数约简(Dimensiona ...
- Coursera 机器学习 第6章(下) Machine Learning System Design 学习笔记
Machine Learning System Design下面会讨论机器学习系统的设计.分析在设计复杂机器学习系统时将会遇到的主要问题,给出如何巧妙构造一个复杂的机器学习系统的建议.6.4 Buil ...
- Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记
这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...
- Coursera 机器学习 第9章(上) Anomaly Detection 学习笔记
9 Anomaly Detection9.1 Density Estimation9.1.1 Problem Motivation异常检测(Density Estimation)是机器学习常见的应用, ...
- Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记
8 Unsupervised Learning8.1 Clustering8.1.1 Unsupervised Learning: Introduction集群(聚类)的概念.什么是无监督学习:对于无 ...
- 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(二)kmeans
(上接第二章) 4.3.1 KMeans 算法流程 算法的过程如下: (1)从N个数据文档随机选取K个文档作为质心 (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 (3)重新计 ...
随机推荐
- 数据库索引与b+树
数据库索引详解 索引 当我们在设计数据库的时候,对表的一些属性有时会加上索引,但索引为什么能提高检索速率呢?是不是用了索引就一定可以提高效率呢?不同索引之间有什么区别呢?搞懂这些问题是灵活运用索引的必 ...
- React 使用browserHistory项目访问404问题
最近项目里面用到了React但是发布到iis站点之后,路由地址 刷新访问直接404错误.查阅资料之后发现是iis缺少配置URL重写 的问题导致的.下面我们来图形化配置,简单的配置下IIS 打开IIS使 ...
- OO 面向对象的三大特性
面向对象的三大特性 一.面向对象特性——封装: 概念:把对象所能操作的信息进行封装: 封装作用: 1.减少代码之间的耦合: 2.提供统一的访问接口,内部修改不影响外部的调用:(开放封闭原则) 二.面向 ...
- linux联网配置(更新)
重启网络配置:service network restart: 常见问题: linux 虚拟机ifconfig 显示eth1 文件ifcfg-eth0中device为eth0的问题 为什么eth0 ...
- python基础之内建函数(二)
(7)max() 函数:返回列表.元祖或字符串中最大的元素,注意:字母“大于”数字.小写字母“大于”大写字母(字母排序是根据ASCII码表排的) 例如: >>>num = list ...
- 老男孩Day10作业:主机管理程序
一.作业需求: 1, 运行程序列出主机组或者主机列表 2,选择指定主机或主机组 3,选择主机或主机组传送文件(上传/下载) 4,充分使用多线程或多进程 5,不同主机的用户名,密码,端口可以不同 6,可 ...
- 190320运算符&数据类型
一.运算符 1.算术运算符 + 加 - 减 * 乘 / 除 ** 平方 // 整除 % 取余 2.比较运算符 == 等于 > 大于 < 小于 <= 小于等于 >= 大于等于 ! ...
- sql 表字段模糊连接
select AreauserCode,RtuName from TB_AreaUser as tau right join TB_MaintenanceInfo inf on inf.RtuName ...
- qt线程睡眠
头文件 #include <QThread> 接口函数: void QThread::sleep ( unsigned long secs ) [static protected] v ...
- sharding-jdbc数据分片配置
数据分片 不使用Spring 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> ...