[关闭]
@lunar 2016-04-01T07:05:39.000000Z 字数 2555 阅读 1811

Coursera Machine Learning Week9 异常检测/推荐系统


Coursera Machine Learning Lunar's note
MachineLearning Coursera

异常检测 Anomaly detection

高斯分布 Gaussian Distrubution

又叫正太正态分布Normal Distrubution。
对于,如果期望为,方差为,那么我们就可以称,(读作x服从mu和sigma的高斯分布)。
维基百科
该分布的概率分布曲线像是山丘,以对称,山丘的陡峭程度和
相关,越小,曲线越陡峭。

参数估计

对于给定的数据集,如果认为该数据分布符合正态分布,那么可以对他们进行参数估计,即利用数据集的分布情况来估算正态分布的参数()。


ps.概率论课上这两个公式的分母都是但是在机器学习领域更通用m,虽然在数学理论上二者不同,但是实际应用中差别很小。

算法

首先,我们要算出某个样本的估算密度,对于有n个特征值的样本x,

下面是具体算法步骤
1. 选择出有利于检测出异常的特征值。
2. 对于给出的无标签数据集,计算出正态分布的参数。
3. 对于新的样本,计算出,当小于阈值时(),判定为异常。

算法的评估

通过带标签的数据,我们可以用数字量化对算法的评估。
假定CV集和测试集都是带标签的,而训练集是不带标签的数据。
在训练结束后,我们通过CV集/测试集的数据计算出评估量:

监督学习 vs. 异常检测

异常检测 监督学习
正负样本数量相差非常悬殊,有一项非常小 正负样本数量都很大
异常的类型多样(但数量不一定多),难以预料 训练集样本异常包含大多数或几乎所有的异常类型,且类型数较少
欺诈检测 垃圾邮件分类
生产检测 天气预测
机器故障检测 癌症诊断

特征值选择

改进:多元高斯分布

以上的异常检测不能兼顾到特征值之间的联系。比如网站用户检测,每月登陆1次可能是正常的,每月消费10笔也可能是正常的,但是如果同一用户每月只登陆一次但是消费10笔,那么可能就是异常的,然而以上的检测并不会考虑这个。当然我们可以通过增加二者的比率(每次登陆消费笔数)来解决,但是当特征值较多时,就无法如此简单的解决。所以我们引入多元高斯分布。
对于,

这里是个n*n的矩阵,是该矩阵的行列式的值。
利用如下公式进行参数拟合

接下来对example,计算并和阈值比较。
如果数据含有重复特征值或者冗余(线性相关)特征值(如),那么协方差矩阵会是不可逆的,也就不能使用多元高斯模型(m>n时也不能用)。

推荐系统 Recommender System

基于内容的推荐

设置基于内容的特征量,值越大表示包含该特征内容越多。比如(),那么一部电影的表示该电影的爱情片成分有多少。将用户看过的电影的基于内容的特征值作为输入X,评分作为输出y,那么我们可以通过回归算法拟合每个用户的参数,并通过此对用户未评分的电影进行评级。

协同过滤 Collaborative Filtering

不同于上面基于内容的推荐,这里我们不事先对电影的内容提取特征值,相反,我们对用户的喜好提取特征值。
如:用户对爱情电影的喜好为5,对动作电影的喜好为1。那么大量搜集这些信息后就可以结合用户给不同电影的评分,得到电影的内容特征值。
我们可以看出,前面是通过电影内容特征估计用户喜好特征,后面是通过用户喜好特征来估计电影内容特征,这两种方法可以结合起来:

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注