这是吴恩达机器学习的最后一课,此次学习的内容是机器学习的常见应用,异常检测与协同过滤。课程中介绍的异常检测主要基于 正态分布,用于检测出偏离正常值的数据。而协同过滤是 推荐系统 的一部分,利用已有用户的评分来给你推荐商品、视频等。git
点击 课程视频 你就能不间断地学习 Ng 的课程,关于课程做业的 Python 代码已经放到了 Github 上,点击 课程代码 就能去 Github 查看( 没法访问 Github 的话能够点击 Coding 查看 ),代码中的错误和改进欢迎你们指出。github
如下是 Ng 机器学习课程第八周的笔记。算法
一般使用异常检测的状况是在一个含有正常和异常的数据集中,异常样本数目远小于正常样本数目,使得没法从异常数据中提取有效的特征。因而只能经过学习正常数据的分布来识别异常数据。具体来讲,咱们经过数据学习一个几率模型 ,并经过一个阈值
来判断数据是否异常。从直观上来理解正常数据虽然因为偏差等缘由有所偏离,但基本都还在一个区域范围内,而异常数据则会离这个区域比较远( 以下图,红圈里的能够看作异常值 )。机器学习
在异常检测中,假设特征是相互独立的并且服从正态分布 ,因此:ide
而后咱们只要经过数据计算 和
就能够获得
了,因而有以下算法:函数
- 选择有助于区分异常数据的特征
- 分别计算
:
- 对于须要检测异常的数据
计算
,若是
则判断为异常。
算法在特征比较多时计算效率比较高,并且在一般状况下即便特征不独立也可以获得比较好的结果。若是特征比较少而且特征之间又相互关联的状况,这时候咱们可使用 多元正态分布 来做为模型,此时 为:学习
式中的 为 协方差矩阵,在以前的课程笔记中有提到。.net
因为咱们的数据有 偏斜类 的问题,因此须要用 查准率 和 召回率 的结合 指数来评价模型,并选取
取最大时对应的
做为阈值。3d
假设咱们有 部影片,而且有
位用户对于其中一些影片的评价
。cdn
预测的评分 ,值得注意的是
都是未知的,它们都是须要学习的变量。
肯定了学习模型,下一步就是要设定 代价函数。此次的 代价函数 和以前基本相同,不一样的是在计算梯度的时候 都须要求。下面直接给出 代价函数:
经过简单的求导能够获得梯度公式:
和以前的学习算法相同,咱们只须要实现 代价函数 的部分并计算梯度值,调用 minimize 函数来获取最优解就能够了。有了 的值,咱们就可以获得预测的评分,经过评分高低就可以进行推荐啦。
吴恩达机器学习课程做为对机器学习基本的了解仍是不错的。可是课程的内容比较老,像 深度学习、强化学习 等内容都没有涉及,缺少几率方面的视角,工程方面也只是提了一点点,这些也正是从此须要继续学习的内容。 当驶向 机器学习之海 的时候,感受心中有一个方向很重要,即使它有多么的不切实际。
So~,第八周的内容就是这些了,谢谢你们耐心阅读。