侯占偉, 李建鵬, 王 輝
(河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454000)
目前,在大數(shù)據(jù)環(huán)境下基于數(shù)據(jù)挖掘的算法在入侵檢測(cè)中的應(yīng)用逐漸成為研究的熱點(diǎn)[1]。其中常用的算法有決策樹(shù)算法C4.5[2]、極限學(xué)習(xí)機(jī)(extreme learning machine,ELM)[3]、人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)[4]、樸素貝葉斯(na?ve Bayesian,NB)[5]、支持向量機(jī)(support vector machine,SVM)[6]等。NB分類(lèi)模型以貝葉斯定理為基礎(chǔ),并假設(shè)特征條件獨(dú)立,即用于分類(lèi)的各個(gè)特征在類(lèi)別確定的情況下都是條件獨(dú)立的。這一假設(shè)使得NB分類(lèi)模型具有容易實(shí)現(xiàn)、訓(xùn)練學(xué)習(xí)時(shí)間較短、預(yù)測(cè)效率穩(wěn)定的特點(diǎn),但同時(shí)該假設(shè)也帶來(lái)了局限性[6],它使屬性間的依賴(lài)關(guān)系無(wú)法體現(xiàn),這與互聯(lián)網(wǎng)中數(shù)據(jù)具有的復(fù)雜關(guān)系并不相符,因而在一定程度上犧牲了分類(lèi)的準(zhǔn)確率,表現(xiàn)出對(duì)網(wǎng)絡(luò)行為預(yù)測(cè)能力較差的缺點(diǎn)。因此眾多學(xué)者針對(duì)這一算法缺陷對(duì)其進(jìn)行各種方式的改進(jìn),以改善分類(lèi)效果。
Chen Z G等人[7]提出利用決策樹(shù)擴(kuò)展NB的入侵檢測(cè)算法,并結(jié)合特征簡(jiǎn)化技術(shù)來(lái)獲得極大后驗(yàn)概率,提高了分類(lèi)的準(zhǔn)確率。但該算法在校驗(yàn)數(shù)據(jù)的過(guò)程中會(huì)產(chǎn)生大量偽數(shù)據(jù),具有對(duì)分類(lèi)產(chǎn)生干擾的缺點(diǎn)。Koc L等人[8]在入侵檢測(cè)中利用隱樸素貝葉斯(hidden naive Bayesian,HNB)算法,在NB的基礎(chǔ)之上對(duì)每一個(gè)屬性節(jié)點(diǎn)添加一個(gè)隱藏的父節(jié)點(diǎn),以此來(lái)體現(xiàn)屬性間的關(guān)聯(lián)關(guān)系,減少屬性間獨(dú)立性假設(shè)帶來(lái)的影響,進(jìn)而提高了分類(lèi)精度。但在關(guān)系網(wǎng)絡(luò)具有多重屬性時(shí),此算法的分類(lèi)效率表現(xiàn)較低。董立巖等人[9]提出一種半監(jiān)督式學(xué)習(xí)的NB(semi-supervised naive Bayesian,SNB)算法,該算法通過(guò)利用置信度來(lái)選取取無(wú)標(biāo)簽訓(xùn)練集中的子集,再結(jié)合帶標(biāo)簽的樣本,不斷迭代直至完成訓(xùn)練。實(shí)驗(yàn)結(jié)果顯示,相較于傳統(tǒng)NB算法預(yù)測(cè)準(zhǔn)確率得到了明顯提高,但算法在數(shù)據(jù)量較小時(shí)仍然需得到置信度列表,增加了算法的耗時(shí)。王雙成等人[10]提出了一種動(dòng)態(tài)完全NB分類(lèi)算法,利用多元高斯核函數(shù)來(lái)計(jì)算屬性的條件聯(lián)合密度,并使用平滑參數(shù)優(yōu)化方法,有效地結(jié)合了屬性間的依賴(lài)關(guān)系,但在大數(shù)據(jù)環(huán)境下,算法的效率有所降低。
本文在前人的研究基礎(chǔ)之上,提出一種利用JS散度和反類(lèi)別頻率(reverse class frequency,RCF)改進(jìn)NB算法,即JRNB算法的入侵檢測(cè)方法。方法在傳統(tǒng)NB算法中引入權(quán)重因子來(lái)計(jì)算每個(gè)特征權(quán)值,權(quán)重因子通過(guò)JS散度和RCF計(jì)算獲得,使得檢測(cè)率和檢測(cè)精度都有了提高,誤檢率也相應(yīng)降低。
給定一個(gè)訓(xùn)練樣本集U={X1,X2,…,Xn},其中,元素Xi={a1,a2,…,am|ai∈Ai}表示每條數(shù)據(jù)記錄,ai表示這條數(shù)據(jù)記錄的第i個(gè)特征,Ai表示樣本集的第i個(gè)屬性變量,可以是離散值或是連續(xù)值。設(shè)有類(lèi)別集合C={c1,c2,…,ck|k≤n},映射函數(shù)f∶Xi→ci表示將任意一條數(shù)據(jù)記錄歸類(lèi)為集合C中的一個(gè)類(lèi)別標(biāo)簽ci?,F(xiàn)考慮一個(gè)待分類(lèi)的測(cè)試樣本集T={Y1,Y2,…,Yr},計(jì)算測(cè)試實(shí)例Yi屬于類(lèi)別cj(?j=1,2,…,k)的概率情況,得到計(jì)算結(jié)果集P={p1,p2,…,pk},進(jìn)一步得到集合P中的最大元素pt,最終將測(cè)試實(shí)例歸類(lèi)為ct。計(jì)算步驟如下:
1) 計(jì)算樣本集U中類(lèi)別c出現(xiàn)的概率
(1)
式中ci為樣本Xi所屬類(lèi)別,n為U中元素的個(gè)數(shù)。
2)計(jì)算集合U中樣本類(lèi)別為c的情況下特征aj出現(xiàn)的條件概率,若屬性Aj為離散值
(2)
式中aij為訓(xùn)練樣本實(shí)例Xi的第j個(gè)特征。若屬性Aj為連續(xù)值,有
(3)
3)計(jì)算樣本集U中特征aj出現(xiàn)的概率
(4)
4)計(jì)算Y′屬于類(lèi)別ci的概率
(5)
式中Y′為待測(cè)樣本實(shí)例,m為樣本屬性的個(gè)數(shù)。
5)由式(5)可以計(jì)算出待測(cè)樣本Y′屬于?ci(1≤i≤k)的概率,得P={p1,p2,…,pk},對(duì)k個(gè)概率值進(jìn)行歸一化,排序可得樣本Y′屬于每個(gè)類(lèi)別的相似度,得出最大后驗(yàn)概率MP
(6)
6)由上述結(jié)果可給出NB分類(lèi)器的定義
Classifier(T={Y1,Y2,…,Yr})=
(7)
本文使用一種特征加權(quán)算法,依情況賦予不同特征項(xiàng)對(duì)應(yīng)的權(quán)值,以提高分類(lèi)準(zhǔn)確率。
定義1 稱(chēng)weight(i,j)為類(lèi)別ci中特征aj的權(quán)值,即衡量特征aj在分類(lèi)過(guò)程中對(duì)類(lèi)別ci的重要程度。
以此對(duì)NB公式進(jìn)行改進(jìn)
(8)
1)KL散度
欲進(jìn)一步量化特征aj對(duì)類(lèi)別ci的重要程度,可以考慮ci在樣本集中的概率分布與在具有特征aj的樣本集中的概率分布兩者之間的差別。差別越大,則特征aj對(duì)類(lèi)別ci越重要;反之,則對(duì)類(lèi)別ci的代表性越差。根據(jù)文獻(xiàn)[11],可以利用KL散度(Kullback-Leibler divergence)描述兩種概率分布之間差異,再利用計(jì)算出來(lái)的差值來(lái)表示特征在分類(lèi)過(guò)程中的重要程度,計(jì)算公式如下
(9)
2)JS散度
由KL散度計(jì)算式(9)可以看到其局限性,其用來(lái)表示兩個(gè)概率分布之間的距離差,但不具有對(duì)稱(chēng)性,因此,不能算作是真正意義上的度量;其次,其結(jié)果范圍也沒(méi)有界限。本文通過(guò)引入JS散度(Jensen-Shannon divergence)的方法來(lái)對(duì)其進(jìn)行改進(jìn),以彌補(bǔ)上述的不足。文獻(xiàn)[12]已給出結(jié)論,JS散度具有對(duì)稱(chēng)性,是真正意義上的距離度量。另外它的取值范圍在0~1之間,用來(lái)進(jìn)行相似度的判斷更加確切方便。因此,可以將JS散度引入到NB分類(lèi)算法當(dāng)中,并利用它比較兩種概率情況的距離差來(lái)賦予特征項(xiàng)相應(yīng)的權(quán)值,計(jì)算公式如下
(10)
定義2稱(chēng)WJS(i,j)為類(lèi)別ci中特征aj的JS權(quán)重因子。
將式(9)代入式(10)可以得出WJS(i,j)的計(jì)算方法。由式(11)可以看出,特征aj在樣本集中的分布越分散,則對(duì)于類(lèi)別ci的JS權(quán)重因子越小,若特征分布較為集中于類(lèi)別ci,則JS權(quán)重因子越大
(11)
3)反類(lèi)別頻率
引入JS散度的特征加權(quán)方法,注重的是類(lèi)別內(nèi)具有特征項(xiàng)的樣本在不同類(lèi)別間的比例上,體現(xiàn)的是類(lèi)別間的聚集程度,而沒(méi)有考慮類(lèi)頻率對(duì)樣本分類(lèi)的影響。文獻(xiàn)[13]證明,含有特征項(xiàng)的類(lèi)別數(shù)與總的類(lèi)別數(shù)之間的比例也是對(duì)特征項(xiàng)重要程度的一條判斷依據(jù)。由于對(duì)特定類(lèi)別具有代表性的特征項(xiàng)出現(xiàn)于少數(shù)類(lèi)中,因此,可利用RCF來(lái)對(duì)其做進(jìn)一步改進(jìn)。
定義3稱(chēng)WRCF(j)為特征aj的RCF權(quán)重因子。計(jì)算公式如下
(12)
式中NC為總類(lèi)別數(shù)。
通過(guò)結(jié)合上述權(quán)重因子WJS和WRCF來(lái)計(jì)算特征權(quán)值weight
weight(i,j)=WJS(i,j)×WRCF(j)
(13)
基于PCA構(gòu)造屬性集及上述特征加權(quán)方法,本文提出JRNB分類(lèi)算法,具體實(shí)現(xiàn)如下:
算法1JRNB算法
Input:訓(xùn)練樣本集U,待分類(lèi)樣本實(shí)例Y={a1,a2,…,am},類(lèi)別標(biāo)簽C={c1,c2,…,ck}
Output:樣本Y所屬類(lèi)別cY
1)k=類(lèi)別數(shù)量
2)∥獲得先驗(yàn)概率P(ci)
3) for eachiink
4)n=0
5)s=0
6) for eachXinU
7)n=n+1
8) if(X∈ci)
9)s=s+1
10) end for
11)P(ci)=s/n
12)end for
13)∥記錄樣本Y屬于各個(gè)類(lèi)別的概率
14)P={p1,p2,…,pk}
15) for eachiink
16)P(Y|ci)=1
德國(guó)建立了與市場(chǎng)經(jīng)濟(jì)相適應(yīng)的城市垃圾處理管理體系,形成了良性循環(huán)的發(fā)展機(jī)制。政府對(duì)行政管轄區(qū)范圍內(nèi)及運(yùn)至服務(wù)區(qū)范圍內(nèi)的垃圾進(jìn)行合理的規(guī)劃和管理,制定合理的實(shí)施計(jì)劃,強(qiáng)化監(jiān)管,鼓勵(lì)先進(jìn)的、有利于垃圾減量和資源回收利用技術(shù)的應(yīng)用和發(fā)展。市場(chǎng)機(jī)制貫穿于垃圾收運(yùn)處理的全過(guò)程,公私合營(yíng)的PPP模式運(yùn)轉(zhuǎn)良好。盡管不同城市有不同的運(yùn)行機(jī)制,但都以垃圾收費(fèi)作為基礎(chǔ),選擇合格的私人企業(yè)服務(wù)商代替政府經(jīng)營(yíng),私人企業(yè)服務(wù)商的服務(wù)需要滿(mǎn)足公眾、機(jī)構(gòu)、工業(yè)和商業(yè)等的綜合要求。政府購(gòu)買(mǎi)服務(wù)模式,既提高了效率,又保證了服務(wù)質(zhì)量,體現(xiàn)出垃圾處理的公益性。
17) for eachjinm
18)weight(i,j)=WJS(i,j)*WRCF(j)
19)P(Y|ci)=P(Y|ci)*P(aj|ci)*weight(i,j)
20) end for
21)pi=P(ci)*P(Y|ci)
22)end for
23)cY=(ci|pi=max{p1,p2,…,pk})
將JRNB算法用于入侵檢測(cè)模型之中,通過(guò)對(duì)相應(yīng)的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行一系列過(guò)程處理,最后,獲得網(wǎng)絡(luò)事件的分類(lèi)結(jié)果。入侵檢測(cè)模型流程如圖1所示。
圖1 基于JRNB算法的入侵檢測(cè)模型
仿真實(shí)驗(yàn)所搭建的環(huán)境平臺(tái)使用的操作系統(tǒng)為Windows 7,CPU頻率為2.4 GHz,內(nèi)存為4 G,硬盤(pán)存儲(chǔ)空間為500 G,編程語(yǔ)言采用Python 3.6。入侵檢測(cè)數(shù)據(jù)集采用NSL-KDD,它是對(duì)KDD 99的改進(jìn),解決了KDD99中存在的固有問(wèn)題,作為當(dāng)前入侵檢測(cè)領(lǐng)域的標(biāo)準(zhǔn)數(shù)據(jù)集,已被廣泛使用。該數(shù)據(jù)集有41個(gè)特征,攻擊類(lèi)型分為4大類(lèi)。對(duì)于實(shí)驗(yàn)中各種方法性能的對(duì)比,采用下列指標(biāo)進(jìn)行評(píng)估
(14)
(15)
(16)
在入侵檢測(cè)中,漏報(bào)帶來(lái)的危害往往比誤報(bào)更大,因此,對(duì)檢測(cè)率的要求更受到人們重視。由表1看出,JRNB算法相較于NB算法不僅檢測(cè)率有了明顯的提升,同時(shí)也保證了較高的檢測(cè)精度與較低的誤檢率。由此說(shuō)明,引入JS散度和RCF特征加權(quán)方法改進(jìn)NB的方法是可行的。
表1 算法改進(jìn)前后檢測(cè)性能對(duì)比 %
將JRNB算法與其他分類(lèi)算法(SVM,C4.5)及改進(jìn)的NB(HNB,SNB)算法在入侵檢測(cè)方面做比較,并利用檢測(cè)精度、檢出率和誤檢率對(duì)結(jié)果進(jìn)行衡量。由圖2(a)看出,新算法對(duì)Normal,Dos,R2L的檢測(cè)精度有較為明顯的提高;從圖2(b)中看出,在檢測(cè)率方面,除了對(duì)Dos的檢測(cè)率稍低于SNB方法外,對(duì)其他各種入侵類(lèi)型的檢測(cè)率都有了一定的提升;圖2(c)說(shuō)明,除了Probe和U2R以外,新算法相較于其他各入侵類(lèi)型的誤檢率都有了顯著的降低。由以上各類(lèi)實(shí)驗(yàn)結(jié)果說(shuō)明了JRNB算法能夠在保證檢測(cè)精度及檢測(cè)率提高的同時(shí),對(duì)誤檢率也有所降低,以滿(mǎn)足實(shí)際需求。
圖2 各分類(lèi)算法性能比較
本文使用了NB相關(guān)理論知識(shí),并提出改進(jìn)的JRNB算法。通過(guò)JS散度和RCF為每個(gè)特征項(xiàng)引入權(quán)重因子來(lái)減小NB的條件獨(dú)立性假設(shè)的局限性。通過(guò)仿真實(shí)驗(yàn)表明:本文提出的基于JRNB的網(wǎng)絡(luò)入侵檢測(cè)算法相比于傳統(tǒng)NB算法及其他流行分類(lèi)算法在檢測(cè)性能上有了一定的改善。下一步工作研究如何更有效地對(duì)數(shù)據(jù)進(jìn)行預(yù)處理的方法,以提高JRNB算法的穩(wěn)定性及適應(yīng)性。