Machine Learning第九周笔记:异常检测与推荐系统
来源:互联网 发布:淘宝企业店铺卖假货 编辑:程序博客网 时间:2024/04/29 16:08
博客已经迁移到Marcovaldo’s blog (http://marcovaldong.github.io/)
Andrew Ng在Machine Learning的第九周介绍了异常检测(anomaly detection)和推荐系统(recommender system),将笔记整理在下面。
Anomaly Detection
Density Estimation
Problem Motivation
视频开头,Andrew Ng告诉我们,异常检测(anomaly detection)主要应用于无监督式学习,但它更像是监督式学习。我们以飞行器发动机为例来介绍异常检测。飞行器发动机会有很多特征,这里我们用
这里我们引入了一个密度估计的模型来判断新数据
对于下图中的training set,我们发现数据点从中心(图中的小圆圈处)到四周(图中的大圆圈处),其密度由大到小。处于中心的数据点其更有可能是正常的,而处于边缘处的数据点则更有可能是异常的。
异常检测的应用有很多,如下图中给出的流量监测中的反作弊、装备制造、监测数据中心的机器运作情况。在前一个应用中,首先提取用户的特征(如用户登录频率、用户访问页面数量、用户的post数量等),收集数据,然后得出密度分布模型
Gaussian Distribution
这一小节我们介绍Gaussian分布,也就是高中就开始学的正态分布。如果你对Gaussian分布已经相当熟悉的话,就可以跳过这一节了。假设
概率密度函数的图像如下图所示
下图给出不同参数的Gaussian分布的图像,反映了概率分布函数随数据样本点期望和方差的变化情况。
我们知道概率分布函数中两个参数的定义,对于给定的数据集{
Algorithm
给定训练数据集{
其中
这就前面提到的密度估计模型。(这里,特征
下图给出了一个具体的应用,特征
Building an Anomaly Detection System
Developing and Evaluating an Anomaly Detection System
在构建一个学习算法(选择特征等)时, 一个能够衡量学习算法性能的指标会其很大的帮助作用。假设我们有一些已经标记了的数据(正常数据标记为
下面沿用前面的飞行棋发动机的例子,给出具体的数据分布。注意第二种数据分布中,cross-validation set和test set中的正常数据是一样的,这在很多时候是允许的。
当然,在处理未标记的数据集时,采用的是同样的一个过程。另外,这里提到了评判学习算法性能的指标,如precision、recall、
Anomaly Detection vs. Supervised Learning
通过前面的学习,我们发现异常检测和有监督式学习很像,这一节我们就来讨论一下,那些情况适合使用异常检测,那些时候适合有监督式学习。
首先是数据集的分布上有区别:异常检测适用于positive examples(异常数据,y=1)占很少一部分而negative examples(正常数据,y=0)占很大一部分的数据集;而有监督式学习适用于positive examples和negative examples数量相当的数据集。另外,异常检测可以应对多种类型的异常数据,其处理的新的异常数据很可能是以前没有遇到过的(比如,电脑异常中可能会遇到CPU利用率多高、流量过大等多种异常,而这些异常的数量肯定都很低,且必须都能被检测出来);而监督式学习处理的新数据与training set中的数据是相似的。
在这里我们结合前面提到的几个应用来对比二者的不同。异常检测的应用有流量监测中的反作弊、装备制造、监测数据中心的机器运作情况等,这里的异常用户/设备(发动机)/电脑相对于正常用户/设备(发动机)/电脑数量很少很少,且种类多样。监督式学习的应用有垃圾邮件系统、天气预测、癌症分类,这几种应用都是讲数据分成数量相当的几类,且同一类中的数据很相似。
Choosing What features to Use
这一小节我们介绍在异常检测中如何设计特征。我们是使用概率密度分布来处理数据,检测异常,因此我们需要是数据集中的特征满足某一分布,如Gaussian分布(当然,你也可以使用其他的分布,这时你就要调整前面的
通常情况下,在对新数据进行检测时,我们希望由正常数据得到的
Multivariate Gaussian Distribution(Optimal)
下面这两小节都是在介绍多维Gaussian分布,可查阅相关概率书籍。
Multivariate Gaussian Distribution
这里使用电脑异常检测的例子,下图左侧给出了数据点在坐标系中的分布情况,其中横坐标
发生上面情况的原因是,
下面几张图给出了概率密度函数随参数
Anomaly Detection Using the Multivariate Gaussian Distribution
给定training set{
使用前面给出的Gaussian分布概率密度函数p(x)来对新数据x进行判断,若
前面原始模型与多维Gaussian分布模型的区别在于特征的相关性:原始模型中的特征之间是相互独立,其对应于多维Gaussian分布模型中的协方差矩阵
原始模型和多维Gaussian分布模型均可以处理特征不相互独立的问题,差别在于原始模型需要人工去估计两两特征之间的影响,而多维Gaussian分布则自动的量化了两两特征之间的影响。相对应地,前者的计算较简单,后者的计算量增加很多。
当提取到的特征很多,达到了
Recommender Systems
Predicting Movie Ratings
Problem Formulation
在看到一部电影时,我们通常会去豆瓣上看一下众多网友对该电影的评分情况,然后我们以此来判断要不要看这部电影。这里用到的就是推荐系统(recommender system)机器学习的最大应用之一就是推荐系统,它可以帮助我们更加了解用户,从而提升用户体验,创造更多效益。这里以电影评级预测为例来介绍推荐系统。
下图给出了4个用户对5部电影的评分情况,其中电影分数取值是{1,2,3,4,5},“?”表示该用户对该电影还未评分。这里引入变量
Content Based Recommendations
如何预测上图中的问号呢,下面给出过程。我们对电影进行特征提取,得到了两个特征
现在我们的问题转换成了线性回归问题,求出其中的参数
其中
而系统要得到所有的参数
然后用梯度下降法去修正参数(Latex公式写得实在太累,还是截图吧):
Collaborative Filtering
Collaborative Filtering
前面我们给出了每部的电影的具体特征值,但我们怎么得到这些特征值呢,协同过滤(collaborative filtering)将帮助我们完成这一工作。现在问题变成了求解下图中的所有问号:
现在假设我们已经得到了参数
所以,此时我们要做的是下面这件事:
现在我们知道了,给定
Collaborative Filtering Algorithm
前面说了可以从随机的一组
此时我们的目标就是最小化上面的损失函数:
注意,此时我们省去了线性回归中添加的
下图是协同过滤算法的详细过程:
Low Rank Matrix Factorization
Vectorization: Low Rank Matrix Factorization
这一小节我们要做的是将数据放到矩阵中
前面我们都是在讲如何根据已有评分数据预测用户对某一部电影的喜爱程度,下面我们介绍如何去发现相关电影(finding related movies)。首先,我们需要提取电影的特征,如特征
于是,找到上面公式的5个最小值对应的影片,就找到了5部与电影i最相近的影片。
Implementational Detail: Mean Normalization
最后一小节讲的是实现推荐系统时要注意的几个细节问题。我们如何去处理一个没有任何评分数据的用户,如Eve呢?我们需要为Eve找到一个参数
利用均值标准化是求出每个特征的均值,然后用其去处理原始数据,具体如下所示:
现在我们要从标准化的数据出发去预测,如预测用户j对电影i的评分为
以上就是Machine Learning中的异常检测和推荐系统。
- Machine Learning第九周笔记:异常检测与推荐系统
- machine learning week 9 异常检测 推荐系统
- Coursera 《Machine Learning》 编程作业8:异常检测与推荐系统
- Machine Learning第九讲[异常检测] --(二)创建一个异常检测系统
- Andrew Ng《Machine Learning》第九讲——异常检测和推荐算法
- Machine Learning第九讲[异常检测] --(一)密度估计
- Machine Learning第九讲[推荐系统] --(二)协同过滤
- Machine Learning第九讲[推荐系统] --(一)基于内容的推荐系统
- Standord Machine Learning -- 第九讲 推荐引擎
- Machine Learning第九讲[异常检测] --(三)多元高斯分布(选学)
- Machine Learning第九讲[推荐系统] --(三)低秩矩阵分解
- Stanford Machine Learning -- 第八讲 异常检测
- 异常检测(斯坦福machine learning week 9)
- Machine Learning-Recommender Systems(推荐系统)
- Machine Learning——推荐系统
- Coursera机器学习(Andrew Ng)笔记:异常检测与推荐系统
- Andrew Ng机器学习笔记week9 异常检测、推荐系统
- 机器学习第九周(二)--构建异常检测系统
- MySQL数据库insert和update语句
- 选择排序
- android Mediaplayer各种属性和方法简单介绍
- iOS临近切换听筒和扬声器
- 京东2016笔试题 小东拉票
- Machine Learning第九周笔记:异常检测与推荐系统
- 团队交流之版本控制:SVN篇
- OpenDaylight开发实例toaster实验过程记录(2)
- 插入排序
- "Could not find Developer Disk Image"问题,为Xcode 7.3之前版本配置iOS9.3配置包
- HttpClient Basic Authentication
- IDEA 使用Tomcat插件进行调试web程序时,1099端口被占用问题
- 常用工具和库下载地址
- 创建左划返回手势