3.7 实验设计与结果分析
3.7.1 实验数据集
本实验共采用三种数据集来验证算法的有效性,包括两种人工数据集,即SEA模拟数据集[87]和移动超平面数据集(Hyperplane)[88],以及一种真实数据集—KDD Cup99网络入侵数据集[89]。
1.人工数据集
(1)2001年,Street提出了著名的SEA模拟数据集,其数据形式为:空间表现形式为三维空间的随机点,所有属性的取值范围是0~10,f1和f2是两个仅有的相关属性。该数据集共包括4个概念,发生3次概念漂移。数据集的概念方程为,其中θ为概念漂移划分阈值,有4个不同的取值,分别为9、8、7、9.5,可以用来表示数据的4种概念。本实验选择SEA模拟数据集的大小为150k,数据集中有10%的噪声数据。实验中,把100k数据划分为训练集,剩余的作为测试集。
(2)移动超平面数据集(Hyperplane)是一个常用来模拟概念漂移数据流的数据集。在d维空间上,一个移动超平面定义为,把满足不等式的点标记为正实例,把满足不等式的点标记为负实例。其中,实例从中随机产生,ai为权重,其取值是[0,1]范围内的随机数,同时有。在本实验中分别产生300k的包含5%噪声的数据和300k不包括噪声的数据,其中,平均每5k数据发生一次概念漂移。
2.真实数据集
KDD Cup99网络入侵数据集原是用于对网络入侵检测系统进行性能评估的数据集,也是常用于数据流学习的数据集。该数据集中有41维属性、24种类别标签,包含一系列TCP访问记录。
3.7.2 实验结果与分析
本节将给出具体的实验结果来验证本章所提算法的效果,并对结果进行性能分析。具体将从分类精度、概念漂移检测、抗噪性三个方面进行验证。在分类精度方面,把本章所提算法TDD-ISVM与其他基于增量支持向量机的两种算法IDSCBUC、IDSCBES进行对比,其中,IDSCBUC是较新的基于增量支持向量机的算法模型,IDSCBES是传统的基于错误样本的增量支持向量机算法模型;另外,比较TDD-ISVM算法与IBPNN-CDCA算法、VFDTC算法在三种数据集上的精度,其中,IBPNN-CDCA算法为增量式BP神经网络的算法,VFDTC算法为传统的基于实例选择构造的算法。前面算法的对比,是在增量支持向量机基础上的对比;后面算法的对比,是与其他模型的比较,且都选择了一种时间较近的方法和一种传统的方法,在实验对比方面比较有说服力。在概念漂移检测方面,比较TDD-ISVM、IBPNN-CDCA和VFDTC三种算法对概念漂移检测的效果。在抗噪性方面,利用含噪声和不含噪声的两种移动超平面数据集(Hyperplane)来检测算法的抗噪性。
1)分类精度方面
该实验选择150k不包含噪声的移动超平面数据集作为训练集和测试集,在该数据集中,平均每5k数据发生一次概念漂移,分别验证TDD-ISVM、IDSCBUC和IDSCBES这三种算法的分类精度。
从图3.2所示的无噪声移动超平面数据集三种算法的分类精度可以观察到,TDD-ISVM算法在分类精度方面明显高于另外两种算法,并且,在概念漂移比较严重的数据窗口上的分类精度并未大幅减小,具有稳定性。有两个原因:其一是在对数据流进行分类时,本章提出的TDD-ISVM算法充分考虑了数据属性和分类性能的变化,从两个方面对数据流进行概念漂移检测,使得在增量学习时能够及时而准确地更新分类器,使分类器具有较高的分类精度和泛化能力,保证了其稳定性;其二是在增量学习的过程中,TDD-ISVM算法首先利用K-means聚类的结果,把不能正确分类的实例作为增量与当前支持向量集SV结合,从而更新分类器,增强了分类器的分类性能。
图3.2 无噪声移动超平面数据集三种算法的分类精度
为了进一步验证该算法的分类精度,这里选择在SEA模拟数据集、包含5%噪声的移动超平面数据集、KDD Cup99网络入侵数据集上,分别对TDD-ISVM、IBPNN-CDCA和VFDTC三种算法进行验证。
表3.1所示为三种增量学习算法在三种数据集上的分类精度,从表中的数据可以看出,在三种数据集上,算法TDD-ISVM的分类精度相对较高。在SEA模拟数据集上,IBPNN-CDCA算法的分类精度最低,TDD-ISVM算法的分类精度最高,这是因为SEA模拟数据集是一种具有突变性质的概念漂移的数据集。由于基于BP神经网络的IBPNN-CDCA算法的网络结构没有发生变化,因此其对突变式新增概念漂移不能很好地识别;而TDD-ISVM算法采用K-means聚类的方式可以扩展类别标签,提高对新概念漂移的识别能力。在移动超平面数据集(Hyperplane)上,由于该数据集包含一定的噪声数据和概念漂移,因此IBPNN-CDCA算法和VFDTC算法的效果相仿,精度较低,而算法TDD-ISVM在一定程度上能够区别噪声数据,具有一定的抗噪性,其分类精度较高。三种增量学习算法在KDD Cup99数据集上的分类效果相当。
表3.1 三种增量学习算法在三种数据集上的分类精度
2)概念漂移检测方面
不同的算法对概念漂移的检测能力不同,下面分别验证TDD-ISVM、IBPNN-CDCA和VFDTC这三种算法在概念漂移检测方面的差别。
表3.2所示为TDD-ISVM、IBPNN-CDCA和VFDTC算法在三种数据集上的概念漂移检测情况。从表3.2可以看出,无论是在哪种数据集上,算法TDD-ISVM的概念漂移检测次数都是最多的,尤其在移动超平面数据集Hyperplane上,算法TDD-ISVM的概念漂移检测次数甚至超过IBPNN-CDCA算法和VFDTC算法的检测次数之和,这是因为算法TDD-ISVM采用的是基于数据属性和分类性能的二重概念漂移检测机制,检测要求更严格。而误报次数的对比同样说明了这个问题。在移动超平面数据集Hyperplane中,不仅有概念漂移,而且有噪声数据,而TDD-ISVM算法在利用K-means聚类进行概念漂移检测时,若噪声数据量较大,则其容易把一部分噪声数据当成概念漂移现象,进而向系统报告检测到概念漂移。通过较多的检测次数和较多的误报次数,可以尽可能地把所有概念漂移均检测出来。从表3.2可以看出,在三种算法中,TDD-ISVM算法的漏报次数最少。检测次数的增多势必增大模型的复杂度,使时间效率降低,而本实验是在Spark集群上进行的,基于内存式计算的Spark平台可以有效地解决时间效率问题。
表3.2 TDD-ISVM、IBPNN-CDCA和VFDTC算法在三种数据集上的概念漂移检测情况
3)抗噪性方面
噪声数据是对概念漂移检测的一大干扰,直接影响分类精度的高低。下面在包含5%噪声数据的Hyperplane和不包含噪声数据的Hyperplane两种数据集上,对TDD-ISVM、IBPNN-CDCA和VFDTC这三种算法进行分类精度的对比,观察噪声数据对各算法的影响。
图3.3、图3.4和图3.5所示为TDD-ISVM、IBPNN-CDCA和VFDTC三种算法分别在有噪声数据与无噪声数据的Hyperplane数据集上的分类精度对比。对比三幅图可以发现,同样的两种Hyperplane数据集,不同的算法不仅在分类精度上存在差异,而且在应对数据集中的噪声问题上的能力不同。图3.3中,TDD-ISVM算法在有噪声和无噪声的Hyperplane数据集上的分类精度都较高,并且,噪声数据对分类精度的影响不大,说明TDD-ISVM算法有一定的抗噪性。而图3.4中的IBPNN-CDCA算法和图3.5中的VFDTC算法在有噪声的Hyperplane数据集上的分类精度明显低,且分类精度的波动幅度较大,说明它们的抗噪性不如TDD-ISVM算法。TDD-ISVM算法之所以具有抗噪性,是因为在进行概念漂移检测时,将检测到的特殊实例分别当成噪声数据和概念漂移数据加以区别,采用不同的方式解决。
图3.3 TDD-ISVM算法在两种Hyperplane数据集上的分类精度对比
图3.4 IBPNN-CDCA算法在两种Hyperplane数据集上的分类精度对比
图3.5 VFDTC算法在两种Hyperplane数据集上的分类精度对比