孤立森林(Iforest) 异常检测方法
概述
Iforest算法常用于异常检测。孤立森林算法由08年首次提出,基于孤立森林的异常检测算法11年在tkdd问世,这两篇论文的一作是小哥Fei Tony Liu和Kai Ming Ting教授,周志华是第二作者(多篇论文有合作,猜测长期合作关系)。这时Fei Tony Liu还是蒙纳士大学(Monash University )一个博士生,目前在蒙纳士大学兼职任职,主要任职于在澳大利亚印度尼西亚经济治理合作组织(数据分析顾问)。哈哈哈哈,这些是题外话
言归正传,Iforest算法自问世以来,颇受好评,从众多异常检测算法中脱颖而出的原因在于其“又快又好”的特性,接下来简单介绍其算法原理。
算法原理
孤立森林,由多棵孤立树组成,一棵孤立树的目标是将一个样本与其余样本分离。孤立树本质是一棵二叉树,给定 n n n个 d d d维样本的数据 X X X,迭代地随机选择一个特征 q q q和该特征范围内的一个分割值 p p p,通过判断 q < p q<p q<p将 X X X二分为左孩子节点和右孩子节点。直到满足一下条件之一终止迭代:
- ∣ X ∣ |X| ∣X∣=1
- 树的高度达到限制高度
- 所有的 ∣ X ∣ |X| ∣X∣具有相同的值
这样一棵二叉树,假设所有样本都是可孤立的[无样本具有相同的值],需要 n n n个叶子节点, n − 1 n-1 n−1个内部节点,共 2 n − 1 2n-1 2n−