龐興龍,朱國勝,楊少龍,李修遠
(湖北大學計算機與信息工程學院,湖北 武漢 430062)
網(wǎng)絡(luò)流量分類離不開數(shù)據(jù)集的標簽,其中監(jiān)督學習和半監(jiān)督學習最具有代表性,并且具有較高的準確率。目前大多數(shù)研究人員利用現(xiàn)有的公開數(shù)據(jù)集或者自主采集的數(shù)據(jù)集,經(jīng)過人工周密的標記達到分類的目的,但一般都建立在無噪聲環(huán)境影響的前提下,而現(xiàn)實情況中的網(wǎng)絡(luò)流量通常攜帶或多或少的外部噪聲。研究人員將外部噪聲分為2類:標簽噪聲和特征噪聲。標簽噪聲是指在分類過程中被用于訓練的目標標簽與數(shù)據(jù)集本身對應(yīng)的標簽存在差異,例如,在標簽標記時將某條數(shù)據(jù)歸屬于其他標簽,標簽名稱拼寫錯誤等情況都會導致出現(xiàn)標簽噪聲;特征噪聲通常指訓練集樣本的特征與實際樣本訓練特征的差異,例如人為注入的高斯噪聲。以上2種噪聲均會對分類性能造成一定的影響,并且許多科研工作者論證得出標簽噪聲造成的影響會更加顯著的結(jié)論。Frénay等人[1]對這一類型的噪聲進行了充分的描述,Quinlan[2]對2種噪聲的影響進行了分析并得出了類似的結(jié)論:相對于特征噪聲,標簽噪聲對分類器的影響更大。因此,本文著重分析標簽噪聲問題對分類性能的影響。
標簽噪聲在分類問題中對分類性能具有較大的影響,通常直接表現(xiàn)為分類能力大幅度下降、模型的復(fù)雜度增加和預(yù)測能力下降等。目前對于標簽噪聲的處理方法大致歸為2種:(1)標簽修復(fù);(2)標簽剔除。二者的目的都是減少錯誤標簽對分類性能的影響,但本質(zhì)上的區(qū)別在于標簽剔除僅僅只是刪除了被認為錯誤標記的數(shù)據(jù),對于錯誤標簽極少且剔除性能較高的算法,會有較好的分類結(jié)果,但通過剔除達到除噪目的的方法在各種網(wǎng)絡(luò)流量數(shù)據(jù)集上不一定有較好的適用性能,而標簽修復(fù)在這種情況下具有更好的通用性。
目前,對于標簽的修復(fù)有2種處理方法:(1)對分類算法本身進行提升,如提升算法對噪聲的魯棒性、設(shè)計對標簽噪聲不敏感的算法等。文獻[3]提出的自適應(yīng)投票噪聲校正算法,通過考慮潛在標簽噪聲的數(shù)量和概率創(chuàng)建多個弱分類器,來精確識別和校正潛在的噪聲標簽。Nettleton等人[4]通過對不同分類器在不同噪聲比例下的穩(wěn)定性進行對比,評判各個分類器對噪聲的敏感度;Manwani等人[5]探討了分類器的耐噪音學習,使用有、無噪聲數(shù)據(jù)學習,使得分類器具有耐噪抗噪性能;Abelln等人[6]提出一種袋裝信條決策樹,來提高帶噪數(shù)據(jù)集的分類性能,并且使用雙變量誤差分解分析驗證了該算法具有較高的性能;Wang等人[7]則提出一種抗噪聲統(tǒng)計流量分類方法,將噪聲消除和可靠性估計技術(shù)引入流量分類中,在構(gòu)建分類器之前,估計剩余訓練數(shù)據(jù)的可靠性。通過在2個真實流量數(shù)據(jù)集上的大量分類實驗得出,該方法能夠有效地解決訓練數(shù)據(jù)的錯誤標注問題。然而,這類算法對于數(shù)據(jù)集標簽具有一定的依賴性,當標簽噪聲數(shù)目較多時,該算法所訓練出的分類模型會受到顯著影響。并且由于不同數(shù)據(jù)集自身特性的差異,該算法在各類數(shù)據(jù)集上的表現(xiàn)也存在差異。(2)在數(shù)據(jù)集層面上的修復(fù),這類方法主要作為一種預(yù)處理手段來對數(shù)據(jù)集中帶噪標簽進行檢測。文獻[8]利用屬性之間以及屬性和類之間的相互依賴性,使用其余屬性和類值預(yù)測該屬性的值。通過識別每個實例中可能存在的噪聲屬性或類,并用更合適的值替換這些值來處理訓練數(shù)據(jù)中的噪聲,最終證明了這是一種可行的降噪和矯正方法。Arazo等人[9]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的標簽噪聲下的訓練方法,將生成的模型用于實現(xiàn)動態(tài)自舉損失,并將這種動態(tài)自舉與混合數(shù)據(jù)增強相結(jié)合,實現(xiàn)了一種非常穩(wěn)健的損失校正方法。
可以發(fā)現(xiàn),與基于算法層面的方法相比,基于數(shù)據(jù)層面的方法能從根本上改善數(shù)據(jù)集中的噪聲含量,并且在噪聲比例較高情況下能實現(xiàn)標簽修復(fù)和分類,具有較高的挑戰(zhàn)性和實用性。本文考慮從噪聲根源出發(fā),致力在數(shù)據(jù)與噪聲標簽之間挖掘新的聯(lián)系,對噪聲標簽進行識別和修復(fù)。
本文將K-means聚類算法和隨機森林算法相結(jié)合, 提出了基于標簽噪聲修復(fù)的網(wǎng)絡(luò)流量分類方法。K-means聚類算法作為典型的無監(jiān)督算法,在沒有可用標簽的情況下,參與數(shù)據(jù)集預(yù)處理過程,為訓練集訓練出相應(yīng)標簽集。隨機森林算法作為少數(shù)較優(yōu)算法,對標簽噪聲不敏感[10],能有效提高分類性能,因此本文實驗將采用隨機森林算法作為最終的分類模型。
本文方法考慮將權(quán)重值與聚類相結(jié)合,K-means聚類算法作為無監(jiān)督學習技術(shù),在分類中不會將標簽作為分類的依據(jù),因此在進行多次聚類后生成多組聚類的標簽,然后調(diào)用CalcWeights算法[11]對聚類生成的多組標簽計算權(quán)重,通過簇內(nèi)具有優(yōu)勢值的標簽來統(tǒng)計權(quán)重,原理是具有優(yōu)勢值的標簽在簇內(nèi)會表現(xiàn)出最優(yōu)的標簽類型。然而,CalcWeights算法依賴于訓練集樣本標簽種類數(shù)目,因此只能處理正確標簽被錯誤標記情況下的噪聲,而無法識別由于錯誤拼寫出現(xiàn)的新標簽類型,這給權(quán)重值計算帶來的影響較大。本文將標簽錯誤拼寫同時作為標簽噪聲產(chǎn)生的又一特殊情況,并改善了CalcWeights算法無法識別“新標簽”的不足。首先對輸入的訓練集數(shù)據(jù)進行標簽類型識別,設(shè)定標簽數(shù)量閾值作為評判該標簽類型是否為拼寫錯誤的依據(jù)。圖1展示了本文提出的帶噪標簽修復(fù)的網(wǎng)絡(luò)流量分類方法的流程圖:本文方法在對訓練集進行標簽類型和數(shù)量的統(tǒng)計后會將標簽類型對應(yīng)的數(shù)目與自定義閾值進行比較,并更新訓練集中的標簽和對應(yīng)數(shù)量,再將K-means算法與CalcWeight算法循環(huán)執(zhí)行a次,根據(jù)每次聚類生成的標簽分布情況,為標簽集賦予權(quán)重累加并輸出最大權(quán)重值對應(yīng)的標簽類型,最后將標簽集作為隨機森林算法的輸入。
Figure 1 Network traffic classification method based on label noise repair圖1 基于標簽噪聲修復(fù)的網(wǎng)絡(luò)流量分類方法
K-means聚類算法是目前應(yīng)用最為廣泛的聚類算法之一,具有算法簡單、容易收斂的特性,目的是將未標注的數(shù)據(jù)集通過計算樣本項之間的相似度(也稱為樣本間的距離),按照數(shù)據(jù)內(nèi)部存在的數(shù)據(jù)特征將其劃分為不同的類別,使類內(nèi)數(shù)據(jù)相似,類間數(shù)據(jù)差異大。
K-means聚類算法的基本流程如算法1所示。
算法1K-means聚類算法
輸入:樣本集D={x1,x2,…,xn},聚類的簇數(shù)k。
輸出:簇劃分結(jié)果C={C1,C2,…,Ck}。
步驟1從樣本集D中隨機抽取k個樣本作為聚類的質(zhì)心向量,表示為{μ1,μ2,…,μk}。
步驟2以下步驟迭代n次:
(1)初始化各個簇類:Cm≠?,m=1,2,…,k;
(4)如果所有的k個質(zhì)心向量都不再發(fā)生變化,則聚類過程結(jié)束。
步驟3輸出簇劃分結(jié)果C={C1,C2,…,Ck}。
CalcWeights算法是由Nicholson等人[11]提出的,本文根據(jù)該算法原理進行調(diào)整,其基本流程如算法2所示。
算法2CalcWeights算法
輸入:循環(huán)次數(shù)N,標簽類型對應(yīng)數(shù)量num,更新的標簽集y1及聚類后的簇C。
輸出:重新調(diào)整的標簽集yw。
步驟1 forj=0 toNdo//N由數(shù)據(jù)集行數(shù)與設(shè)定的聚類次數(shù)共同決定
(1)計算第j類標簽數(shù)numj在總數(shù)num中的占比:u=numj/num;
(2)計算縮放因子:multiplier=min (lg(|Cj|),2);
(3)計算第j簇的標簽分布。
步驟2計算每個數(shù)據(jù)樣本xi(i=1,2,…,n)在各類標簽中的權(quán)重結(jié)果,并存放在ins_weights[i]中。
步驟3將每個數(shù)據(jù)樣本經(jīng)過權(quán)重計算之后選取在各類標簽中權(quán)重最大的作為該樣本的標簽;
步驟4輸出最終的標簽集合yw。
為了檢驗本文所提方法適用性,本文選取具有代表性的入侵檢測數(shù)據(jù)集NSL-KDD[12]和MOORE[13]進行實驗,下面簡單地對2個數(shù)據(jù)集進行介紹。
(1)NSL-KDD數(shù)據(jù)集。
NSL-KDD數(shù)據(jù)集是由Tavallaee等人[12]從KDDCUP99數(shù)據(jù)集中篩選而得的,作為改進的數(shù)據(jù)集,NSL-KDD在特征性能上更具有代表性。
該數(shù)據(jù)集擁有41維特征向量和1個被標記好的樣本數(shù)據(jù)標簽,其中有3個特征為字符型特征,分別為:protocol_type、flag和service。表1展示了該數(shù)據(jù)集的特征。
NSL-KDD數(shù)據(jù)集包括KDDTrain訓練集和KDDTrain測試集,由于測試集與訓練集的標簽類型不相同,為了分析本文方法在帶噪標簽下的分類性能,因此只選取測試集作為本文實驗的數(shù)據(jù)集。然而KDDTrain訓練集有12種標簽類型,每種類型數(shù)據(jù)差異較大,為了保證在注入不同比例噪聲后不影響實驗結(jié)果,選取實例數(shù)大于2 000的標簽類型作為本次實驗的對象,如表2所示。在對所選數(shù)據(jù)集進行預(yù)處理時,考慮到非數(shù)值型特征之間是否存在關(guān)聯(lián),本文在將其轉(zhuǎn)換為數(shù)值型時使用one-hot編碼,以保留屬性中所攜帶的數(shù)學性質(zhì),即映射為(1,0,0),(0,1,0)和(0,0,1)的形式,一共有80個特征,最終41維特征向量轉(zhuǎn)換成118維特征。此外,對剩余的38種數(shù)值特征采取標準方法進行等比例縮放,轉(zhuǎn)換的公式為x′=(x-u)/σ,其中,x表示原始數(shù)據(jù),u表示均值,σ表示標準差。最后隨機選取數(shù)據(jù)集中70%的數(shù)據(jù)作為訓練集,剩余30%作為測試集。
Table 1 Characteristics of NSL-KDD dataset表1 NSL-KDD數(shù)據(jù)集特征
Table 2 Six tag types with more than 2 000 instances表2 6個實例超過2 000的標簽類型
(2)MOORE數(shù)據(jù)集。
MOORE數(shù)據(jù)集是目前應(yīng)用最為廣泛的網(wǎng)絡(luò)流量分類數(shù)據(jù)集,它是由Moore等人[13]通過高性能網(wǎng)絡(luò)監(jiān)控器采集而得的,采集的數(shù)據(jù)分為10個數(shù)據(jù)流文檔,一共377 526條數(shù)據(jù),如表3所示,是相對較為完善的網(wǎng)絡(luò)流特征集。
MOORE數(shù)據(jù)集的每種標簽類型的數(shù)量比重差異很大,因此為了達到實驗要求,同樣選取實例數(shù)大于2 000的標簽類型作為實驗對象,如表4所示。由于MOORE數(shù)據(jù)集定義了248種網(wǎng)絡(luò)數(shù)據(jù)流特征,為了避免MOORE數(shù)據(jù)集存在冗余現(xiàn)象以及分類相關(guān)性較小的特征,本文經(jīng)過分析該數(shù)據(jù)集的特征,最終選取11種特征屬性作為流量分類的特征,如表5所示。在選取分類特征后,仍然對數(shù)據(jù)集進行標準化處理,最后隨機選取70%的數(shù)據(jù)作為訓練集,剩余30%作為測試集。
Table 3 Ten document information of MOORE dataset表3 MOORE數(shù)據(jù)集10個文檔信息
Table 5 Features selected in this paper for classification表5 本文選取的用于分類的特征
本文將帶噪標簽的修復(fù)指標作為評判模型分類性能的關(guān)鍵,修復(fù)指標包括標簽修復(fù)力度、模型輸出結(jié)果質(zhì)量和AUC。其中,標簽修復(fù)力度是根據(jù)標簽修復(fù)后的新標簽與真實標簽進行相似性對比來判定,本文使用調(diào)整蘭德系數(shù)ARI(Adjusted Rand index)來計算標簽修復(fù)力度。調(diào)整蘭德系數(shù)是改進了的蘭德系數(shù),調(diào)整蘭德系數(shù)假設(shè)模型的超分布為隨機模型,即類和簇的劃分為隨機的,那么各類別和各簇的數(shù)據(jù)點數(shù)目是固定的。模型輸出結(jié)果質(zhì)量是指在校正的數(shù)據(jù)集上訓練分類器,并在測試集上進行分類預(yù)測而獲得的分類精度。本文在最終分類環(huán)節(jié)采用性能較優(yōu)的隨機森林分類模型計算分類的質(zhì)量;AUC代表ROC曲線下覆蓋的面積。由于ROC曲線的取值一般在0.5~1.0,值越接近1.0,檢測的真實性就越高。
本文選擇Python作為編程語言,使用jupytyer-lab作為模型訓練工具。首先對未添加噪聲的NSL-KDD數(shù)據(jù)集和MOORE數(shù)據(jù)集直接使用隨機森林進行分類。為了防止分類過程中出現(xiàn)欠擬合或過擬合現(xiàn)象,因此使用隨機森林的學習曲線得到最佳n_estimators值,以降低實驗的不合理性。n_estimators是隨機森林的重要參數(shù),表示森林中基評估器的數(shù)量,即樹的數(shù)量。當n_estimators為181時,NSL-KDD數(shù)據(jù)集上的分類達到99.872%的準確率;當n_estimators為44時,MOORE數(shù)據(jù)集上的分類達到99.573%的準確率。隨后在訓練集中通過選取10%,20%,30%,40%,50%,55%,60%,65%,70%的數(shù)據(jù)將正確標簽類型錯誤標注,錯誤標注的方式采取將正確標簽錯誤分配和標簽錯誤拼寫來實現(xiàn)噪聲的注入。隨后將STC (Self-Training Correction)算法[14]、CC (Cluster-based Correction)算法[14]和ADE(Automatic Data Enhancement)算法[15]與隨機森林算法相結(jié)合與本文方法進行對比,并使用上文提到的標簽修復(fù)力度、模型輸出結(jié)果質(zhì)量和AUC來評估本本算法的性能。
(1)標簽精度。
不同算法的標簽修復(fù)力度實驗結(jié)果如圖2所示,圖中橫坐標代表噪聲比例,縱坐標代表算法修復(fù)力,即標簽精度,圖2a和圖2b分別代表各算法在NSL-KDD數(shù)據(jù)集和MOORE數(shù)據(jù)集上的修復(fù)情況。將每種噪聲比例下的修復(fù)值繪制成折線,可直觀地看出不同噪聲下各個算法的修復(fù)情況。
Figure 2 Repair power of each algorithm on NSL-KDD and MOORE with noisy data 圖2 各算法在帶噪數(shù)據(jù)集KSL-KDD 和MOORE上的修復(fù)力
由圖2a可看出,對比修復(fù)算法STC在噪聲比例不大于20%時具有較強的修復(fù)力,在最佳情況下比本文提出的算法、CC算法和ADE算法,分別高出0.043,0.075和0.030;而在MOORE數(shù)據(jù)集上,則分別高出0.057,0.098和0.023,但當噪聲比例大于20%時,噪聲修復(fù)力呈明顯下降趨勢,算法穩(wěn)定性表現(xiàn)較差;當噪聲比在20%~55%時,ADE算法、CC算法和本文提出的算法都具有較好的穩(wěn)定性,并且在標簽修復(fù)的精確率上本文的算法要比ADE算法和CC算法表現(xiàn)好一些,并在NSL-KDD數(shù)據(jù)集上表現(xiàn)最明顯;當噪聲比達到55%時,4種算法的修復(fù)力度都呈下降趨勢,但整體情況本文算法的修復(fù)力度仍然要高于其他3種算法的。
(2) 模型輸出結(jié)果質(zhì)量。
模型輸出結(jié)果質(zhì)量通過使用經(jīng)STC、CC、ADE和本文方法中的修復(fù)算法修復(fù)后的標簽作為分類模型的輸入,利用分類器對標簽質(zhì)量進行預(yù)測。圖3展示了在NSL-KDD數(shù)據(jù)集和MOORE數(shù)據(jù)集上各算法的分類結(jié)果質(zhì)量,圖中橫坐標表示當前標簽所攜帶的噪聲比例,縱坐標則表示最終分類準確率,即模型輸出結(jié)果質(zhì)量。
Figure 3 Classification results of each algorithm on KSL-KDD and MOORE with noisy data 圖3 各算法在帶噪數(shù)據(jù)集KSL-KDD 和MOORE上的分類性能
實驗使用隨機森林分別對帶噪數(shù)據(jù)集與標簽被修復(fù)的數(shù)據(jù)集進行分類后對比,可看出帶噪數(shù)據(jù)集隨著噪聲比例的增加,分類準確率呈明顯下降趨勢,表明了標簽噪聲對分類器分類性能的危害是較嚴重的。前文提到,在有噪聲的環(huán)境中,隨機森林算法對含噪數(shù)據(jù)集具有一定的容忍性,因此本文選用隨機森林算法作為4種修復(fù)算法的分類器,從理論上可得到較優(yōu)的分類準確率。從圖3可以看出,當噪聲比例不大于20%時,STC算法相比其他3種算法具有更高的分類準確率;同時可觀察到在NSL-KDD數(shù)據(jù)集上,在噪聲比例達到15%左右時,本文提出的修復(fù)算法在最終的分類效果上要比ADE算法表現(xiàn)好,但在MOORE數(shù)據(jù)集上,當噪聲比例不大于20%時,本文算法的分類性能比ADE算法的要低;當噪聲比例大于20%時,STC算法的分類性能呈明顯下降趨勢,并且隨著噪聲比例增大,下降幅度也增加。此時本文提出的修復(fù)算法、CC算法和ADE算法在噪聲比例到達55%之前都能使修復(fù)后的標簽在分類性能上具有較好的穩(wěn)定性。除此之外,本文的修復(fù)算法在標簽修復(fù)后的分類準確率上要高于ADE算法的,在NSL-KDD數(shù)據(jù)集上同樣表現(xiàn)最明顯。而CC算法雖然也使修復(fù)后的標簽保持著較好的分類穩(wěn)定性,但在分類性能上略遜于這2種算法的;當噪聲比例不小于55%時,4種算法所修復(fù)的標簽在最終的分類器性能上都呈下降趨勢。而在帶噪的MOORE數(shù)據(jù)集上,本文提出的修復(fù)算法的分類性能表現(xiàn)較為穩(wěn)定。整體上本文提出的修復(fù)算法在2個數(shù)據(jù)集上的總體性能都優(yōu)于其他3種對比算法。
(3)AUC。
AUC指的是每個類型下的ROC曲線所形成的面積大小,由于網(wǎng)絡(luò)流量一般屬于多類別的數(shù)據(jù)集,因此將修復(fù)后的噪聲數(shù)據(jù)直接訓練得到的模型的平均AUC值,作為該模型的AUC性能指標。圖4展示了4種算法在不同噪聲比例下在2個數(shù)據(jù)集上的AUC指標情況。由圖4a可看出,在噪聲比不大于20%時,STC算法的AUC仍然略高于本文算法的AUC,ADE算法的AUC整體低于上述2種算法但高于CC算法的AUC;當噪聲比例大于20%時,STC算法的AUC開始呈明顯下降趨勢,此時本文算法相比ADE算法和CC算法有更高的穩(wěn)定性;當噪聲比例不小于60%時,4種算法的AUC值都呈下降趨勢,并且在NSL-KDD數(shù)據(jù)集上呈現(xiàn)得較為明顯。
Figure 4 AUC values of each algorithm on KSL-KDD and MOORE with noisy data 圖4 各算法在帶噪數(shù)據(jù)集KSL-KDD 和MOORE上的AUC值
(4)運行時間。
圖5為修復(fù)算法運行的時間對比結(jié)果。從圖中可以清晰地看出,本文所提算法和CC算法在NSL-KDD數(shù)據(jù)集和MOORE數(shù)據(jù)集上所消耗的時間都呈現(xiàn)較好的穩(wěn)定性,計算時間分別在1 s~4 s和在2 s~7 s。STC算法和ADE算法在2個數(shù)據(jù)集上所耗費的時間大體隨著噪聲比例的提升有一定的增加,其中ADE算法在2個數(shù)據(jù)集上的計算時間都高于其他3種算法的,在NSL-KDD數(shù)據(jù)集上耗時最高達到了256.49 s左右,在MOORE數(shù)據(jù)集上計算耗時達到88.06 s左右。
Figure 5 Calculation time of each algorithm on KSL-KDD and MOORE with noisy data 圖5 各算法在帶噪數(shù)據(jù)集KSL-KDD 和MOORE上的計算時間
由于本文在預(yù)處理階段從NSL-KDD數(shù)據(jù)集和MOORE數(shù)據(jù)集中選取的特征數(shù)量不同,NSL-KDD數(shù)據(jù)集在預(yù)處理后得到118維特征,其中有80維是由原特征中的字符特征轉(zhuǎn)換而得的,MOORE則根據(jù)實驗需求選取11維特征。因此,猜測不同的算法計算耗時可能會受到數(shù)據(jù)集維度的影響,其中,ADE算法受到維度過高時的影響較大,當維度減小時,其所耗費的時間也明顯減少;STC算法的計算時間也會根據(jù)維度的減小而減少。但是,無論如何,本文所提出的算法相對其它三者都呈現(xiàn)出更好的穩(wěn)定性,對不同維度的數(shù)據(jù)集具有一定的適應(yīng)性和穩(wěn)定性。
本文提出的基于標簽噪聲修復(fù)的網(wǎng)絡(luò)流量分類方法,是根據(jù)不同類型噪聲對采用的權(quán)重算法進行改進,實現(xiàn)對正確標簽錯誤標記和標簽的錯誤拼寫2種情況的標簽修復(fù)。本文在2個網(wǎng)絡(luò)流量數(shù)據(jù)集上驗證了本文算法的合理性和穩(wěn)定性,與其他文獻中的標簽修復(fù)算法對比結(jié)果表明,本文所提修復(fù)算法能更好地對含不同比例噪聲的數(shù)據(jù)集進行修復(fù),并在最終的分類結(jié)果上保持較好的性能,有更好的執(zhí)行效率、穩(wěn)定性、精確度和適應(yīng)性。