@lunar
2016-04-01T15:05:39.000000Z
字数 2555
阅读 1896
Coursera Machine Learning Lunar's note
MachineLearning
Coursera
又叫正太正态分布Normal Distrubution。
对于,如果期望为,方差为,那么我们就可以称,(读作x服从mu和sigma的高斯分布)。
该分布的概率分布曲线像是山丘,以对称,山丘的陡峭程度和
相关,越小,曲线越陡峭。
对于给定的数据集,如果认为该数据分布符合正态分布,那么可以对他们进行参数估计,即利用数据集的分布情况来估算正态分布的参数()。
ps.概率论课上这两个公式的分母都是但是在机器学习领域更通用m,虽然在数学理论上二者不同,但是实际应用中差别很小。
首先,我们要算出某个样本的估算密度,对于有n个特征值的样本x,
。
下面是具体算法步骤
1. 选择出有利于检测出异常的特征值。
2. 对于给出的无标签数据集,计算出正态分布的参数。
3. 对于新的样本,计算出,当小于阈值时(),判定为异常。
通过带标签的数据,我们可以用数字量化对算法的评估。
假定CV集和测试集都是带标签的,而训练集是不带标签的数据。
在训练结束后,我们通过CV集/测试集的数据计算出评估量:
异常检测 | 监督学习 |
---|---|
正负样本数量相差非常悬殊,有一项非常小 | 正负样本数量都很大 |
异常的类型多样(但数量不一定多),难以预料 | 训练集样本异常包含大多数或几乎所有的异常类型,且类型数较少 |
欺诈检测 | 垃圾邮件分类 |
生产检测 | 天气预测 |
机器故障检测 | 癌症诊断 |
以上的异常检测不能兼顾到特征值之间的联系。比如网站用户检测,每月登陆1次可能是正常的,每月消费10笔也可能是正常的,但是如果同一用户每月只登陆一次但是消费10笔,那么可能就是异常的,然而以上的检测并不会考虑这个。当然我们可以通过增加二者的比率(每次登陆消费笔数)来解决,但是当特征值较多时,就无法如此简单的解决。所以我们引入多元高斯分布。
对于,
这里是个n*n的矩阵,是该矩阵的行列式的值。
利用如下公式进行参数拟合
。
接下来对example,计算并和阈值比较。
如果数据含有重复特征值或者冗余(线性相关)特征值(如),那么协方差矩阵会是不可逆的,也就不能使用多元高斯模型(m>n时也不能用)。
设置基于内容的特征量,值越大表示包含该特征内容越多。比如(),那么一部电影的表示该电影的爱情片成分有多少。将用户看过的电影的基于内容的特征值作为输入X,评分作为输出y,那么我们可以通过回归算法拟合每个用户的参数,并通过此对用户未评分的电影进行评级。
不同于上面基于内容的推荐,这里我们不事先对电影的内容提取特征值,相反,我们对用户的喜好提取特征值。
如:用户对爱情电影的喜好为5,对动作电影的喜好为1。那么大量搜集这些信息后就可以结合用户给不同电影的评分,得到电影的内容特征值。
我们可以看出,前面是通过电影内容特征估计用户喜好特征,后面是通过用户喜好特征来估计电影内容特征,这两种方法可以结合起来:
步骤
向量化实现
将用户对各个电影的评分可以用矩阵表示。