目录
5 实验评估
本节给出了用于评估iForest的四组实验的详细结果。第一个实验中本文对比iForest和ORCA[3]、LOF[6]和Random Forests(RF)[12]。LOF是一个著名的基于密度的函数,选择RF是因为该算法也使用树集成。在第二个实验中,本文使用实验中最大的两个数据集来检验子采样大小的影响。实验结果提供了应该使用的子采样大小及其对检测性能的影响。第三个实验扩展iForest来解决高维数据;在构造树之前,通过对每个子样本应用简单的单变量检验缩减属性空间。本文旨在检验这种简单的机制是否能够提高iForest在高维空间中的检测性能。在许多情况下,异常数据难以获得,第四个实验检验训练过程中只有正常实例时iForest的性能。对于所有实验,报告实际CPU时间和曲线下面积(Area Under Curve, AUC)。它们在Linux集群(www.vpac.org)中以2.3GHz的单线程任务进行处理。
基准方法是ORCA——一个基于k近邻的且最新的异常检测方法,其中处理时间的最大需求来自k个最近邻的距离计算。使用样本随机化和一个简单的修剪规则,ORAC声称可以降低复杂度O(n2)到近似线性时间[3]。
在ORCA中,参数k决定最近邻的数量,增加k也会增加运行时间。除非特别说明,本文实验使用ORCA的默认设置k=5。参数N决定报告多少异常点。如果N小,ORCA快速地增加了运行截止时间,并剪枝更多的搜索,使运行时间更快。然而,设置N低于异常点的数量是不合理的,因为AUC需要报告每个实例的异常分数。由于选择N对运行时间有影响且在训练阶段不能得知异常点的数量,除非特别说明,本文将使用一个合理的值N=n/8。使用ORCA的原始默认值(k=5, N=30),所有大于1000个点的数据集报告AUC接近0.5,这相当于随机选择点作为异常。在运行时间方面,本文给出总运行时间和测试时间,但忽略ORCA的预处理时间“dprep”。
对于LOF,本文使用一个普遍使用的设置k=10。至于RF,本文使用t=100且其它参数保持默认。由于RF是一个监督学习算法,本文遵循[12]中的具体说明来生成数据作为替换类。备选类通过在所有属性的最大值和最小值之间均匀抽样随机点来生成。邻近度度量是在构建决策树之后计算的,异常是与数据中所有其他实例的邻近度普遍都很小的实例。
本文使用11个自然数据集加上一个合成数据集来评估。选择这些数据集是因为他们包含已知的异常类作为真实值,且这些数据集在文献中用于评估相似设置下的异常检测器。它们包括:[14]中使用的KDD CUP 99网络入侵数据的两个最大的子集(Http和Smtp), Annthyroid, Arrhythmia, Wisconsin Breast Cancer (Breastw), Forest Cover Type (ForestCover), Ionosphere, Pima, Satellite, Shuttle [2], Mammography1 and Mulcross [10]。由于本文只研究连续值的属性,所有名义属性和二进制属性被删除。合成数据生成器Mulcross生成一个可选择的异常簇数量的多变量正态分布。在本文实验中,Mulcross的基本设置如下:污染率=10%(异常点数量比总点数),距离因子=2(正常簇和异常簇中心的距离),异常簇数量=2。图4展示了一个Mulcross数据的例子。表2按数据量大小降序排