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 学习笔记的更多相关文章

  1. Coursera 机器学习 第7章 Support Vector Machines 学习笔记

    7 Support Vector Machines7.1 Large Margin Classification7.1.1 Optimization Objective支持向量机(SVM)代价函数在数 ...

  2. Coursera 机器学习 第5章 Neural Networks: Learning 学习笔记

    5.1节 Cost Function神经网络的代价函数. 上图回顾神经网络中的一些概念: L  神经网络的总层数. sl  第l层的单元数量(不包括偏差单元). 2类分类问题:二元分类和多元分类. 上 ...

  3. 【机器学习】决策树(Decision Tree) 学习笔记

    [机器学习]决策树(decision tree) 学习笔记 标签(空格分隔): 机器学习 决策树简介 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个 ...

  4. Coursera 机器学习 第8章(下) Dimensionality Reduction 学习笔记

    8 Dimensionality Reduction8.3 Motivation8.3.1 Motivation I: Data Compression第二种无监督问题:维数约简(Dimensiona ...

  5. Coursera 机器学习 第6章(下) Machine Learning System Design 学习笔记

    Machine Learning System Design下面会讨论机器学习系统的设计.分析在设计复杂机器学习系统时将会遇到的主要问题,给出如何巧妙构造一个复杂的机器学习系统的建议.6.4 Buil ...

  6. Coursera 机器学习 第6章(上) Advice for Applying Machine Learning 学习笔记

    这章的内容对于设计分析假设性能有很大的帮助,如果运用的好,将会节省实验者大量时间. Machine Learning System Design6.1 Evaluating a Learning Al ...

  7. Coursera 机器学习 第9章(上) Anomaly Detection 学习笔记

    9 Anomaly Detection9.1 Density Estimation9.1.1 Problem Motivation异常检测(Density Estimation)是机器学习常见的应用, ...

  8. Coursera 机器学习 第8章(上) Unsupervised Learning 学习笔记

    8 Unsupervised Learning8.1 Clustering8.1.1 Unsupervised Learning: Introduction集群(聚类)的概念.什么是无监督学习:对于无 ...

  9. 郑捷《机器学习算法原理与编程实践》学习笔记(第四章 推荐系统原理)(二)kmeans

    (上接第二章) 4.3.1 KMeans 算法流程 算法的过程如下: (1)从N个数据文档随机选取K个文档作为质心 (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 (3)重新计 ...

随机推荐

  1. 使用 Windows Phone 8 文件和 URI 关联的自动启动应用

    更详细,猛撸这里:http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj206987(v=vs.105).aspx 在WMApp ...

  2. [转]B+Tree图解

    一,    M阶B+树的定义(M阶是指一个节点最多能拥有的孩子数,M>2): 图1.1 3阶B+树 (1)根结点只有1个,分支数量范围[2,m]. (2)除根以外的非叶子结点,每个结点包含分支数 ...

  3. 以太坊系列之四: 使用atomic来避免lock

    使用atomic来避免lock 在程序中为了互斥,难免要用锁,有些时候可以通过使用atomic来避免锁, 从而更高效. 下面给出一个以太坊中的例子,就是MsgPipeRW,从名字Pipe可以看出, 他 ...

  4. java 笔记整理

    在19寒假对java基础进行自学,总结的笔记整理出来 ==================================================== 排序查找 冒泡排序法1.一共会比较数组元 ...

  5. git配置本地环境(phpstudy/tortoisegit/git等)

    1.下载安装phpstudy 2.下载安装git 下载地址:https://git-scm.com/downloads 3.下载安装tortoisegit,电脑64位就下载这个,如图: 4.下载安装“ ...

  6. java基础_01

    一.java中的数据类型 1.基本数据类型:四类八种 byte(1),boolean(1),short(2),char(2),int(4),float(4),long(8),double(8); 2. ...

  7. charles破解激活方法,注册码

    1  最简单的,就是买一个激活码,在网上找到一个,记录一下. // Charles Proxy License // 适用于Charles任意版本的注册码,谁还会想要使用破解版呢. // Charle ...

  8. 007 Android 单击事件、toast使用

    第一种按钮点击事件(最常用): button=findViewById(R.id.button); button2=findViewById(R.id.button2); button.setOnCl ...

  9. paraview plot over line

  10. 获取Java class或者jar文件的本地路径

    对于常规java class打成jar文件后,要获取它的本地路径,可以用如下方法. final File f = new File(TestClass.class.getProtectionDomai ...