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. js 去空格 和 获得字节数

    function removespace(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } function getLength ...

  2. 关于bootstrap模态框的初始化事件

    转:https://blog.csdn.net/u010181136/article/details/77579823

  3. WinForm中的重绘 - 文本的重绘

    两种方式 TextRenderer.DrawText 注意:默认在每次绘制的文本左右有padding,即使参数中设置了TextFormatFlags.NoPadding也是一样,因此在分段绘制文本时( ...

  4. 将以太坊封装为 ERC20

    将以太坊封装为 ERC20 TOKEN 很多 DAPP 都是在处理 ERC20接口的 token, 其实很容易将以太坊封装为 ERC20,这样就可以统一处理, 至少我目前在做的雷电网络就是这么处理的. ...

  5. 第十二篇 os模块

    Python的os模块提供了系统相关,目录,文件操作,执行命令等操作. 1.文件和目录操作相关的方法: 方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 ...

  6. uC/OS-II 一些函数简介

    获得更多资料欢迎进入我的网站或者 csdn或者博客园 以前搞硬件的经验,最近突然翻出来了.分享给大家:主要讲解uC/OS-II常用函数:虽说现在转行软件了,但是感觉之前搞硬件的经验还真是很有用对于理解 ...

  7. [译文]Casperjs1.1.0参考文档-快速开始

    快速开始 只要casperjs被正确安装,你就可以开始写你的第一个脚本,你可以使用javascript或者coffiescript编译脚本. 提示: 如果你对javascript不是很熟悉,最好先看专 ...

  8. 网页footer背景(stick footer布局)

    今天遇到了一个有意思的问题,想在网站的foot里面加入一张背景图片,并且在footer的底部写下一些内容于是乎在footer添加了background,并设置了footer的大小 先说一下开始的做法: ...

  9. 4、numpy+pandas速查手册

    <Python数据分析常用手册>一.NumPy和Pandas篇 一.常用链接: 1.Python官网:https://www.python.org/2.各种库的whl离线安装包:http: ...

  10. Qt 学习之路 2(31):贪吃蛇游戏(1)

    Qt 学习之路 2(31):贪吃蛇游戏(1) 豆子 2012年12月18日 Qt 学习之路 2 41条评论 经过前面一段时间的学习,我们已经了解到有关 Qt 相当多的知识.现在,我们将把前面所讲过的知 ...