异常检测——孤立森林

异常检测——孤立森林

  • 基础
  • 思想
  • 算法
    • 训练阶段
    • 评估阶段
  • 参考

基础

1)异常数据只占少量;(2)异常数据特征值和正常数据差别很大。

思想

基于随机森林思想,但是更为简单
假设数据集有N条数据,构建一颗iTree时,从N条数据中均匀抽样(一般是无放回抽样)出ψ个样本出来,作为这颗树的训练样本。在样本中,随机选一个特征,并在这个特征的所有值范围内(最小值与最大值之间)随机选一个值,对样本进行二叉划分,将样本中小于该值的划分到节点的左边,大于等于该值的划分到节点的右边。由此得到一个分裂条件和左、右两边的数据集,然后分别在左右两边的数据集上重复上面的过程,直到数据集只有一条记录或者达到了树的限定高度。

异常检测——孤立森林_第1张图片
图1 iForest构建iTree示例,异常数据点(17,17)通常离根节点很近

由于异常数据较小且特征值和正常数据差别很大。因此,构建iTree的时候,异常数据离根更近,而正常数据离根更远。一棵iTree的结果往往不可信,iForest算法通过多次抽取样本,构建多棵二叉树。最后整合所有树的结果,并取平均深度作为最终的输出深度,由此计算数据点的异常分值。

算法

训练阶段

在训练阶段,iTree的建立是通过对训练集的递归分隔来建立的,直到所有的样本被孤立,或者树达到了指定的高度。树的高度限制ll与子样本数量ψψ的关系为l=ceiling(log2(ψ))l=ceiling(log2⁡(ψ)),它近似等于树的平均高度。树只生长到平均高度,而不继续生长的原因是,我们只关心路径长度较小的那些点,它们更有可能是异常点,而并不关系路径很长的正常点。详细的训练过程如算法1和算法2所示。
异常检测——孤立森林_第2张图片
异常检测——孤立森林_第3张图片

评估阶段

异常检测——孤立森林_第4张图片

参考

Isolation Forest原理总结
孤立森林(Isolation Forest)
孤立森林(Isolation Forest)算法简介

你可能感兴趣的:(异常检测)