文章目录
15 异常检测(anomaly detection)
15-1 问题动机
1.比如给定一个数据集,这个数据集里的样本都是正常的,现在有一个新的样本点,我们需要判断这个样本点是不是正常的,这时候我们就需要对数据进行建模,得到模型P(X),并设定一个值ε,如果P(xtest)<ε,那这个新样本点就是异常的,否则就不是异常
2.实际应用有用户行为异常检测、飞机零部件检查等
15-2 高斯分布
1.对于高斯分布X~N(μ,σ2),它的曲线如下:
这里σ是标准差
2.高斯分布曲线下面围成的面积一定是1
3.对μ和σ的估计方法如下
有时候,σ的那个式子的分母还可以是m-1,其实分母取m还是m-1在实际应用中区别不大
15-3 算法
1.异常检测算法的步骤:
1)从一大堆特征值中选出你觉得有可能能帮助我们指出异常样本的特征值xi,一共选出n个
2)根据给定的数据,计算所有特征值的均值和方差:
μi=1/m
∑
j
=
1
m
x
i
(
j
)
\sum_{j=1}^m{x}^{(j)}_i
∑j=1mxi(j)
σi2=1/m
∑
j
=
1
m
(
x
i
(
j
)
−
μ
i
)
2
\sum_{j=1}^m({x}^{(j)}_i-μ_i)^2
∑j=1m(xi(j)−μi)2
3)给定新样本x,计算相应的概率,如果概率小于ε就是异常值,计算公式为:
P(X)=
∏
i
=
1
n
p
(
x
i
;
μ
i
,
σ
2
)
\prod_{i=1}^np(xi;μi,σ^2)
∏i=1np(xi;μi,σ2)
15-4 开发和评估异常检测系统
1.比如说有一个飞机零件制造厂造了10000个好的部件,然后造了20个坏的部件。我们可以把这10000+20个数据按6000,2000+10,2000+10分成训练集,验证集和测试集。我们用训练集的数据去拟合模型,通过真阳性、假阳性等指标判断这个模型是否合适,从而进一步判断这个模型用到的特征值是否符合要求
15-5 异常检测VS监督学习
1.使用异常检测和监督学习的条件
总结起来就是:
异常检测 | 监督学习 |
---|---|
正样本(也就是异常样本)少得可怜,负样本却多的很 | 有大量的正样本和负样本 |
异常点有很多类型,未来可能出现的异常点和已知的大相径庭 | 正样本多到足以涵盖未来可能出现的正样本 |
2.异常检测和监督学习的应用:
15-6 选择要使用的功能
1.首先是对特征进行变换,使该特征的分布更符合正太分布
2.然后就是选择特征值,选择特征值的方法和15-5相同,这里不再赘述
15-7 多变量高斯分布
1.有时候异常检测并不能检测出异常点,比如下面这种情况中的那个绿点:
2.在多元高斯分布中,对n维列向量x来说,我们不要为P(x1),P(x2)分别建模,我们需要为x整体建模P(x),公式为:
3.多变量高斯分布的例子
15-8 使用多变量的高斯分布的异常检测
1.其实单变量高斯分布也是一种特殊的多变量高斯分布,它特殊就特殊在它是协方差矩阵是对角阵的多变量高斯分布
2.多变量高斯分布在捕捉特征间的关系方面要优秀一些。用电脑运行故障来举个例子,比如有一种故障是CPU运行时间和网络吞吐量组合异常,这时候如果用单变量高斯分布,就需要人为创造第三个变量x3=f(x1,x2)
3.单变量与多变量的区别:
有一点需要注意的是,如果样本数量m>=特征数量n的10倍,就可以选择多变量了,因为这时候就说明数据量多到足以训练这n个特征值