【数据异常】异常检测方法

1.在线流数据异常检测(iforest隔离森林算法)

该方法的主要思想是,通过随机选定样本属性及其值将样本空间进行随机划分,分割的过程可以看成类似于随机森林中树建立的过程,对于新的样本,基于建立的隔离树求其分割深度,深度值越小,表明越容易被隔离,也就意味着异常的概率越大;反之则为正常样本。该方法是基于异常数据“少且不同”的特征,来采用随机隔离的思想设计异常检查。

该方法的主要优点是,在构建初始模型时不需要任何实际的数据,从而能快速构建初始探测模型,它符合数据流的分布特性且在流数据异常检测问题上达到一定的精度。此方法不需要距离或者密度的计算且具有线性的时间复杂性,并且该方法采用集成学习策略,因此不需要花很多代价训练一个高精度模型。

 

1.1基于隔离的异常检测

初始情况下,根节点表示整个样本空间,当随机选择某一个属性并随机选取该属性的某一取值,基于该值将样本空间分割成两个子集,其中一个子集包含样本集中所有对应属性值小于划分属性值的样本,另外一个子集为样本集中剩余的样本组成的子集,分割所得的这两

个子集分别构成隔离树的左右两个子节点。上述过程递归进行下去,直至被分割节点仅包含指定个数的样本或者达到最大的分割次数。由于随机特性,仅仅建立这样一棵树并不能进行良好的异常判断,可以引入集成学习的方法,建立多棵树而构成集成隔离树。在异常检测时,对新的样本,计算其平均分割深度,基于深度值的大小判断其为异常可能性的高低。通常深度值越小,表示越容易被分离,也就意味着其为异常的概率越大。反之则为正常样本。

 

1.1.1 隔离树的构造

给定一个包含n个d维数据的样本集X={x1,x2,...xn},即xi=( , .... ),xi X,构建二叉隔离树只需要递归的随机选择分割属性q和对应的分割值P,将样本空间X进行划分即可。树构造的停止与决策树一样,达到一定的停止条件则停止,包括树的深度达到一定的预设的最大值;节点中只有一个样本;节点中所有的样本相同。

 

1.2集成学习理论

集成学习理论是一种计算智能的方法,原理类似于专家会诊,理论研究和实验都表明综合多个检测器的检测结果可以增加诊断的准确性,提高学习器的泛化能力,目前比较流行的集成学习器包括Bagging,Boosting。最后个体学习器结论的合成用的最多的是多数投票法。

 

1.3算法框架

(1)初始探测器构建

该过程采用传统IForest算法,基于历史数据构建隔离森林获得初始的异常检测器。

【数据异常】异常检测方法_第1张图片

其中,S(x,M)表示样本x的异常分,M为样本集规模,E(h(x))是森林的平均隔离深度,表示期望的隔离深度,该值可以通过计算每棵树的隔离深度,再计算整个集成的平均隔离深度来获得。 是样本x的针对森林中第i棵树的隔离深度,c ( M ) 是有M 个样本构成的数据集的隔离树深度h(x) 的期望值。

(2)在线异常检测

将异常检测器应用于流数据,即对每个到达的数据,判断其异常状况,并基于Possion(1)分布,选择该样本是否作为更新样本添加到缓冲区。当新数据样本到达时,对每个学习器的个体进行更新学习。

(3)计算异常率

根据预定的应用规模计算异常率。如果超过了预定义的阈值或样本缓冲区已满,则对检测器进行更新。

 

  2.基于统计学方法

基于距离的方法包括箱型图算法(BPrule),这个算法比较简单,比较适用于单维异常查找的情况,异常值被定义为大于QU+1.5IQR或小于QL?1.5IQR的值。QU是上四分位数,表示全部观察值中有1/4的数据比他大,QL是下四分位数,表示全部数据中有1/4的数据比他小。IQR是四分位间距,是QU和QL的差,其间包含了观察值的一半。

 

  3.基于近邻性的异常检测方法

基于距离的方法包括(Index-Based的算法、Nested-Loop算法、Cell-Based算法)。基于密度的算法包括(LOF算法、LSC算法),可检测出局部异常点。基于近邻性的异常检测方法仅适用于维度较小的,且数据规模不会很大的数据集。

 

  4.基于模型的异常检测算法

基于模型的异常检测算法,我所了解的包括基于高斯分布的异常检测(主要适用于符合高斯分布的数据),具体可参见博客http://blog.csdn.net/dingchenxixi/article/details/51689149,python中可以关注Sklearn中的EllipticEnvelope。另外其他的一些分类模型也可以,通过一些正确的样本构建分类模型(例如one-class SVM),对于新数据不符合该分类器特征的数据认为是异常点。

 

  5.基于聚类的方法

关于聚类的方法,我之前的博客中有提及。另外聚类方法中还有Constaint-based clustering、Stream-based clustering (standardford)值得在欺诈中研究。

你可能感兴趣的:(Big,Data,Analysis,数据科学)