郭虎升,高淑花,王文剑
(1.山西大学计算机与信息技术学院,太原 030006;2.计算智能与中文信息处理教育部重点实验室(山西大学),太原 030006)
大数据时代,动态数据不断在各大应用领域涌现,如交通数据、网页点击和股票预测等。与传统静态数据相比,这些数据具有高速、实时、多变以及不可预知等特点,故将这样的数据称之为流数据[1-2]。近年来,流数据挖掘受到了越来越多的关注,其目的是使学习模型能更准确地预测数据分布变化,提高在线学习模型的泛化性能[3-5]。在流数据中,数据分布的不稳定性和动态变化等特征会导致数据分布以及其中隐含的目标概念随着环境等因素的改变而发生变化,即概念漂移[6-7]。概念漂移是指在给定的输入特征下,输出的目标概念发生了改变。其中,概念可以理解为某一时刻所有样本的空间分布,要学习的概念或者函数被称为目标概念,可以用数据的联合概念分布P(x,y)表示,其中x表示d维特征向量,y表示相对应样本的标签。若当前时刻t发生了概念漂移,可以将其形式化表示为:∃x:Pt-1(x,y)≠Pt(x,y)。然而,在流数据挖掘中,由于概念漂移的存在,使得传统机器学习方法无法满足高实时泛化性能的需求。如在垃圾邮件过滤中,客户喜好变化会改变垃圾邮件的定义,垃圾邮件的范畴也可能会随时间而变化;在天气预报中,天气情况可能会随温度、压强和湿度等因素而改变。此时,需要搜集大量的实时数据并不断调整模型,才可能提高模型的泛化性能[8]。因此,在流数据挖掘中,提高概念漂移发生后在线学习模型的收敛性能具有重要意义。
概念漂移发生后,集成学习策略能够灵活更新基分类器,有效提高模型的泛化性能。因此,集成学习是解决概念漂移的有效途径,然而由于漂移刚发生时得到的新分布数据有限,集成模型中会保留较多携带旧分布数据信息的基分类器,大多数基分类器性能较差,不能达到“好而不同”的集成,导致集成模型泛化性能较差。为提高概念漂移流数据挖掘的性能,本文提出了一种基于串行交叉混合集成的概念漂移检测及收敛方法。在流数据处于平稳状态下,该方法通过构建串行基分类器进行集成,以提取代表数据整体分布的有效信息。概念漂移发生后,在漂移节点附近构建并行的交叉基分类器进行集成,提取代表最新分布数据的局部有效信息。
本文主要贡献包括:(1)通过串行基分类器和交叉基分类器的混合集成,该方法兼顾了流数据包含的整体分布信息,又强化了概念漂移发生时的重要局部信息。(2)在集成模型中增加了较多“好而不同”的基学习器,实现了漂移发生后在线集成学习模型的高效收敛,提升了模型泛化性能。在10个数据集上与5种对比方法进行比较,实验结果显示大部分数据集上本文方法的平均实时精度和累计精度均高于其他方法,能在概念漂移发生后具有较高的恢复性能,且相比于其他方法,本文方法的整体鲁棒性值最大,有效提高了模型的泛化性能。
目前,对于流数据挖掘中常存在的概念漂移问题,常见的处理策略主要包括基于实例选择的方法和基于集成学习的方法。基于实例选择的方法通常采用滑动窗口技术来实现,即通过使用一个或多个滑动窗口来存储数据,通过不断向前滑动窗口来判断是否发生概念漂移,选择最新的样本进行模型训练和更新,以保证当前窗口的数据能够服从最新分布。典型方法如:基于双窗口滑动的漂移检测方法[9-10],基于决策树算法调节分支节点模型方法[11],基于信息熵判定的自适应滑动窗口方法[12],基于霍夫丁不等式的概念漂移检测方法[13]以及自适应滑动窗口概念漂移检测方法[14]。这些方法通过引入概念漂移检测机制,在一定程度上提高了在线学习模型的实时性能,但滑动窗口大小的调节是一个困难的问题,这在一定程度上影响了模型性能。
基于集成学习的方法通过构建一系列弱分类器,使用一定的相关组合规则将这些弱分类器进行组合,通过投票或者加权集成方式得出非稳态环境下预测性能较好的强分类器。基于集成学习的方法又可以分为基于数据块的集成与在线集成。
基于数据块的集成将流数据划分成固定大小的数据块进行处理,最常见的方式是构建有限数量的基分类器,根据一定规则用最新数据块上创建的分类器替换集成分类器中表现性能较差的分类器,典型方法包括:基于传统流数据的集成分类方法[15],该方法在连续的数据块上构建基分类器,并且使用启发式替换策略组合成固定大小的集成。基于动态调整基分类器权重的方法[16-19],此类方法通过不断动态调整各个基分类器的权重来适应概念漂移。基于选择性集成的在线自适应深度神经网络方法[20],该方法通过浅层次特征与深层次特征进行结合组成自适应深度单元,根据流数据的变化情况,动态调整网络中的信息流。虽然基于数据块的集成分类方法在很大程度上能提高模型的整体预测性能,但在概念漂移发生后,较多过时的基分类器会降低模型的效果。
在线集成是对样本进行逐一处理的集成方法。典型方法包括:基于动态加权投票的概念漂移适应方法[21-22],此类方法根据对新样本的预测准确性初始化权重,并且根据全局预测和局部预测来更新权重,以此来动态更新基分类器。基于单样本增量模型方法[23],该方法首先初始化一组基分类器,根据每个时间戳到达的单个样本更新集成模型,并进行分类器的加权组合。基于混合标记策略的在线学习方法[24],该方法的集成分类器由固定基分类器和动态基分类器组成进行概念漂移的适应,以及对Online bagging方法[25-26]进行改进的Leveraging bagging方法[27]。与基于数据块的集成方法相比,在线集成能够有效提高模型的实时性能,但由于其需要对样本逐一处理,因此学习效率较低。
本文提出了一种基于串行交叉混合集成的概念漂移检测及收敛方法,和传统方法相比,该方法在概念漂移发生后,有效提取了最新分布的关键信息;通过交叉分类器和串行分类器的集成方式进行模型融合,在保证整体实时性能的同时加快了模型的收敛速度。
本文提出基于串行交叉混合集成的概念漂移检测及收敛方法,借助集成学习技术提高概念漂移发生后在线学习模型的性能。在平稳流数据环境下使用串行集成进行数据分布的整体信息提取。反之,在概念漂移发生后,使用交叉集成进行数据分布局部有效信息的提取,在保持数据整体分布有效信息的同时兼顾数据分布发生改变后的局部有效信息,提高了模型的泛化性和收敛性。SC_ensemble方法的整体框架图如图1所示。表1汇总了本文使用的符号及对应描述。
表1 本文使用的符号汇总表Table 1 Summary table of symbols used in this paper
图1 SC_ensemble方法整体框架图Fig.1 Overall framework of SC_ensemble algorithm
在流数据挖掘中,组合多个基分类器完成分类任务通常会比单个分类器得到更好的效果,这是由于串行生成的多个基分类器可以提取不同位点的数据信息,避免了流数据的局部微小波动带来的性能下降问题。对于串行的流数据集成学习过程,本文首先做以下约定:
(1)假定流数据{x1,…,xt,…},对数据单元设定阈值为w(即每个数据单元的样本容量),当样本数量达到阈值时,自动划分为下一个数据块,当前时刻的数据块记为为样本xtj对应的真实数据标签。
(2)设定当前时刻的基分类器组合为Ht(即在当前时刻发挥作用的基分类器组合),其中包含的基分类器上限为k。
当数据块Dt到达时,首先根据当前的集成分类器Ht-1对其进行预测,根据式(1~3)对集成中每一个基分类器进行权重更新[17],有
式中:MSEtj表示ht中每个基分类器在当前时刻t最新到达的数据块Dt上的预测错误率;h为正确分类的示性函数,然后对Dt训练得到基分类器ht;MSEr表示分类器的均方误差;p为各标签的分类概率;wtj为当前时刻每个分类器的权重。
若最新训练得到的基分类器ht具有较好的预测性能,应该给与较高的权重,根据式(4)对基分类器进行权重初始化,有
若此时Ht-1中基分类器的个数没有超出分类器个数上限k(j<k),则将ht直接添加到Ht-1中,否则用新得到的基分类器ht替换掉Ht-1中权重最小的基分类器,得到新的集成分类器Ht。
图2展示了串行集成的学习过程,图中立方体表示基分类器,带虚线的灰色立方体表示当前集成分类器Ht-1中权重最小的基分类器,当k<K时执行添加操作,否则执行替换操作。
图2 串行集成学习过程Fig.2 Serial ensemble learning process
当流数据处于平稳状态时,不同时刻数据分布差异不大,因此采用串行集成即可达到较好的分类效果。当概念漂移发生后,由于数据分布发生了较大变化,此时串行集成模型中存在大量分类性能很差的基分类器,在新数据块上训练表现较好的新分类器难以与串行集成中大量性能很差的过时基分类器相抗衡,因此很难对新概念做出快速响应,导致概念漂移发生后学习模型的泛化性能较差。因此,为了能够在概念漂移发生后提取到更多的新分布样本信息,本文在概念漂移发生后创建交叉分类器,在保留数据整体分布信息的同时提取概念漂移位点附近较多的局部分布信息,构建符合概念漂移环境下更好的集成学习模型,使在线集成学习模型在非稳定的流数据学习中得到更好的泛化性能。
2.2.1 概念漂移检测
为了能够在概念漂移发生后充分发挥交叉分类器的作用,则需要检测概念漂移发生的位点。当数据块Dt到来后,本文通过前两个位点得到的串行集成分类器Ht-2和Ht-1来检测是否发生概念漂移,Ht-2与Ht-1分别在数据块Dt-1和Dt上进行测试,得到测试精度Acct-1和Acct来表示,得出位点t的漂移位点检测波动比,有
图3 概念漂移检测过程Fig.3 Concept drift detection process
2.2.2 交叉分类器创建
当检测到可能发生概念漂移的位点后,在最新分布的数据上创建交叉分类器。该过程需要定义数据缓冲区和交叉集成,分别用D*和进行形式化表示。当检测到概念漂移位点后,将当前数据块Dt和前一个数据块Dt-1(Dt-1的加入包含两个作用:(1)方便交叉分类器构建;(2)避免概念漂移位点检测的时延,特别是对于渐变类概念漂移具有重要作用)加入数据缓冲区,即D*=Dt-1∪Dt,并在数据缓存区上构建交叉基分类器。
为了能够得到具有一定差异性的交叉基分类器,首先需要对数据缓存区D*划分为不同的子数据块
当发生概念漂移后,串行集成中过时分类器占比较大,因此可能会在持续的一段时间内无法更好地适应新概念,此时需要不断构建交叉基分类器,以便模型更好地预测,直到数据变化较为平稳(即概念漂移结束)。为了找出漂移结束位点,本文将概念漂移发生时前一个时间戳的集成用HA表示,在其对应数据块上的预测精度用AccA来表示,从此时刻起,HA与AccA保持静止。随着流数据中新数据块的不断到达,需要进行漂移结束检测,其漂移结束检测波动比为若此时满足条件,则对数据缓冲区D*重新进行子数据块的划分,从而更新交叉集成中的每个基分类器。直到满足条件时,清空D*,不再进行交叉基分类器的创建。此时刻起,恢复概念漂移的检测过程,根据漂移位点检测波动比寻找下一个概念漂移位点。
图4展示了交叉集成学习的过程。虚线框里的柱形表示对数据缓冲区划分的各个子数据块,分别由两部分组成,白色部分表示Dt-1中的数据,灰色部分表示Dt中的数据,带网格的剪角矩形和椭圆分别表示概念漂移位点的初始集成和该位点对应数据块的预测精度。
图4 交叉集成学习过程Fig.4 Cross ensemble learning process
当检测到漂移发生后,由于漂移类型未知,漂移位点附近的样本都可能比较重要,因此本文通过串行基分类器和交叉基分类器的混合集成进行预测,即
可以看出,若交叉基分类器过多,模型容易出现过拟合,反之模型整体性能会被控制全局性能的串行集成所影响,未能达到预期的预测效果。
本文所提出的SC_ensemble算法借助集成学习的思想来检测和加速概念漂移的收敛,即通过检测是否有概念漂移的发生采用不同的处理方式,若检测到有概念漂移发生,则对缓冲区数据进行划分来创建交叉基分类器,很好地适应了流数据中的概念漂移。整体算法实现过程如图5所示。基于串行交叉混合集成的概念漂移检测及收敛算法如下所示。
算法1 SC_ensemble算法
为验证所提SC_ensemble算法的有效性,本文使用了具有不同类型的概念漂移数据集进行实验,分别从不同的评价指标对实验结果进行分析说明。
(1)合成数据集:为了检验算法对概念漂移的处理能力,本文使用大规模在线分析平台[28]中的流数据生成器MOA产生了具有概念漂移的数据集。旋转超平面数据集通过改变数据样本特征的权值来改变超平面的方向和位置,实验生成增量式概念漂移的数据集。LED数据集包含一个突变式漂移数据集LED_abrupt(漂移位点位于50 KB处)和一个渐进式漂移数据集(LED_gradual),漂移位点分别位于25 KB、50 KB和75 KB处。RBFlips数据集通过随机径向函数产生固定数目的随机中心,通过随机选择中心生成样本,该数据集概念漂移位点位于25 KB、50 KB和75 KB处。Sea是经典的突变式数据集,实验生成包含3次突变式概念漂移的数据集,漂移位点分别位于25 KB、50 KB和75 KB处。Tree数据集利用决策树生成数据,通过为每个子叶上的属性生成随机数的方式产生实例,该数据集的概念漂移位点位于25 KB、50 KB和75 KB处。
(2)真实数据集:实验中采用了网络入侵检测数据集KDDcup99、电力价格分析数据集Electricity、森林覆盖分析数据集Covertype以及天气数据集Weather。数据集的具体信息见表2,式中“-”表示不确定漂移位点数量或漂移位点位置。
表2 实验采用的数据集Table 2 Datasets used in experiment
为了充分验证所提出方法应对概念漂移的有效性,本文在不同参数下进行了实验研究。
(1)概念漂移警告δ。为了能够准确检测出概念漂移位点,且较大的δ会将波动稍大的点错误检测为概念漂移位点,会发生严重的误检情况,较小的δ无法检测到波动较小的位点,会发生检测不到概念漂移位点的情况。因此,本文将δ的值设置为0.8。
(2)数据块大小w。由于在过小数据块上无法得到足够多数据的样本特征,训练的分类器稳定性较差,而过大的数据块可能会在数据块中包含概念漂移,影响模型的分类效果。因此本文将w统一设置为100。
(3)交叉分类器个数f。若f过小,则创建的交叉基分类器越少,从而能提取到的局部有效信息会减少,造成其交叉分类器的性能较低,这时交叉集成的性能会被控制全局性能的串行集成性能所抑制,导致没有发挥出交叉集成的优势;若f过大,则创建的交叉基分类器的个数越多,导致交叉集成中包含了过多的强分类器,从而抑制了集成性能。因此,交叉分类器的取值起着决定性作用,本文将其设置为f={5,10,20}。
本文选择LIBSVM作为基分类器来构建“同质”基分类器。核参数采用默认值(g=1/m,m为数据特征维度),由于在复杂的非线性问题中,惩罚因子对模型性能的影响较大,因此,本文将惩罚因子设置为C={1,10,100}。通过网格调参的方式,将不同的C与f相组合,比较不同参数组合下模型的分类性能,从而找出对应的全局最优参数组合,使用该组合与对比方法进行比较。
为了更好地有效评估所提SC_ensemble方法的性能,本文选取了以下5种方法进行对比。
(1)SEA[15](A streaming ensemble algorithm(SEA)for large-scale classification)。传统流数据集成分类方法,是最早将集成学习应用到流数据分类中的方法,该方法使用固定大小的数据块构建基分类器并进行集成学习以适应概念漂移。
(2)AUE2[17](Reacting to different types of concept drift:the accuracy updated ensemble algorithm)。精度更新集成算法,利用模型精度的变化情况不断更新基分类器,通过不断增量更新历史基分类器来适应概念漂移。
(3)DWCDS[9](A double-window-based classification algorithm for concept drifting data streams)。该方法是一种基于双窗口机制的漂移检测方法,利用滑动窗口检测数据分布变化,动态更新学习模型。
(4)HBP[29](Hedge backpropagation)。反向传播算法是一种处理流数据的在线深度学习算法。它将深度神经网络的不同层次进行加权集成,并依据各个层次在各个时间步上的表现更新权值,以此来适应流数据分布的变化。
(5)ResNet[30](Deep residential network)。它是常见的深度学习算法,通过残差连接的方式构建深度残差单元,叠加多个深度残差单元的方式构建残差网络,有效地适应了流数据的变化。
为了评估所提SC_ensemble算法的性能,本文针对模型的分类准确、模型对概念漂移的适应性能以及算法的稳定性,分别提出了以下4种不同的评测指标。
(1)AvgRAcc(Average real accuracy)。AvgRAcc表示模型在每个时间戳的实时精度的平均值,该指标用于反应模型的实时性能,是分类结果的有效衡量标准,其定义为
式中:TP、TN分别表示正确分类的正类样本数和正确分类的负类样本数;|Dt|表示1个数据块中的样本总数;T表示所有时间步的总和,越高的测试精度表明模型的分类性能越好。
(2)CumAcc(Cumulative accuracy)。CumAcc反应了模型在过去所有时间步上的性能,其定义为
式中:nt表示时间步t时预测正确的样本数量;n表示每个时间步的样本数。
(3)RSA(Recovery speed under accuracy)。RSA表示数据分布发生变化后,模型的恢复能力,其定义为
式中:step表示模型从概念漂移位点到收敛位点所用的步数;avge表示整体错误率的均值。RSA的值越小,表示在发生概念漂移后,考虑全局错误率较低的同时模型能够在较短的时间内做出快速恢复,表明其模型的收敛性越好。
(4)鲁棒性[31]。鲁棒性是对模型稳定性能的评估,决定了学习模型的泛化性能,为了衡量不同算法在不同数据集的表现性能,本文对不同算法进行了鲁棒性分析(Robust-ness analysis),具体定义为
式中:AccA(D)表示算法A在数据集D上的分类准确率;minαAccα表示在数据集D上所有算法的准确率的最小值。由式(12)可知,有最小精度的算法在数据集D上的RA(D)为1,其余算法的RA(D)值均大于1。假设有n个数据集(D1,…,Dn),A算法在所有数据集上的鲁棒性定义为
由以上定义可知,RA值越大,表明其算法的稳定性越好(即泛化性能越好)。
为验证本文所提出SC_ensemble算法的合理性以及该方法检测概念漂移与适应概念漂移的性能,本文从消融效果、模型测试精度、概念漂移适应情况以及鲁棒性方面分别进行测试分析。
3.5.1 消融效果分析
为了更好地验证本文在概念漂移后插入交叉基分类器的有效性,本节分别采用串行集成、交叉集成和串行交叉混合集成的方式对流数据的分类情况进行分析。表3展示了不同情况下模型的平均分类准确率,从表中可以看出只有交叉集成的模型性能较差,串行和交叉混合集成的模型性能表现最佳,其原因在于若在每一时刻都插入交叉分类器,则会使得集成模型中的子模型都具有较好的表现性能,而一批过强适应性的子模型反而会对模型整体的集成效果起到一定的抑制作用,因此,串行集成整体效果会好于交叉集成的整体效果。而对于串行集成来讲,虽然没有较多的过强子模型抑制整体集成性能,但是当数据分布发生较大变化时,不能及时提取出代表最新数据分布的局部有效信息,加入交叉集成可以在保持其整体有效信息的同时提取局部有效信息,可以加快模型对新数据分布的适应能力,以此来提高模型的泛化性能。LED_gradual数据集上出现串行集成性能稍好的情况可能由于该数据集是渐变型的数据集,数据的波动小,造成概念漂移的漏检,导致没有提取到最新数据分布的有效信息,从而造成其模型的性能下降。在其余所有数据集上,实验结果均与预期相符。这也充分验证了本文将串行集成和交叉集成融合的有效性以及合理性。
表3 消融效果比较Table 3 Comparison of ablation effects
3.5.2 模型精度分析
本节采用AvgRAcc评价指标,分别测试本文所提出的SC_ensemble算法在不同参数下的分类准确率情况,并与对比方法进行研究分析。
表4给出了不同参数下的结果,在大部分数据集上,随着C的增大,模型的平均测试精度随之增大,这是由于过小的C会导致欠拟合现象,并且为了防止C过大造成过拟合现象,本文将C的取值设定为100。其次,随着交叉分类器个数f的增大,模型精度出现下降趋势,这是由于f值越大,会有较多的强分类器抑制集成效果,导致过拟合发生。本文中取参数f=10,C=100与对比方法比较,对比方法的参数均采用默认值。
表4 不同参数下的平均准确率结果Table 4 Results of AvgRAcc under different parameters
由于数据量较大,实时精度较为密集,为了方便观察,本文通过CumAcc指标对不同方法的预测精度进行分析。
图6给出了不同方法在各个数据集上的CumAcc值。从实验结果可以看出,在合成数据集上,本文所提方法SC_ensemble算法在初始时间点具有较高的精度,在概念漂移发生后SC_ensemble下降趋势低于其他方法,这是由于该方法在平稳流数据环境下使用串行集成进行在线学习,模型具有较高的泛化性能,概念漂移发生后,在最新数据分布上创建了交叉基分类器,提高了模型的整体性能。从实验结果可以看出,在真实数据集上,SC_ensemble算法的模型性能稍逊于DWCDS,但是,相比于其他4个算法,本文算法的模型性能具有明显优势。
图6 不同方法的累计精度比较Fig.6 Comparison of CumAcc of different methods
图7为不同方法在各个数据集上的平均准确率变化情况,从实验结果可以看出,SC_ensemble算法的模型整体性能在合成数据集上明显优于其他概念漂移检测及适应方法,这说明在包含突变式概念漂移和渐近式概念漂移的数据集上,本文提出的算法取得最高的准确率,表现出了良好的整体模型性能。在Covertype真实数据集上也表现出了良好的模型预测性能,虽然在其余3个真实数据集上本文所提方法的平均精度略低于DWCDS,这与数据集本身的特性有一定的关系,数据集Kddcup99、Electricity、Weather的分布极度倾斜,数据本身的波动变化较小,DWCDS方法采用双滑动窗口检测概念漂移,在数据波动较小时占有一定优势,而SC_ensemble算法在数据倾斜或较小波动的情况下,可能会发生概念漂移位点的漏检,会直接影响交叉分类器的插入,从而导致模型精度的下降。但是相比于其余4个方法而言,SC_ensemble算法仍表现出了较好的整体性能。
图7 不同方法的平均准确率比较Fig.7 Comparison of AvgRAcc of different methods
表5给出了不同方法在不同数据集上的平均精度排名情况,排名最高的数据均由粗体标出。从整体结果来看,SC_ensemble取得最高的准确率,HBP算法的整体排序与AUE2相当,SEA紧随其后,DWCDS与Resnet排名最后。从表中可以看出,在合成数据集上,除了RBFblips数据集上HBP算法取得最优值外,其余合成数据集上SC_ensemble算法均取得最高的准确率,这表明SC_ensemble算法能够有效处理各种类型的概念漂移,这是由于SC_ensemble算法在概念漂移后有效提取了最新数据分布的信息,充分发挥了交叉分类器的作用,使模型快速收敛,有效提高了模型的整体表现性能。在真实流数据环境下,Covertype数据集上,本文算法表现最好,在其余3个数据集上,DWCDS平均准确率最高,其次是SC_ensemble,这表明SC_ensemble算法能够较好地处理真实流数据,但是对于具有倾斜数据分布且数据本身波动较小的数据集的处理能力还有待提高。这主要是由于在波动较小的数据集上,比较容易发生概念漂移位点的漏检,影响交叉分类器的插入,从而影响算法性能。
表5 不同方法的平均准确率排序比较Table 5 Ranking comparison of AvgRAcc on different methods
本文使用非参数检验方法Friedman-Test[32],对所提算法与对比方法的性能优势进行统计检验分析。对于给定的k种方法和n个数据集,令为第j个算法在第i个数据集上的秩,则第j个算法的秩和平均为零假设H0假定所有方法性能是相同的。在此前提下,当n和k足够大时,Friedman统计值FF服从第1自由度为k-1,第2自由度为(k-1)(n-1)的F分布,有
若得到的统计值大于某一显著水平下F分布临界值,则拒绝零假设H0,表明各算法的秩存在显著差异,反之接受零假设H0,所有算法的性能无明显差异。对上述不同算法的平均准确率进行统计检验,可得Friedman在所有数据集上的统计值FF=3.995,在α=0.05的情况下F分布临界值为2.422,因此,拒绝零假设H0,所有方法性能存在显著差异。
本文还通过Bonferroni-Dunn测试计算了所有方法的显著性差异,用于比较两个方法之间是否存在显著差异。若两种方法的秩和平均差值大于临界差,则这两种方法的性能存在显著差异,有
式中:qα为显著水平α下的临界值,经查表可得。通过计算可得,在所有数据集上,显著性水平α=0.05的情况下CD=2.155 2。统计分析结果如图8所示。图中将没有显著性差异的方法使用黑线连接起来。统计分析结果表明,本文所提SC_ensemble方法在平均准确率上显著优于AUE2、SEA、DWCDS、HBP和ResNet方法。
图8 不同方法平均准确率的显著性差异分析Fig.8 Comparison of AvgRAcc against other methods with the Bonferroni-Dunn test
3.5.3模型收敛性能分析
为了验证SC_ensemble算法在概念漂移发生后的收敛速度,本节比较并分析了不同概念漂移位点处的恢复性能。本文选取已知概念漂移位点的5个合成数据集进行分析。
表6给出了不同方法在不同位点处的恢复度,表中每个方法在每个对应数据集下的3个值分别表示前期、中期和后期概念漂移位点处的恢复值,若数据集在对应位置无概念漂移位点,则将该处记为“-”。考虑到不同模型对数据分布的表征能力不同,对于渐进式概念漂移的数据集,模型的性能波动会比较小。对于此类数据集,本文将发生概念漂移后到下一个概念漂移位点期间的实时精度均值作为模型性能是否恢复的参考值,否则对于模型性能波动较大的数据集将发生概念漂移前的精度作为其参考值。若某位点的精度大于参考值的80%,则将该位点视为收敛位点。从表中可以看出,SC_ensemble算法除了在Sea数据集的后期、Tree数据集的前期和中期上恢复性能略低于AUE2和DWCDS之外,在其他数据集上的恢复性能明显优于其他5种方法。这是由于当数据分布发生较大变化时,SC_ensemble算法及时有效提取了最新数据分布的有关信息,以此来进行策略更新,加快了模型的收敛速度。
表6 不同方法的恢复度比较Table 6 Comparison of RSA of different methods %
3.5.4 算法鲁棒性分析
为验证本文所提SC_ensemble算法的稳定性,本节从平均实时精度出发分析各算法的鲁棒性。图9给出了SC_ensemble算法与其他5个对比方法在不同数据集上的鲁棒性以及各算法的整体鲁棒性。图中,每个矩形的高度代表该算法在一个数据集上的鲁棒性值,矩形上面的数字代表对应算法的整体鲁棒性。从图9可以看出,本文所提算法在大部分数据集上的鲁棒性值明显优于其他算法。从算法整体鲁棒性来看,本文所提算法的整体鲁棒性值排名第一,AUE2次 之,SEA、HBP和ResNet紧 随 其 后,DWCDS的鲁棒性值最低,这是由于集成学习的算法在在一定程度上提高了算法的泛化性能。另外,SC_ensemble算法在平稳流数据环境下,利用串行集成模型进行全局信息的提取,概念漂移发生后通过串行集成与交叉集成的模型融合,在保持局部有效信息的同时兼顾全局有效信息,有效提高了算法的稳定性。
图9 不同数据集上的鲁棒性分析Fig.9 Robustness analysis on different datasets
由于流数据中存在的概念漂移问题,常导致模型在漂移发生后对新分布数据不能快速适应,导致模型性能下降。本文提出了一种基于串行交叉混合集成的概念漂移检测及收敛方法,该方法借助集成学习思想,概念漂移发生后在漂移位点附近创建交叉分类器,兼顾了流数据包含的整体分布信息,又强化了概念漂移发生时的重要局部信息,使集成模型中包含了较多“好而不同”的基学习器,实现了漂移发生后学习模型的高效融合,使在线集成学习模型在概念漂移发生后能快速适应新分布的变化。在后续研究中,将针对不同类型的概念漂移问题,设计自适应的动态交叉分类器,即将交叉基分类器的个数设置为一个可自行调节的变量,使其随着数据波动大小的改变而动态变化。