莫少慧 古蘭拜爾·吐爾洪 買日旦·吾守爾
(新疆大學信息科學與工程學院 新疆 烏魯木齊 830046)
網絡空間安全已經發展成為海、陸、空之外的另一國家戰場。網絡中融合了政治、軍事、經濟等各方面的信息。一旦網絡空間安全不能得到保證,將會泄露個人甚至國家的隱私[1]。
近年來,隨著大數據和人工智能的興起,計算機行業再一次蓬勃發展起來。人工智能的核心就是機器學習,它具有歸納、綜合的作用。現如今,機器學習算法的應用不僅限于醫療、商業、工業等研究領域,機器學習算法因其有自我學習、自我完善的特性,還能運用在入侵檢測系統(Intrusion Detection System,IDS)。目前已將貝葉斯[2]、K近鄰(K-Nearest Neighbor,KNN)[3]、支持向量機(Support Vector Machine,SVM)[4]、神經網絡[5]等應用在入侵檢測系統中,其本質就是分類和建模的問題。機器學習算法能夠根據其特點,做出科學的判斷和預測,并在該領域得到廣泛的運用[6-7]。
入侵檢測(IDS)中的入侵是指沒有經過某一系統的主人的允許的情況下,通過各種方式進入該系統的行為,相對地,入侵檢測就是對這種入侵行為的察覺,無論是內部或外部攻擊,甚至是誤操作,都會提供實時的防護[8]。入侵檢測技術分為基于主機、基于應用程序、基于網絡三類。基于主機的入侵檢測技術依賴于要安裝在主機上的IDS系統的本地客戶端或代理,然后尋找是否有在主機邏輯內容或主機活動中惡意更改的行為。基于應用程序的入侵檢測技術僅在應用程序范圍內檢測應用程序運行方式的所有內容。基于網絡的入侵檢測技術則將涉及網絡或子網絡上的所有設備,這部分檢測因為各種范圍等原因,常會有錯漏現象。
呂峰等[9]提出將KNN算法運用在入侵檢測領域。文獻[10]表明KNN算法在入侵檢測系統有著更好的檢測結果,非常適合運用到入侵檢測中。它具有用于非線性分類,不假設數據分布、準確度高、對邊緣點不敏感等優點。但在樣本不均衡中的預測效果相對較差,還有一點是k值的選擇不具有客觀性,不易選到最優值。而在入侵檢測數據中,數據不平衡是最常見的情況。所以,自從將KNN算法運用到入侵檢測領域,相關研究人員們紛紛都對KNN算法進行了各種優化和改進,比如:張浩[11]引入了密度峰值的概念,并有效地緩解了樣本不平衡的問題,對于監視和其他探測活動(Probe)類型和正常(Normal)類型的數據的辨別上有著極強的準確率;江澤濤等[12]利用主成分分析混合(Principal Component Analysis mix,PCA)進行降維,針對樣本的高維問題,加快了算法的計算效率。
但這些改進算法還是存在缺陷,密度峰值最近鄰算法不能有效檢測U2R攻擊,PCA降維方法僅能運用在連續型數據中,而網絡環境下的大多數入侵檢測數據都是由離散型和連續型組成的混合數據。本文對于這些問題,綜合了國內外的相關研究,優化了KNN算法:針對樣本的高維、混合問題,利用主成分分析混合(Principal Component Analysis mix,PCA mix)[13]進行降維;對于大樣本、多分類的數據集,使用單類分類的方法[14]的其緊湊性和描述性的特點,結合均值[12]的概念,提出了一種單類分類KNN均值算法,使其不會過分受制于參數的取值,以至于準確率偏差過大;對于算法的準確性,利用了百分位數Bootstrap(PB)方法[15]對決策邊界進行選擇;與在入侵檢測領域應用最廣泛的單類分類方法——單類分類支持向量機(One Class Support Vector Machine,OCSVM)作對比,對本文改進算法的優越性進行驗證。
傳統的KNN算法是分類或回歸的無參數學習。它屬于懶惰學習,也就是無須訓練階段。其核心思想是用每個樣本周圍最近的k個鄰居來代表該樣本。若假設k=5,用實心圓表示要被代表的樣本,用乘號和三角形代表兩種不同類別的樣本,如圖1所示,被代表的實心圓會被分為乘號的類中。

圖1 KNN分類器示意圖
傳統的KNN算法有三個關鍵點:選擇k值、距離計算方式以及分類方法[16]。k值一般是不大于20的正整數,基本為奇數。k值的選擇具有極強的主觀性,是直接輸入的,所以k值非常不容易選到關鍵數值。而k值一旦偏差,會帶來較大的誤差,影響實驗結果。
傳統的KNN算法常用的計算距離的方式有:歐幾里得距離、曼哈頓距離、余弦值、相關度等。本文使用歐幾里得距離,并計算其均值,大大減少了實驗結果的偏差幅度。歐幾里得距離計算如下:
(1)
式中:x1i表示矩陣中第1列第i行的數。
SVM算法是分類或回歸的有參數學習[17]。其核心思想是盡可能地利用一個超平面將不同類別的樣本分割開來,并且將兩種類型的樣本分割得越遠越好[18]。其原理表示大致如圖2所示,假設它們的間距為d。

圖2 SVM算法原理示意圖
對于不平衡數據來說,要想分類不同類型的樣本,采用OCSVM算法是一種不錯的選擇[19]。簡單來說,OCSVM算法就是只使用其中一類樣本來建立模型,然后預測兩種類別的樣本[20]。假設原點到超平面的最大距離為d,其大致原理如圖3所示。

圖3 OCSVM算法原理示意圖
PCA mix算法包括主成分分析(Principal Component Analysis,PCA)和多重對應分析(multiple correspondence analysis,MCA),是對定性變量和定量變量混合描述的一組個體(觀察值)執行主成分分析[18]。換句話說,就是直接對于離散數據和連續數據組合而成的混合數據的主成分分析。PCA mix算法對離散數據進行量化矩陣計算,然后將該矩陣與連續數據矩陣連接起來進行主成分分析。此過程的目的是減少描述問題的變量數量[21]。
PCA算法是一種連續型數據的降維算法,其算法思路主要是:數據從原來的坐標系轉換到新的坐標系,由數據本身決定。這是一種使用正交變換將一組可能相關變量的觀測值轉換為一組稱為主成分的線性不相關變量的值的統計過程[22]。
具體來說,PCA算法先對所有樣本去中心化,即取m個樣本:
(2)
然后計算樣本的協方差矩陣,再對協方差矩陣做特征值分解,取最大的j個特征值所對應的特征向量:ω1,ω2,…,ωj,最后將原樣本投影到新坐標上。具體取幾個特征值則要看降到的低維空間的維數,幾維的低維空間就取幾個特征值,這個維數通常是用戶事先指定的[23]。
MCA算法是對應分析(CA)的一個擴展,用于分析若干相關類別變量的關系模式,在統計過程控制(Statistical Process Control,SPC)中稱為屬性特征。MCA算法是基于最優尺度變換的多重對應分析,是以點的形式在較低維度的空間中表示聯列表的行與列中各元素的比例結構。能夠更加直觀地分析定性變量中多種狀態間之間的相互關系[24]。當觀察結果是分類的時,MCA算法可被視為PCA算法的一個推廣。因此,可將PCA mix算法作為PCA和MCA的組合來處理不同類型的質量特性。
大多數數據分析方法多年來只專注于純定量數據或純定性數據的處理。PCA mix方法可直接處理離散數據和連續數據組合而成的混合數據,使得PCA mix方法在實際應用中非常有用,因為它可以從混合變量中提取相關信息,并且在數據庫混合時不需要單獨研究純定量或定性變量,這對人們處理混合數據庫提供了極大的方便,并節約了大量的時間。
具體的PCA mix算法如下所示[21]:設有一個n×m的樣本矩陣A,n是矩陣中樣本的個數,m是每個樣本的總特征數。并且該樣本矩陣中有k種不同的標簽。設這m個特征中有a個連續型特征,b個離散型特征。即:
m=a+b
(3)
那么用矩陣B1表示n×a的連續型特征矩陣,矩陣B2表示n×b的離散型特征矩陣。
首先,使用矩陣K中心化連續矩陣B1為矩陣Z1,離散矩陣B2為矩陣Z2:
(4)
式中:En為單位矩陣;X=(1,1,…,1)T,一共有n個1。
然后計算離散矩陣B2中的每個特征與不同標簽的相關性比例,并用對角矩陣D表示,假設第i個離散特征的不同標簽的相關性比例矩陣為Di,則對角矩陣D為:
D=diag(D1,D2,…,Dk)
(5)
最后合并連續矩陣和離散矩陣為Y。
(6)
式中:Y1是中心化后的連續矩陣;Y2是經式(7)處理過后的連續矩陣。
(7)
在傳統的KNN算法上應用均值計算,使改進算法不會受到樣本之間可能出現的距離偏差太大的影響,具體方法如下:假設k=5,用實心圓表示要被代表的樣本,用乘號和三角形代表兩種不同類別的樣本,如圖4所示,被代表的實心圓會被分在乘號的類中,并用式(8)計算實心圓到周圍乘號的均值。
d=(d1+d2+d3)/3
(8)
因為傳統的KNN算法對于數據不平衡的樣本有著嚴重的缺陷,所以本文在KNN均值算法的基礎上加入了單類分類的方法,針對數據不平衡的數據集,期望能得到較好的實驗結果。
單類分類KNN均值算法就是在訓練時僅使用正樣本作為訓練樣本,并計算每個樣本周圍k個樣本到該樣本的距離的均值,然后使用百分位數Bootstrap計算訓練樣本的距離的均值的決策邊界,并去除1%以下和99%以上的極端值,存儲到數組C={C1,C2,…,Cj}中。

圖4 KNN均值分類器示意圖
接著,計算測試樣本中正樣本到訓練樣本的距離的均值D={D1,D2,…,Dl}和測試樣本中負樣本到訓練樣本的距離的均值E={E1,E2,…,Em},讓這些距離的均值與數組C中的值作對比,進行預測:
(9)
不同于原來的KNN算法,修改后的算法是半監督學習算法,原算法是監督學習算法。
本文改進算法具體如下所示:
輸入:降維后的n個訓練樣本R;降維后的m個測試樣本S;最近鄰個數k。
輸出:m個測試樣本的分類。
1) 計算訓練樣本R中ri到自身最近k個點的均值歐氏距離;
2) 用百分位數Bootstrap計算1)中得到的n個距離,得到j個決策邊界;
3) 計算測試樣本S中si到訓練樣本R中最近的k個點的均值歐氏距離;
4) 用3)中得到的m個距離與2)中得到的j個決策邊界作對比得到預測分類結果,如式(9)所示。
Bootstrap方法是無模型的方法,以原始樣本作為總體來進行重采樣,無須預先了解參數分布,以此無限逼近最佳組合[26]。換句話說,就是Bootstrap方法對數據分布不要求,適用于所有的數據集,是計算決策邊界的極佳方法。
估計置信區間的Bootstrap一共有四種方法:標準Bootstrap(SB)、百分位數Bootstrap(PB)、t百分位數Bootstrap(PTB)和修正偏差后的百分位數Bootstrap(BCPB)[27]。本文采用百分位數Bootstrap(PB)方法來估計單類分類KNN均值算法的決策邊界。利用Bootstrap計算置信區間的經驗分布的方法,計算(1-α)的quantile值,最終找出最佳的決策邊界,達到分類效果最佳的目的。
綜合前面各節,本文算法的算法流程如圖5所示。

圖5 本文實驗整體流程
3.1.1特征提取
KDDCUP99數據集共有41個特征,其中有9個離散型特征,32個連續型特征。由于本文采取kddcup.data_10_percent文件,所以,“is_hot_login”、“wrong_fragment”、“num_outbound_cmds”這三個特征由于相同值太多,沒有太大意義,被去除。所以真正參加實驗的是8個離散型特征、30個連續型特征,共38個混合特征。
NSL-KDD數據集共有41個特征,其中有9個離散型特征,32個連續型特征。同樣,由于選取KDDTrain+文件,文件中的“is_hot_login”、“wrong_fragment”、“num_outbound_cmds”這三個特征由于相同值太多,沒有太大意義,被去除。真正參加實驗的是8個離散型特征、30個連續型特征,共38個混合特征。
UNSW-NB15數據集共有45個特征,其中有5個離散型特征,40個連續型特征。本文選取的是專門被處理用來進行入侵檢測的UNSW_NB15_training-set文件,除了文件中“is_sm_ips_ports”的特征由于相同值太多,沒有太大意義,被去除之外,“id”與“attack_cat”都是因為在實驗中無意義,所以被去除。真正參加實驗的是4個離散型特征、38個連續型特征,共42個混合特征。
3.1.2特征值轉化
實驗中為了方便起見,將所有特征的特征值都轉換為數字。具體情況如表1所示。

表1 特征值轉換
對于數據集中少量的缺失值,本文采用缺失值均值填補的方式進行填補。
PCA mix降維方法能直接使混合數據集數據降維,所以對于PCA mix降維方法,數據集僅需將離散型特征轉換為字符類型,將連續型特征標準化。若要使用傳統的PCA降維方法[28],由于該方法僅適用于連續型特征,所以需將離散型特征強制轉換為數值類型,這種轉換可能導致原有的數據里的信息丟失,有著一定的缺陷。
3.1.3降維處理
現將全部樣本分別通過PCA mix方法和PCA方法進行降維。然后通過欠采樣的方法,分別從PCA mix降維后的數據和PCA降維后的數據中抽取樣本進行實驗。其中,KDDCUP99數據集抽取2 431個正樣本作為訓練樣本,再抽取2 371個正樣本作為測試樣本中的正樣本,2 380個負樣本作為測試樣本中的負樣本;NSL-KDD數據集抽取2 357個正樣本作為訓練樣本,再抽取2 339個正樣本作為測試樣本中的正樣本,2 345個負樣本作為測試樣本中的負樣本;UNSW-NB15數據集抽取2 405個正樣本作為訓練樣本,再抽取2 387個正樣本作為測試樣本中的正樣本,2 357個負樣本作為測試樣本中的負樣本。
本文采用的單類分類算法,在訓練模型時僅需選擇一個類型的樣本進行訓練,樣本類型并不強制。所以,實驗選擇的是正樣本作為訓練樣本。
對于入侵檢測方法的學習器的泛化能力的評估,通常使用錯誤率、精度、P-R曲線、ROC曲線、AUC圖等方法進行評估。本文實驗中我們使用混淆矩陣、P-R曲線和ROC曲線對算法結果進行評估。
3.2.1混淆矩陣
混淆矩陣是統計真實標記和預測結果的組合。當真實標記為正樣本時,且預測出來也是正樣本時,叫作真正例,用TP表示這類情形的樣本個數,當預測結果為負樣本時,叫作假反例,用FN表示這類情形的樣本個數;當真實標記為負樣本時,且預測出來也是負樣本時,叫作真反例,用TN表示這類情形的樣本個數,當預測結果為正樣本時,叫作假正例,用FP表示這類情形的樣本個數。其形式如表2所示。

表2 混淆矩陣
這四種情形的樣本個數加起來的總和為樣本總數。通過混淆矩陣,可以計算出該分類器的精確率P、召回率R、準確率Accuracy等一系列比較標準。
(10)
(11)
(12)
3.2.2P-R曲線
P是指查準率,R是指查全率,橫軸是查全率,縱軸是查準率。P=TP/(TP+FP),R=TP/(TP+FN)。通過學習器對測試樣本的預測結果與實際結果進行對比,可將對比結果分為四類:TP、FN、FP、TN。通過不同的學習器的P-R曲線進行對比,可根據是否被“包住”,就能判斷出哪一個學習器的學習效果好。若兩者交叉,可通過對比由平衡點轉化來的F1值來判斷。F1值越高,效果越好。
(13)
3.2.3ROC曲線
ROC(Receiver Operating Characteristic)曲線的橫軸是假正例率、縱軸是真正例率。假正例率=TP/(TP+FN),真正例率=FP/(FP+TN)。通過不同的學習器的ROC曲線進行對比,可根據是否被“包住”,就能判斷出哪一個學習器的學習效果好。若兩者交叉,便難以分辨。但可以通過比較ROC曲線下的面積AUC來判斷優劣。
本實驗采用2.6 GHz的CPU、4.0 GB的RAM、裝有Window 7系統的電腦配置。使用R軟件編寫代碼,將KDDCUP99的數據集作為實驗數據,使用R語言實現了PCA mix降維后的單類分類KNN均值算法,同時對比了PCA mix降維后的OCSVM算法。
根據PCA mix降維后的散點的分布圖,發現維度降到15以內的各個散點分布圖的差別不大,所以主要的維度取值確定權在PCA方法中。再根據PCA降維后的訓練樣本的組成的重要性占比對比,訓練樣本在組成數為12時,KDDCUP99數據集的重要性占比已經達到了71.124 721%,NSL-KDD數據集的重要性占比已經達到了70.244 561%,UNSW-NB15數據集的重要性占比已經達到了100%,如表3所示。最終綜合三個數據集的PCA mix和PCA的情況,選定降維的維度為12。

表3 PCA降維后的組成部分的重要性占比對比
取不同的k值,如k=3,5,7,…,19,通過對比它們的F1值的情況,最終選定在單類分類KNN均值算法中的k取5時,分類效果最好。
4.2.1KDDCup99數據集
KDDCUP99數據集是在第五屆知識發現和數據挖掘國際會議KDD-99聯合舉辦的第三屆國際知識發現和數據挖掘工具競賽所使用的數據集,含有模擬美國軍事網絡環境中的各種入侵[29]。整個KDDCup99數據集分為有標識的訓練數據集和無標識的測試數據集。KDDCup99數據集的訓練數據集有4 898 461個,總共可被分為兩大種類型:正常和攻擊。其中,攻擊又可被分為4種類型的攻擊:DOS、Probe、R2L、U2R。
本文選取原本訓練數據集的10%,即kddcup.data_10_percent文件作為實驗數據集。本數據集屬于高維混合數據集。有41個特征屬性,其中有32個連續型特征,9個離散型特征。此外,同時包含了原數據集的各種攻擊類型:4種大攻擊類別和22種小攻擊類別。在整個訓練數據中,正常的數據約為19.85%,剩下的都為攻擊數據,攻擊數據與正常數據的相差比例高達近4 ∶1,數據極其不平衡,并且在攻擊的數據中,各種攻擊類型的數據比例也極為不平衡,具體情況如表4所示。

表4 KDDCUP99數據集
4.2.2NSL-KDD數據集
KDDCUP99數據集有不少缺陷,如:其訓練集的攻擊數據包中沒有生存時間值(TTL)為126和253,不符合現實的網絡情況;攻擊類型不全面,無法代表現實的網絡環境;數據集中數據冗余,會影響分類器的分類結果。
NSL-KDD數據集的提出,解決了KDDCUP99數據集存在的一些問題:對正負樣本的比例進行了合適的選擇;訓練集和測試集的樣本數量更加合理;除去了KDDCUP99數據集中的冗余數據。
雖然NSL-KDD數據集仍不能完美地反映現實的網絡環境,但在缺少基于網絡的公開的入侵檢測數據集的情況下,其還是能夠作為一個幫助研究人員對比不同的入侵檢測方法的有效的基準數據集。
本文選取原本數據集處理過后的KDDTrain+文件作為實驗數據集,屬于高維混合數據集。有45個特征屬性,其中有40個連續型特征,5個離散型特征。此外,同時包含了原數據集的各種攻擊類型(4大攻擊類別)。在整個訓練數據中,正常的數據約為53.45%,剩下的都為攻擊數據,攻擊數據與正常數據的相差較不平衡,且在攻擊的數據中,各種攻擊類型的數據比例極為不平衡,具體情況如表5所示。

表5 NSL-KDD數據集
4.2.3UNSW-NB15數據集
UNSW-NB15數據集是在2015年由澳大利亞網絡安全中心(ACCS)模擬顯示網絡環境生成的一個新的數據集,數據集中包括現代正常的數據和9大類攻擊的流量數據。UNSW-NB15數據集包含了新型的隱蔽攻擊方式,能完全代表現實網絡環境下的真實情況。
UNSW-NB15數據集的訓練數據集有82 332個,總共可被分為兩大種類型:正常和攻擊。其中,攻擊又可被分為9種類型的攻擊:溢出攻擊(Fuzzers)、滲透攻擊(Analysis)、后門攻擊(Backdoors)、拒絕服務攻擊(DOS)、漏洞攻擊(Exploits)、哈希函數針對攻擊(Generis)、探針攻擊(Reconnaissance)、軟件漏洞攻擊(Shellcode)、蠕蟲攻擊(Worms)。
本文選取原本數據集處理過后的UNSW-NB15 Training Set文件作為實驗數據集,屬于高維混合數據集,有45個特征屬性,其中有40個連續型特征,5個離散型特征。此外,同時包含了原數據集的各種攻擊類型(9大攻擊類別)。在整個訓練數據中,正常的數據約為44.94%,剩下的都為攻擊數據,攻擊數據與正常數據的相差較不平衡,且在攻擊的數據中,各種攻擊類型的數據比例極為不平衡,具體情況如表6所示。

表6 UNSW-NB15數據集
4.3.1對比算法
本文改進算法是單類分類方法下的改進算法,近年來,國內在入侵檢測領域的單類分類方法僅有OCSVM算法,所以使用OCSVM算法與本文改進算法作對比。為對比PCA mix降維后的OCSVM算法和本文改進算法的分類效果,可以通過對比它們的混淆矩陣、準確率、ROC曲線和AUC值來得出結論。
其混淆矩陣的對比結果如表7所示,準確率對比結果如表8所示。在PCA mix降維之后,三個數據集的單類分類KNN均值算法的分類效果都遠好于OCSVM算法:KDDCUP99數據集的準確率相差4.33%,NSL-KDD數據集的準確率相差2.94%,UNSW-NB15數據集的準確率相差16.1%。

表7 PCA mix降維后算法的混淆矩陣對比結果

表8 PCA mix降維后算法的準確率對比(%)
本文使用Bootstrap方法確定決策邊界,取α值從0.01~0.99總共99個決策邊界,每個決策邊界都會有不同的預測結果。根據這一特點,能夠畫出P-R曲線,并算出F1值。
通過計算F1值,比較出最好的取值,并選用這個值繪制該算法最佳的ROC曲線和計算其AUC值。
根據F1值,可以得到混淆矩陣,畫出PCA mix降維后的單類分類KNN均值算法的ROC曲線,并與PCA mix降維后的OCSVM算法的ROC曲線作對比,如圖6所示。虛線代表的是PCA mix降維后的單類分類KNN均值算法,直線代表的是PCA mix降維后的OCSVM算法,三個數據集的ROC曲線對比圖中,虛線都“包括了”直線,說明PCA mix降維后的單類分類KNN均值算法的分類效果更好。

(a) KDDCUP99

(b) NSL-KDD

(c) UNSW-NB15圖6 PCA mix降維后的兩種算法的ROC曲線對比
同樣,通過圖7的AUC值對比,也能得出PCA mix降維后的單類分類KNN均值算法的分類效果遠好于PCA mix降維后的OCSVM算法。

圖7 PCA mix降維后的兩種算法的AUC值對比
根據兩種算法的混淆矩陣、準確率、ROC曲線和AUC值的對比結果,可得出本文改進的單類分類KNN均值算法的分類效果遠好于OCSVM算法。
4.3.2對比降維方法
對比PCA降維后的單類分類KNN均值算法和PCA mix降維后的單類分類KNN均值算法的散點分布圖、混淆矩陣、準確率、P-R曲線、F1值、ROC曲線和AUC值。得出PCA mix降維后的單類分類KNN均值算法比PCA降維后的單類分類KNN均值算法的分類效果好。
單類分類KNN均值算法兩種降維方法的散點分布如圖8所示。為方便查看,本散點圖每種樣本僅選用了近500個,完全按照原本的抽取比例進行抽取。用乘號代表負樣本到訓練樣本的距離,用三角形代表正樣本到訓練樣本的距離。可以看出,PCA降維后的數據分類過于緊湊,并且沒有完全分類好;而PCA mix降維后的數據分類比較寬松。PCA mix降維后的數據明顯比未降維時的數據的分類效果更好。特別是UNSW-NB15數據集的散點分布情況,更具有對比效果。

(a) KDDCUP99:PCA降維后

(b) KDDCUP99:PCA mix降維后

(c) NSL-KDD:PCA降維后

(d) NSL-KDD:PCA mix降維后

(e) UNSW-NB15: PCA 降維后

(f) UNSW-NB15: PCA mix降維后圖8 兩種降維方法的單類分類KNN均值的散點分布
這兩種處理方法的混淆矩陣如表9所示,準確率對比如表10所示,在同樣使用單類分類KNN均值算法的情況下,PCA mix降維后的單類分類KNN均值算法的分類效果都遠好于PCA降維后的單類分類KNN均值算法:KDDCUP99數據集的準確率相差0.65%,NSL-KDD數據集的準確率沒有差別,UNSW-NB15數據集的準確率相差29.22%。

表9 單類分類KNN均值算法的混淆矩陣對比結果

續表9

表10 單類分類KNN均值算法的準確率對比(%)
如圖9所示,用線段代表PCA mix降維后的P-R曲線,用直線代表PCA降維后的P-R曲線。可以看出三個數據集的P-R曲線都彼此相交,并不能夠直觀地確定哪種降維方法更好,但可以通過對比它們的F1值來比較兩種降維方法的分類效果。

(a) KDDCUP99

(b) NSL-KDD

(c) UNSW-NB15圖9 兩種降維方法單類分類KNN均值算法的P-R曲線對比
從表11可看出,三個數據集的PCA mix降維后的F1值的最大值都要略大于PCA降維后的F1值的最大值:KDDCUP99數據集的F1值相差0.682 478%,NSL-KDD數據集的F1值相差0.076 259%,UNSW-NB15數據集的F1值相差21.415 414%,所以PCA mix的降維方法略佳。

表11 單類分類KNN均值算法的F1值對比
再對比圖10中ROC曲線,用點代表PCA mix降維后的單類分類KNN均值算法,用線段代表PCA降維后的單類分類KNN均值算法。圖10中的兩個曲線呈現交叉的狀態,無法直觀地對比兩者的分類效果,所以通過對比AUC值來得出結論。

(a) KDDCUP99

(b) NSL-KDD

(c) UNSW-NB15圖10 兩種降維方法的單類分類KNN均值的ROC對比
根據表12的AUC值的對比,發現三個數據集的PCA mix降維后的算法的分類效果都要好于PCA降維后的算法:KDDCUP99數據集的AUC值相差0.655 4%,NSL-KDD數據集的AUC值相差0.001 7%,UNSW-NB15數據集的AUC值相差31.468 24%。

表12 兩種降維方法的單類分類KNN均值的AUC值對比
本文采用了OCSVM和單類分類KNN均值兩種算法對三個入侵檢測系統數據集進行處理,并采用PCA mix與PCA兩種降維方法分別對數據集進行降維。最終得到的結果證明PCA mix的降維效果要好于PCA的降維效果,本文改進的單類分類KNN均值算法優于OCSVM算法。
本文的改進算法能有效地處理具有高維、混合以及不平衡等特性的入侵檢測數據,彌補了傳統的機器學習算法的缺陷,為進一步實現對現實網絡的實時監控提供了階梯。并且本文的改進算法在UNSW-NB15數據集效果最好,說明本文的改進算法更適應于當代的網絡情況。
然而,本文改進算法的計算復雜度并未降低,未來將進一步改進算法以降低計算復雜度,使其達到能夠對現實的網絡情況實時監控。