本文主要是介绍异常检测——孤立森林,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
异常检测——孤立森林
- 基础
- 思想
- 算法
- 训练阶段
- 评估阶段
- 参考
基础
1)异常数据只占少量;(2)异常数据特征值和正常数据差别很大。
思想
基于随机森林思想,但是更为简单
假设数据集有N条数据,构建一颗iTree时,从N条数据中均匀抽样(一般是无放回抽样)出ψ个样本出来,作为这颗树的训练样本。在样本中,随机选一个特征,并在这个特征的所有值范围内(最小值与最大值之间)随机选一个值,对样本进行二叉划分,将样本中小于该值的划分到节点的左边,大于等于该值的划分到节点的右边。由此得到一个分裂条件和左、右两边的数据集,然后分别在左右两边的数据集上重复上面的过程,直到数据集只有一条记录或者达到了树的限定高度。
图1 iForest构建iTree示例,异常数据点(17,17)通常离根节点很近
由于异常数据较小且特征值和正常数据差别很大。因此,构建iTree的时候,异常数据离根更近,而正常数据离根更远。一棵iTree的结果往往不可信,iForest算法通过多次抽取样本,构建多棵二叉树。最后整合所有树的结果,并取平均深度作为最终的输出深度,由此计算数据点的异常分值。
算法
训练阶段
在训练阶段,iTree的建立是通过对训练集的递归分隔来建立的,直到所有的样本被孤立,或者树达到了指定的高度。树的高度限制ll与子样本数量ψψ的关系为l=ceiling(log2(ψ))l=ceiling(log2(ψ)),它近似等于树的平均高度。树只生长到平均高度,而不继续生长的原因是,我们只关心路径长度较小的那些点,它们更有可能是异常点,而并不关系路径很长的正常点。详细的训练过程如算法1和算法2所示。
评估阶段
参考
Isolation Forest原理总结
孤立森林(Isolation Forest)
孤立森林(Isolation Forest)算法简介
这篇关于异常检测——孤立森林的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!