陳猛 洪偉
摘 要:本文提出了一種集成異種分類(lèi)器的數(shù)據(jù)流入侵檢測(cè)模型EDKCDS(Ensemble of Different Kind of Classifiers on Data Stream),目的是在適應(yīng)概念漂移的前提下,利用多個(gè)時(shí)間段的數(shù)據(jù)學(xué)習(xí)生成異種分類(lèi)器,并集成各個(gè)異種分類(lèi)器,檢測(cè)入侵行為,使其能達(dá)到目標(biāo)類(lèi)召回率和精度的平衡,并且能取得較高的分類(lèi)準(zhǔn)確率。
關(guān)鍵詞:入侵檢測(cè);組合分類(lèi)器;數(shù)據(jù)流
中圖分類(lèi)號(hào):TP393.08文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1003-5168(2018)29-0021-02
Abstract: This paper proposed a new integration approach, called EDKCDS (Ensemble of Different Kind of Classifiers on Data Stream). The purpose is to generate heterogeneous classifiers based on multi-time data learning and integrate heterogeneous classifiers to detect intrusion behavior under the premise of adapting to conceptual drift. It can achieve a balance between recall and accuracy of target class, and achieve higher classification accuracy.
Keywords: intrusion detection;ensemble;data stream
1 研究背景
當(dāng)今社會(huì)已進(jìn)入網(wǎng)絡(luò)時(shí)代,如何保障計(jì)算機(jī)系統(tǒng)的安全是尤為突出的問(wèn)題。入侵檢測(cè)技術(shù)能保護(hù)系統(tǒng)免受攻擊,也能把給定數(shù)據(jù)分為正常數(shù)據(jù)和異常數(shù)據(jù),其本質(zhì)上是一個(gè)分類(lèi)問(wèn)題。
集成學(xué)習(xí)方法利用多個(gè)弱分類(lèi)器的組合來(lái)改善算法的分類(lèi)性能,同時(shí)數(shù)據(jù)流環(huán)境又有其特點(diǎn),如在信用卡事務(wù)流等類(lèi)似的應(yīng)用中,連續(xù)產(chǎn)生出海量的數(shù)據(jù),并且數(shù)據(jù)的分布會(huì)隨著時(shí)間的更迭而發(fā)生變化(概念漂移[1])。如何在海量數(shù)據(jù)流中選擇出充分的數(shù)據(jù)并訓(xùn)練出分類(lèi)模型以進(jìn)行有效預(yù)測(cè),正是數(shù)據(jù)流入侵檢測(cè)所要解決的難點(diǎn)。
本文提出一種集成異種分類(lèi)器的數(shù)據(jù)流入侵檢測(cè)模型EDKCDS,該模型首先利用數(shù)據(jù)流中不同時(shí)間段的訓(xùn)練樣本構(gòu)造不同類(lèi)型的分類(lèi)器(稱(chēng)為基分類(lèi)器)。當(dāng)對(duì)數(shù)據(jù)進(jìn)行分類(lèi)預(yù)測(cè)時(shí),EDKCDS取各個(gè)基分類(lèi)器的預(yù)測(cè)結(jié)果加權(quán)投票,根據(jù)表決的結(jié)果進(jìn)行分類(lèi),從而發(fā)現(xiàn)異常數(shù)據(jù)。
2 入侵檢測(cè)的性能評(píng)價(jià)
在入侵檢測(cè)問(wèn)題中,一般稱(chēng)攻擊類(lèi)為目標(biāo)類(lèi),正常類(lèi)為非目標(biāo)類(lèi)。評(píng)估標(biāo)準(zhǔn)可使用召回率(recall)、精度(precision)。定義如下:
3 分類(lèi)方法
3.1 決策樹(shù)分類(lèi)
決策樹(shù)采用自頂向下的分治方法構(gòu)造。隨著樹(shù)的構(gòu)造,數(shù)據(jù)集集合空間被分割成兩個(gè)或多個(gè)塊。在樹(shù)結(jié)構(gòu)模型中,每個(gè)葉子節(jié)點(diǎn)代表一個(gè)類(lèi),而由根節(jié)點(diǎn)到一個(gè)葉節(jié)點(diǎn)的路徑則構(gòu)成一類(lèi)分類(lèi)規(guī)則。決策樹(shù)分類(lèi)模型被廣泛應(yīng)用在數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)等領(lǐng)域。本文構(gòu)造基分類(lèi)器用的是C4.5算法。
3.2 樸素貝葉斯分類(lèi)方法
貝葉斯分類(lèi)是利用統(tǒng)計(jì)學(xué)知識(shí)進(jìn)行分類(lèi)的方法。由貝葉斯公式可知,可以利用先驗(yàn)概率(Prior Probability)來(lái)計(jì)算后驗(yàn)概率(Posterior Probability),而后驗(yàn)概率能提供更多的信息,可以作為分類(lèi)的標(biāo)準(zhǔn)。在本文中,筆者利用樸素貝葉斯算法構(gòu)造基本分類(lèi)器,其假定一個(gè)屬性值對(duì)給定類(lèi)的影響?yīng)毩⒂谄渌麑傩缘闹?,這個(gè)假定稱(chēng)作類(lèi)條件獨(dú)立。
3.3 K-最臨近分類(lèi)
K-最臨近分類(lèi)用n維數(shù)值屬性描述一個(gè)訓(xùn)練樣本,對(duì)應(yīng)n維空間中一個(gè)點(diǎn)。當(dāng)要分類(lèi)一個(gè)未知樣本時(shí),該算法會(huì)在n維空間中找出最接近未知樣本的K個(gè)訓(xùn)練樣本,也稱(chēng)為K個(gè)“近鄰”,根據(jù)這K個(gè)最“近鄰”進(jìn)行分類(lèi)。K-最臨近分類(lèi)是基于類(lèi)比學(xué)習(xí)的分類(lèi)方法,也是一種懶散的學(xué)習(xí)法。
3.4 神經(jīng)網(wǎng)絡(luò)分類(lèi)
神經(jīng)網(wǎng)絡(luò)模型包括輸入層、隱藏層、輸出層。每一層由若干單元組成,網(wǎng)絡(luò)的輸入對(duì)應(yīng)元組的屬性,每個(gè)連接都與一個(gè)權(quán)值相關(guān)聯(lián)。在本文中,筆者使用后向傳播算法在神經(jīng)網(wǎng)絡(luò)上進(jìn)行學(xué)習(xí)構(gòu)造,迭代地得到一組權(quán)重用于元組類(lèi)標(biāo)號(hào)預(yù)測(cè)。
3.5 基于eEP的分類(lèi)方法
在基于顯露模式的分類(lèi)方法中,EP是一個(gè)項(xiàng)集,其支持度從類(lèi)A(B)到類(lèi)B(A)顯著地增加,因此具有很好的區(qū)分能力。給定支持度和增長(zhǎng)率閾值,基于EP的分類(lèi)方法挖掘滿(mǎn)足支持度和增長(zhǎng)率閾值的EP。若要對(duì)數(shù)據(jù)S進(jìn)行分類(lèi),基于EP的分類(lèi)方法會(huì)聚合S中的[Ci]類(lèi)EP的區(qū)分能力,計(jì)算出S屬于[Ci]類(lèi)的得分,根據(jù)得分高低預(yù)測(cè)S類(lèi)別。本文構(gòu)建基分類(lèi)器采用的基于eEP的分類(lèi)算法是對(duì)CAEP的改進(jìn)算法CEEP[2]。
4 算法基本思想
由于數(shù)據(jù)流是不斷流入的,不可能存儲(chǔ)所有的數(shù)據(jù)來(lái)建立模型,而是考慮使用距離最近的[SW]個(gè)窗口的數(shù)據(jù),為此引入了滑動(dòng)窗口的機(jī)制:假設(shè)BW是一個(gè)基本窗口,對(duì)應(yīng)一個(gè)數(shù)據(jù)流子序列;SW是一個(gè)滑動(dòng)窗口,對(duì)應(yīng)一個(gè)連續(xù)的基本窗口序列,表示為SW=bw1,…,bwi,…,bwk,在基本窗口bwi訓(xùn)練得到對(duì)應(yīng)的基分類(lèi)器為Ci。
本文提出的集成異種分類(lèi)器的數(shù)據(jù)流入侵檢測(cè)模型EDKCDS(Ensemble of Different Kind of Classifiers on Data Stream)在滑動(dòng)窗口SW內(nèi)訓(xùn)練5個(gè)基分類(lèi)器的集合E。假設(shè)初始時(shí),EDKCDS分別使用決策樹(shù)(C4.5)、樸素Bayes(NB)、最近鄰(k-NN)、后向傳播(BP)和eEP構(gòu)造分類(lèi)器C1…C5。當(dāng)滑動(dòng)到第K+1個(gè)基本窗口時(shí),先讓每個(gè)基分類(lèi)器Ci獨(dú)立地作出預(yù)測(cè),然后,根據(jù)基分類(lèi)器Ci的F-度量計(jì)算其權(quán)重,將權(quán)重最小的基分類(lèi)器Ci移出集合E,在基本窗口K+1上按照Cl的算法學(xué)習(xí)得到分類(lèi)器CK+1,加入集合E,以E中基分類(lèi)器加權(quán)表決的方式確定待分類(lèi)樣本所屬的類(lèi)。算法如下:
EDKCDS( D, E) //? 其中D:bwK+1的數(shù)據(jù);E:基分類(lèi)器集合。方法如下:
①對(duì)基本窗口BW1,BW2,BW3,BW4,BW5分別按照C4.5、NB、k-NN、BP、eEP構(gòu)造基分類(lèi)器C1、C2、C3、[Us]、R0。
②while (bwK+1數(shù)據(jù)到達(dá)) {
③for (Ci∈E ) { 計(jì)算Ci在[Tn2]上的F-度量;//公式(3)
計(jì)算[Ci]對(duì)應(yīng)權(quán)重[wi];}
④將權(quán)重最小的基分類(lèi)器[Cl]移出集合E;
⑤在D上按照[Cl]的算法學(xué)習(xí)得到分類(lèi)器[CK+1],加入集合E;
[Ci]權(quán)重[wi]用式(4)計(jì)算:
5 結(jié)語(yǔ)
本文提出一種集成異種分類(lèi)器的數(shù)據(jù)流入侵檢測(cè)模型EDKCDS(Ensemble of Different Kind of Classifiers on Data Stream)。該模型利用多個(gè)時(shí)間段的數(shù)據(jù)學(xué)習(xí)生成異種分類(lèi)器,并集成各個(gè)異種分類(lèi)器,檢測(cè)入侵行為。入侵檢測(cè)是現(xiàn)在應(yīng)用領(lǐng)域多、研究比較熱的方向,如何找到更好的方法在海量數(shù)據(jù)流上快速分析檢測(cè)是一個(gè)值得研究的問(wèn)題。
參考文獻(xiàn):
[1] Widmer G, Kubat M. Learning in the Presence of Concept Drift and Hidden Contexts[J]. Machine Learning,1996(1):69-101.
[2]范明,劉孟旭,趙紅領(lǐng).一種基于基本顯露模式的分類(lèi)算法[J].計(jì)算機(jī)科學(xué),2004(11):213-216.