大公司病大公司病07-12 10:48

异常检测之普通高斯算法和多元高斯算法学习总结

普通高斯算法:

特点:如果不主动去建立特征与特征之间的关系特征,则普通的高斯算法没有特征的关联性

实现方式简述:

1.取1000组非异常的对象,并归纳其n中特种

2.分别计算每种特种高斯公式函数里的

3.将第二部中计算出的带入下边的计算公式得出p(x)的表达式

4.另外取200组混有异常对象的数据带入p(x)表达式,确定阈值

当p(x)<时则预测为异常对象,否则为正常对象,对比预测值和真实值可调整阈值

5.如果调整阈值后仍无法较好的进行预测,则可尝试寻找新特征或者通过发现特征之间的关系生成组合特征例如x1跟x2是正相关则可生成新特征x3=x1/x2.

6.最终实现一个优秀的异常检测算法

额外注意:如果在第二部中发现某种特种的分布不太符合高斯分布则可以通过函数变换使其满足高斯分布 eg:

途中x1不满足高斯分布而log运算之后就符合了高斯分布,很多时候不进行高斯化也能进行异常检测

多元高斯算法:

简单来说就是在原来的传统高斯计算的基础上规约任意两两特征之间的相关性(可以简单的理解为某两种特种是不是同时比各自的均值大或者同时小,或者你大我小,即:乘积大于0是是同大同小【类似正比】,乘积小于0你大我小或者你小我大【类似反比】 在n*n的矩阵中每一项都予以体现了)

跟普通的相比

第二步计算:

第三步:将上部计算的带入下式确认的p(x)的表达式

第四步:

另外取200组混有异常对象的数据带入p(x)表达式,确定阈值

当p(x)<时则预测为异常对象,否则为正常对象,对比预测值和真实值可调整阈值

多元高斯分布模型与原高斯分布模型之间的关系:

原来的高斯分布模型是多元高斯分布模型的一个子集,从上面的三个例子1,2,3可以看出,这三个例子建立的多元高斯模型就是原来的高斯分布模型,也就是说只要多元高斯分布模型的协方差矩阵非对角线上的元素为0(即分布符合关于x轴以及y轴平行的直线对称——轴对齐),则多元高斯模型与原来的高斯分布模型是一致的。
下面我们来比较一下原来的高斯分布模型与多元高斯分布模型:
1. 原高斯分布模型不能捕捉特征之间的相关性,但可以通过将特征组合的方式实现;多元高斯分布模型能够自动的捕获特征之间的相关性
2. 原高斯分布模型计算代价小,能够适应于小规模和大规模的特征(例如n=10000);而多元高斯分布模型由于在计算的过程中需要计算协方差矩阵的逆,当特征的数目很大时是非常耗时的,所以计算代价很高,不适应大规模的特征。
3. 对于多元高斯分布模型,需要有样本的数量m大于特征的数量n,否则协方差矩阵不可逆,通常需要m>10n,另外特征的冗余也会导致协方差矩阵不可逆;而原来的高斯分布模型在m很小的情况下同样适用。
下面我们来讨论一下协方差矩阵不可逆的情况以及解决的方法:
协方差矩阵不可逆也就是协方差矩阵是奇异矩阵,通常有两种情况产生:
1. 没有满足m>n。
2. 有多余的特征,也就是说可能两个特征是相同的或者有关联的(x1=kx2或者x1=x2+x3)
解决方法:
对于1的情况,我们可以增加样本的数量;对于2的情况,我们应该找到相关的特征,去除多余的特征。

可参考文档:http://nos.netease.com/edu-lesson-reference/41810a5e-183e-4415-94ec-54cafffdefcc.pdf?Signature=xgokgCtBKe1d81mGlwDcAtVbWasrva7WRqVGYnD3jR0%3D&Expires=1545723078&NOSAccessKeyId=7ba71f968e4340f1ab476ecb300190fa&download=Lecture15.pdf

程序之家二维码

000
评论