入侵檢測中樸素貝葉斯分類的應用論文

時間:2022-08-24 06:17:00

導語:入侵檢測中樸素貝葉斯分類的應用論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

入侵檢測中樸素貝葉斯分類的應用論文

摘要貝葉斯分類能高效地處理大型數據,本文使用核密度估計的樸素貝葉斯分類來進行入侵檢測。由于入侵檢測審計數據屬性多為連續變量,所以在貝葉斯分類算法中使用核密度估計,有助于提高分類的精度,另引入對稱不確定方法有效地刪除不相關的檢測屬性,進一步提高分類效率。

關鍵字貝葉斯;核密度;入侵檢測;分類

1前言

在入侵檢測系統中,為了提高系統的性能,包括降低誤報率和漏報率,縮短反應時間等,學者們引入了許多方法,如專家系統、神經網絡、遺傳算法和數據挖掘中的聚類,分類等各種算法。例如:Cooper&Herkovits提出的一種基于貪心算法的貝葉斯信念網絡,而Provan&SinghProvan,G.M&SinghM和其他學者報告了這種方法的優點。貝葉斯網絡說明聯合條件概率分布,為機器學習提供一種因果關系的圖形,能有效的處理某些問題,如診斷:貝葉斯網絡能正確的處理不確定和有噪聲的問題,這類問題在任何檢測任務中都很重要。

然而,在分類算法的比較研究發現,一種稱作樸素貝葉斯分類的簡單貝葉斯算法給人印象更為深刻。盡管樸素貝葉斯的分類器有個很簡單的假定,但從現實數據中的實驗反復地表明它可以與決定樹和神經網絡分類算法相媲美[1]。

在本文中,我們研究樸素貝葉斯分類算法,用來檢測入侵審計數據,旨在開發一種更有效的,檢驗更加準確的算法。

2貝葉斯分類器

貝葉斯分類是統計學分類方法。它們可以預測類成員關系的可能性,如給定樣本屬于一個特定類的概率。

樸素貝葉斯分類[2]假定了一個屬性值對給定類的影響獨立于其它屬性的值,這一假定稱作類條件獨立。

設定數據樣本用一個n維特征向量X={x1,x2,,xn}表示,分別描述對n個屬性A1,A2,,An樣本的n個度量。假定有m個類C1,C2,,Cm。給定一個未知的數據樣本X(即沒有類標號),樸素貝葉斯分類分類法將預測X屬于具有最高后驗概率(條件X下)的類,當且僅當P(Ci|X)>P(Cj|X),1≤j≤m,j≠i這樣,最大化P(Ci|X)。其中P(Ci|X)最大類Ci稱為最大后驗假定,其原理為貝葉斯定理:

公式(1)

由于P(X)對于所有類為常數,只需要P(X|Ci)P(Ci)最大即可。并據此對P(Ci|X)最大化。否則,最大化P(X|Ci)P(Ci)。如果給定具有許多屬性的數據集,計算P(X|Ci)P(Ci)的開銷可能非常大。為降低計算P(X|Ci)的開銷,可以做類條件獨立的樸素假定。給定樣本的類標號,假定屬性值相互條件獨立,即在屬性間,不存在依賴關系,這樣,

公式(2)

概率,可以由訓練樣本估值:

(1)如果Ak是分類屬性,則P(xk|Ci)=sik/si其中sik是Ak上具有值xk的類Ci的訓練樣本數,而si是Ci中的訓練樣本數。

(2)如果Ak是連續值屬性,則通常假定該屬性服從高斯分布。因而

公式(3)

其中,給定類Ci的訓練樣本屬性Ak的值,是屬性Ak的高斯密度函數,而分別為平均值和標準差。

樸素貝葉斯分類算法(以下稱為NBC)具有最小的出錯率。然而,實踐中并非如此,這是由于對其應用假定(如類條件獨立性)的不確定性,以及缺乏可用的概率數據造成的。主要表現為:

①不同的檢測屬性之間可能存在依賴關系,如protocol_type,src_bytes和dst_bytes三種屬性之間總會存在一定的聯系;

②當連續值屬性分布是多態時,可能產生很明顯的問題。在這種情況下,考慮分類問題涉及更加廣泛,或者我們在做數據分析時應該考慮另一種數據分析。

后一種方法我們將在以下章節詳細討論。

3樸素貝葉斯的改進:核密度估計

核密度估計是一種普便的樸素貝葉斯方法,主要解決由每個連續值屬性設為高斯分布所產生的問題,正如上一節所提到的。在[3]文中,作者認為連續屬性值更多是以核密度估計而不是高斯估計。

樸素貝葉斯核密度估計分類算法(以下稱K-NBC)十分類似如NBC,除了在計算連續屬性的概率時:NBC是使用高斯密度函數來評估該屬性,而K-NBC正如它的名字所說得一樣,使用高斯核密度函數來評估屬性。它的標準核密度公式為

公式(4)

其中h=σ稱為核密度的帶寬,K=g(x,0,1),定義為非負函數。這樣公式(4)變形為公式(5)

公式(5)

在K-NBC中采用高斯核密度為數據分析,這是因為高斯密度有著更理想的曲線特點。圖1說明了實際數據的概率分布更接近高斯核密度曲線。

圖1兩種不同的概率密度對事務中數據的評估,其中黑線代表高斯密度,虛線為核估計密度并有兩個不同值的帶寬樸素貝葉斯算法在計算μc和σc時,只需要存儲觀測值xk的和以及他們的平方和,這對一個正態分布來說是已經足夠了。而核密度在訓練過程中需要存儲每一個連續屬性的值(在學習過程中,對名詞性屬性只需要存儲它在樣本中的頻率值,這一點和樸素貝葉斯算法一樣)。而為事例分類時,在計算連續值屬性的概率時,樸素貝葉斯算法只需要評估g一次,而核密度估計算法需要對每個c類中屬性X每一個觀察值進行n次評估,這就增加計算存儲空間和時間復雜度,表1中對比了兩種方法的時間復雜度和內存需求空間。

4實驗研究與結果分析

本節的目標是評價我們提出核密度評估分類算法對入侵審計數據分類的效果,主要從整體檢測率、檢測率和誤檢率上來分析。

表1在給定n條訓練事務和m個檢測屬性條件下,

NBC和K-NBC的算法復雜度

樸素貝葉斯核密度

時間空間時間空間

具有n條事務的訓練數據O(nm)O(m)O(nm)O(nm)

具有q條事務的測試數據O(qm)O(qnm)

4.1實驗建立

在實驗中,我們使用NBC與K-NBC進行比較。另觀察表1兩種算法的復雜度,可得知有效的減少檢測屬性,可以提高他們的運算速度,同時刪除不相關的檢測屬性還有可以提高分類效率,本文將在下一節詳細介紹對稱不確定方法[4]如何對入侵審計數據的預處理。我們也會在實驗中進行對比分析。

我們使用WEKA來進行本次實驗。采用KDDCUP99[5]中的數據作為入侵檢測分類器的訓練樣本集和測試樣本集,其中每個記錄由41個離散或連續的屬性(如:持續時間,協議類型等)來描述,并標有其所屬的類型(如:正常或具體的攻擊類型)。所有數據分類23類,在這里我們把這些類網絡行為分為5大類網絡行為(Normal、DOS、U2R、R2L、Probe)。

在實驗中,由于KDDCUP99有500多萬條記錄,為了處理的方便,我們均勻從kddcup.data.gz中按照五類網絡行為抽取了5萬條數據作為訓練樣本集,并把他們分成5組,每組數據為10000條,其中normal數據占據整組數據中的98.5%,這一點符合真實環境中正常數據遠遠大于入侵數據的比例。我們首

先檢測一組數據中只有同類的入侵的情況,共4組數據(DOS中的neptune,Proble中的Satan,U2R中的buffer_overflow,R2l中的guess_passwd),再檢測一組數據中有各種類型入侵數據的情況。待分類器得到良好的訓練后,再從KDD99數據中抽取5組數據作為測試樣本,分別代表Noraml-DOS,Normal-Probe,Normal-U2R,Normal-R2L,最后一組為混后型數據,每組數據為1萬條。

4.2數據的預處理

由于樸素貝葉斯有個假定,即假定所有待測屬性對給定類的影響獨立于其他屬性的值,然而現實中的數據不總是如此。因此,本文引入對稱不確定理論來對數據進行預處理,刪除數據中不相關的屬性。

對稱不確定理論是基于信息概念論,首先我們先了解一下信息理論念,屬性X的熵為:

公式(6)

給定一個觀察變量Y,變量X的熵為:

公式(7)

P(xi)是變量X所有值的先驗概率,P(xi|yi)是給定觀察值Y,X的后驗概率。這些隨著X熵的降低反映在條件Y下,X額外的信息,我們稱之為信息增益,

公式(8)

按照這個方法,如果IG(X|Y)>IG(X|Y),那么屬性Y比起屬性Z來,與屬性X相關性更強。

定理:對兩個隨機變量來說,它們之間的信息增益是對稱的。即

公式(9)

對測量屬性之間相關性的方法來說,對稱性是一種比較理想的特性。但是在計算有很多值的屬性的信息增益時,結果會出現偏差。而且為了確保他們之間可以比較,必須使這些值離散化,同樣也會引起偏差。因此我們引入對稱不確定性,

公式(10)

通過以下兩個步驟來選擇好的屬性:

①計算出所有被測屬性與class的SU值,并把它們按降序方式排列;

②根據設定的閾值刪除不相關的屬性。

最后決定一個最優閾值δ,這里我們通過分析NBC和K-NBC計算結果來取值。

4.3實驗結果及分析

在試驗中,以記錄正確分類的百分比作為分類效率的評估標準,表2為兩種算法的分類效率。

表2對應相同入侵類型數據進行檢測的結果

數據集

算法DOS

(neptune)Proble

(satan)R2L

(guess_passwd)U2R

(buffer_overflow)

檢測率誤檢率整體檢測率檢測率誤檢率整體檢測率檢測率誤檢率整體檢測率檢測率誤檢率整體檢測率

NBC99.50.299.7998.30.199.8497.30.899.2951.898.21

K-NBC99.50.299.9698.3099.9697.30.299.81710.199.76

SU+NBC99.5099.9698.30.199.85980.799.2491.198.84

SU+K-NBC99.5099.9698.3099.9698.70.299.76850.199.81

根據表2四組不同類別的入侵檢測結果,我們從以下三個方面分析:

(1)整體檢測率。K-NBC的整體檢測率要比NBC高,這是因為K-NBC在對normal這一類數據的檢測率要比NBC高,而normal這一類數據又占整個檢測數據集數的95%以上,這也說明了在上一節提到的normal類的數據分布曲線更加接近核密度曲線。

(2)檢測率。在對DOS和PROBLE這兩組數據檢測結果,兩個算法的檢測率都相同,這是因為這兩類入侵行為在實現入侵中占絕大部分,而且這一類數據更容易檢測,所以兩種算法的檢測效果比較接近;針對R2L檢測,從表2可以看到,在沒有進行數據預處理之前,兩者的的檢測率相同,但經過數據預處理后的兩個算法的檢測率都有了提高,而K-NBC的效率比NBC更好點;而對U2R的檢測結果,K-NBC就比NBC差一點,經過數據預處理后,K-NBC的檢測率有一定的提高,但還是比NBC的效果差一些。

(3)誤檢率。在DOS和Proble這兩種組數據的誤檢率相同,在其他兩組數據的中,K-NBC的誤檢率都比NBC的低。

根據表3的結果分析,我們也可以看到的檢測結果與表2的分組檢測的結果比較類似,并且從綜合角度來說,K-NBC檢測效果要比NBC的好。在這里,我們也發現,兩種算法對R2L和U2L這兩類入侵的檢測效果要比DOS和Proble這兩類入侵的差。這主要是因為這兩類入侵屬于入侵行為的稀有類,檢測難度也相應加大。在KDD99競賽中,冠軍方法對這兩類的檢測效果也是最差的。但我們可以看到NBC對這種稀有類的入侵行為檢測更為準確一點,這應該是稀有類的分布更接近正態分布。

從上述各方面綜合分析,我們可以證明K-NBC作為的入侵檢測分類算法的是有其優越性的。

表3對混合入侵類型數據進行檢測的結果

數據集

算法整體檢測分類檢測

NormalDosProbleR2LU2R

檢測率誤檢率檢測率誤檢率檢測率誤檢率檢測率誤檢率檢測率誤檢率檢測率誤檢率

NBC98.141.898.20.899.8099.8090086.71.8

K-NBC99.780.299.82.399.8099.8096073.30.1

SU+NBC97.992.0980.899.8099.8090086.71.9

SU+K-NBC99.790.299.81.999.8099.80960800.1

5結論

在本文中,我們用高斯核密度函數代替樸素貝葉斯中的高斯函數,建立K-NBC分類器,對入侵行為進行檢測,另我們使用對稱不確定方法來刪除檢測數據的中與類不相關的屬性,從而進一步改進核密度樸素貝葉斯的分類效率,實驗表明,對預處理后的審計數據,再結合K-NBC來檢測,可以達到更好的分類效果,具有很好的實用性。同時我們也注意到,由于入侵檢測的數據中的入侵行為一般為稀有類,特別是對R2L和U2R這兩類數據進行檢測時,NBC有著比較理想的結果,所以在下一步工作中,我們看是否能把NBC和K-NBC這兩種分類模型和優點聯合起來,并利用對稱不確定理論來刪除檢測數據與類相關的屬性中的冗余屬性,進一步提高入侵檢測效率。

參考文獻

[1]Langley.P.,Iba,W.&Thompson,K.AnanalysisofBayesianclassifiers[A],in“ProceedingsoftheTenthNationalConferenceonArtificialIntelligence”[C]MenloPark,1992.223-228

[2]HanJ.,KamberM..數據挖掘概念與技術[M].孟小峰,等譯.北京:機械工業出版社.2005.196201

[3]JohnG.H..EnhancementstotheDataMiningProcess[D].Ph.D.Thesis,ComputerScienceDept.,StanfordUniversity,1997

[4]LeiYuandHuanLiu.Featureselectionforhigh-dimensionaldata:Afastcorrelation-basedfiltersolution[A],in“ProceedingsoftheTwentiethInternationalConferenceonMachineLearning(ICML2003)”[C]Washington,DC,2003.856-863

[5]KDD99.KDD99CupDataset[DB/OL].http://kdd.ics.uci.edu/databases/kddcup99,1999