孤立森林 Isolation Forest 论文翻译(下)

目录

5 实验评估

5.1 和ORCA、LOF、RF对比

5.2 效率分析

5.3高维数据

5.4 仅用正常实例训练

6 讨论

7 总结


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按数据量大小降序排序提供了所有数据集的属性和异常类的信息。

       假设异常标签在训练阶段不可获得。异常标签仅在评估阶段可以使用,用来计算性能测量AUC。

表2. 数据集属性表,其中n是实例数量,d是维度数,括弧内的百分数表示异常点的百分比。

5.1 和ORCA、LOF、RF对比

       该实验的目的是在AUC和处理时间方面对比iForest和ORCA、LOF、RF。表3给出了所有方法的AUC分数和实际运行时间。从表中得出iForest和ORCA对比表现优越。实验表明基于模型的方法iForest在AUC和处理时间上优于基于距离的方法ORCA。特别地,iForest在所有大于一千个点的数据集上更准确且更快。

       注意iForest和ORCA在执行时间上差异极大,特别是在大数据集上。这是由于iForest不需要计算成对的距离;尽管 ORCA 仅报告 n/8个异常点,而 iForest 对所有  n  个点进行排序,但这种差异依然存在。

       iForest在八个数据集中的七个数据集上优于LOF,且iForest在所有数据集上的AUC高于RF。在处理时间方面,iForest在所有数据集上优于ORCA和RF。

       iForest的性能在t的一个大范围内保持稳定。使用两个高维数据集,图5表明AUC在一个小的t收敛。由于增加t同样增加运行时间,AUC的早期收敛表明,如果对t进行调优,iForest的执行时间可以进一步减少。

       对于Http和Mulcross数据集,由于异常簇大小较大且异常簇有和正常簇相同甚至更高的密度(i.e., masking effect),ORCA在这些数据集上的结果低于平均水平。本文同样用更高的k值(k=150)检验ORCA在这些数据集上的表现,然而检测结果相似。这突出了ORCA和其他类似的基于k近邻的方法中的一个有问题的假设:它们智能检测大小小于k的低密度异常簇。增大k值可以解决问题,但在高容量设置时,由于处理时间的增加,并不实用。

表3. iForest表现优于ORCA,特别是对n>1000的大数据集。加粗的AUC性能最好。iForest在n>1000的数据集上显著快于ORCA。本文没有LOF和RF的完整结果因为:(1)LOF计算复杂度高,不能在合理时间内完成一些量大的数据集;(2)RF有较高的内存需求在无监督学习设置中,需要(2n) 2的系统内存来产生邻近矩阵。

图5. 检测性能AUC(y轴)在一个小的t(x轴)收敛。

5.2 效率分析

       本实验研究iForest的效率和子采样大小ψ之间的关系。使用两个最大的数据集Http和ForestCover,本文检验了子采样大小在检测准确率和处理时间上的影响。在本实验中调整ψ=2,4,8,16,…,32768。

       实验结果见图6。当ψ很小时,AUC收敛速度很快。对于Http数据集ψ=128、对于ForestCover数据集ψ=512时AUC接近最优,且它们只是原始数据的一小部分(Http的0.00045,ForestCover的0.0018)。这个ψ设置后,AUC的变化最小:分别是±0.0014和±0.023。同样值得注意的是ψ从4增加到8192时处理时间增加地很缓慢。iForest在这个范围内保持着接近最优的检测性能。总之,一个小的ψ可以提供高AUC和低处理时间,没有必要进一步增加ψ。

图6. 一个小的子采样大小能提供高AUC(左侧y轴,实线)和低处理时间(右侧y轴,虚线,以秒记)。子采样大小(x轴,对数刻度)范围ψ=2,4,8,16,…,32768。

5.3高维数据

       异常检测的一个重要挑战是高维数据。对于基于距离的方法,每个点在高维空间中相等地稀疏——使距离成为一个无效的方法。iForest也受到相同的“维度诅咒”。

       在本实验中,研究高维数据集中有大量不相关属性或背景噪音的特殊情景,并且研究表明iForest在处理时间方面有显著优势。本文使用Mammography和Annthyroid数据集模拟高维数据。对于每个数据集,加入506个均匀分布、值在0到1之间的随机属性来模拟背景噪声。因此,每个数据集共有512个属性。在构建每棵树之前,我们使用一种简单的统计检验——峰度(Kurtosis),来从子样本中选择属性子空间。Kurtosis测量单变量分布的“峰值”,对于异常点的存在敏感因此是异常检测的一个好的属性选择器。在Kurtosis提供每个属性的排名后,根据这个等级选择一个属性的子空间来构建每棵树。实验结果表明,当子空间大小接近原始属性个数时,检测性能得到了提高。也有一些其他的属性选择器可以选择,例如Grubb’s test。然而,在本节中,本文只研究展示iForest使用属性选择器来降低异常检测任务维度的能力。

       图7显示a)整个子空间大小范围的处理时间都小于30秒且b) 当子空间大小与原始属性个数相等时,AUC达到峰值,与ORCA仅使用原始属性得到的结果非常接近。当应用ORCA到两个高维数据集上时,得到的AUC接近0.5,处理时间超过100秒。这表明两个数据集都具有挑战性,然而iForest能够通过简单附加Kurtosis test来提高检测性能。其他方法也可以应用类似的属性约简技术来提高高维数据上的检测精度,而iForest的优点是即使在高维数据上也具有较低的处理时间。

图7. iForest使用Kurtosis test来选择属性从而得到了高维数据上的良好结果。增加了506个不相关的属性。当子空间大小(x轴)接近原始属性数量时,AUC(左y轴,实线)会提高,随着子空间大小的增加,处理时间(右y轴,虚线,以秒计)略有增加。使用原始数据训练的iForest具有稍好的AUC(如顶部虚线所示)。

5.4 仅用正常实例训练

       “当训练集仅含正常实例时,iForest有效吗?”为了回答这个问题,本文使用实验中两个最大的数据集做了一个简单的实验。首先将每个数据集随机分成两部分,一部分用于训练一部分用于测试,所以AUC是从未知的数据中得到的。重复这个过程10次来得到平均AUC。

       当用异常点和正常点训练时,Http得到AUC=0.9997;然而,当仅用正常点训练时AUC降至0.9919。对于ForestCover,AUC从0.8817降至0.8802。虽然AUC略有降低,但我们发现使用更大的子采样大小可以帮助恢复检测性能。当我们将Http的ψ = 256和ForestCover的ψ = 8,192和train的ψ = 512的子采样增大时,Http的AUC达到0.9997,ForestCover达到0.884。

6 讨论

       使用小的子样本大小意味着可以轻松地使用最小的内存占用来托管在线异常检测系统。使用ψ = 256,结点数最大为511。令一个结点的最大大小为b字节,t为树的数量。因此,一个用于检测异常的工作模型估计小于511tb字节,这在现代计算设备中是微不足道的。

       iForest在训练阶段的时间复杂度为O(tψ log ψ),评估阶段为O(ntlog ψ)。对于Http数据集,当n ψ = 256, t = 100且测试283,748个实例时,总处理时间仅为7.6秒。增大子采样大小64倍到ψ = 16384,处理时间仅增加136倍,为11.9秒。结果表明,iForest具有较低的计算复杂度常数。

       iForest低内存需求的快速执行是构建部分模型的直接结果,与给定的训练集相比,只需要非常小的样本量。这种能力在异常检测领域是无与伦比的。

7 总结

       本文提出了一种完全不同的基于模型的方法,该方法侧重于异常隔离,而不是正常的实例的轮廓构建。隔离的概念还没有在当前研究中被讨论,且结果表明使用隔离能够高效地检测异常。利用异常点“少且不同”的本质,iTree将异常点隔离在与正常点相比更靠近树的根结点的地方。这种特性使得iForest能够构建部分模型(和特征轮廓构建的全模型相反)并且使用训练数据的一小部分来构建有效的模型。结果表明,iForest有低常数项的线性时间复杂度和低内存需求,对处理数据量大的数据集十分理想。

       本文的实验结果表明,iForest的性能在AUC和执行时间上明显优于接近线性时间复杂度的基于距离的方法ORCA、LOF和RF,特别是在大数据集上。另外,iForest在小集成大小就能快速收敛,这使得它能够高效地检测异常。

       对于含有大量不相关属性的高维数据问题,iForest可以和一个附加的属性选择器得到高检测性能;然而基于距离的方法要么检测性能差要么需要明显更多的时间。本文还证明iForest甚至在训练集中没有异常点时同样表现较好。本质上,孤立森林是一种准确且高效的异常检测器,特别是针对大数据集。其解决大数据集的能力非常适合现实生活中的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值