孤⽴森林(IsolationForest)
iForest (Isolation Forest)孤⽴森林 是⼀个基于Enmble的快速异常检测⽅法,具有线性时间复杂度和⾼精准度,是符合⼤数据处理要求的state-of-the-art算法(详见新版教材“Outlier Analysis”第5和第6章 PDF)。其可以⽤于⽹络安全中的攻击检测,⾦融交易欺诈检测,疾病侦测,和噪声数据过滤等。本⽂将通俗解释实现⽅法和⽇常运⽤,即⽆需深厚的数学功底。
certainty⾸先,我们先了解下该算法的动机。⽬前学术界对异常(anomaly detection)的定义有很多种,iForest 适⽤与连续数据(Continuous numerical data)的异常检测,将异常定义为“容易被孤⽴的离群点 (more likely to be parated)”——可以理解为分布稀疏且离密度⾼的群体较远的点。⽤统计学来解释,在数据空间⾥⾯,分布稀疏的区域表⽰数据发⽣在此区域的概率很低,因⽽可以认为落在这些区域⾥的数据是异常的。⼀个例⼦如下(来源):
iForest属于Non-parametric和unsupervid的⽅法,即不⽤定义数学模型也不需要有标记的训练。对于如何查找哪些点是否容易被孤⽴(isolated),iForest使⽤了⼀套⾮常⾼效的策略。假设我们⽤⼀个随机超平⾯来切割(split)数据空间(data space), 切⼀次可以⽣成两个⼦空间(想象拿⼑切蛋糕⼀分为⼆)。之后我们再继续⽤⼀个随机超平⾯来切割每个⼦空间,循环下去,直到每⼦空间⾥⾯只有⼀个数据点为⽌。直观上来讲,我们可以发现那些密度很⾼的簇是可以被切很多次才会停⽌切割,但是那些密
空间站的意思em是什么意思度很低的点很容易很早的就停到⼀个⼦空间了。上图⾥⾯⿊⾊的点就很容易被切⼏次就停到⼀个⼦空间,⽽⽩⾊点聚集的地⽅可以切很多次才停⽌。
怎么来切这个数据空间是iForest的设计核⼼思想,本⽂仅介绍最基本的⽅法。由于切割是随机的,所以需要⽤enmble的⽅法来得到⼀个收敛值(蒙特卡洛⽅法),即反复从头开始切,然后平均每次切的结果。iForest 由t个iTree(Isolation Tree)孤⽴树 组成,每个iTree是⼀个⼆叉树结构,其实现步骤如下:
1. 从训练数据中随机选择Ψ个点样本点作为subsample,放⼊树的根节点。
英文祝福2. 随机指定⼀个维度(attribute),在当前节点数据中随机产⽣⼀个切割点p——切割点产⽣于当前节点数据中指定维度的最⼤值和最⼩值之间。
3. 以此切割点⽣成了⼀个超平⾯,然后将当前节点数据空间划分为2个⼦空间:把指定维度⾥⼩于p的数据放在当前节点的左孩⼦,把⼤于等于p的数据放在当前节点的右孩⼦。
4. 在孩⼦节点中递归步骤2和3,不断构造新的孩⼦节点,直到 孩⼦节点中只有⼀个数据(⽆法再继续切割) 或 孩⼦节点已到达限定⾼度。
获得t个iTree之后,iForest 训练就结束,然后我们可以⽤⽣成的iForest来评估测试数据了。对于⼀个
训练数据x,我们令其遍历每⼀棵iTree,然后计算x最终落在每个树第⼏层(x在树的⾼度)。然后我们可以得出x在每棵树的⾼度平均值,即 the average path length over t iTrees。*值得注意的是,如果x落在⼀个节点中含多个训练数据,可以使⽤⼀个公式来修正x的⾼度计算,详细公式推导见原论⽂。获得每个测试数据的average path length后,我们可以设置⼀个阈值(边界值),average path length 低于此阈值的测试数据即为异常。也就是说 “iForest identifies anomalies as instances having the shortest average path lengths in a datat ”(异常在这些树中只有很短的平均⾼度). *值得注意的是,论⽂中对树的⾼度做了归⼀化,并得出⼀个0到1的数值,即越短的⾼度越接近1(异常的可能性越⾼)。
4个测试样本遍历⼀棵iTree的例⼦如下:
dison可以看到d最有可能是异常,因为其最早就被孤⽴(isolated)了。
个⼈见解:
1. iForest具有线性时间复杂度。因为是enmble的⽅法,所以可以⽤在含有海量数据的数据集上⾯。通常树的数量越多,算法越稳定。由于每棵树都是互相独⽴⽣成的,因此可以部署在⼤规模分布式系统上来加速运算。
2. iForest不适⽤于特别⾼维的数据。由于每次切数据空间都是随机选取⼀个维度,建完树后仍然有⼤量的维度信息没有被使⽤,导致算法可靠性降低。⾼维空间还可能存在⼤量噪⾳维度或⽆关维度(irrelevant attributes),影响树的构建。对这类数据,建议使⽤⼦空间异常检测(Subspace Anomaly Detection)技术。此外,切割平⾯默认是axis-parallel的,也可以随机⽣成各种⾓度的切割平⾯,详见“On Detecting Clustered Anomalies Using SCiForest”。
naughty怎么读>mpa报名3. iForest仅对Global Anomaly 敏感,即全局稀疏点敏感,不擅长处理局部的相对稀疏点 (Local Anomaly)。⽬前已有改进⽅法发表于PAKDD,详见“Improving iForest with Relative Mass”。
4. iForest推动了重⼼估计(Mass Estimation)理论发展,⽬前在分类聚类和异常检测中都取得显著效果,发表于各⼤顶级数据挖掘会议和期刊(如SIGKDD,ICDM,ECML)。
参考⽂献:
iForest 是刘飞博⼠(Fei Tony Liu)在莫纳什⼤学就读期间由陈开明(Kai-Ming Ting)教授和周志华(Zhi-Hua Zhou)教授指导发表的。第⼀个版本是在2008年ICDM上,获得年度最佳论⽂,扩充版本发表与TKDD。
Liu, Fei Tony, Kai Ming Ting, and Zhi-Hua Zhou. "Isolation forest."Data Mining, 2008. ICDM'08. Eighth IEEE International Conference on. IEEE, 2008.
callings
Liu, Fei Tony, Kai Ming Ting, and Zhi-Hua Zhou. "Isolation-bad anomaly detection."ACM Transactions on Knowledge Discovery from Data (TKDD)6.1 (2012): 3.
braid论⽂下载:
谢丽尔的生日源码下载: