周 燕,肖 莉
(華南農(nóng)業(yè)大學(xué) 數(shù)學(xué)與信息學(xué)院,廣東 廣州 510642)
網(wǎng)絡(luò)異常數(shù)據(jù)挖掘能夠在海量網(wǎng)絡(luò)用戶行為數(shù)據(jù)中分析出有價值信息[1],用以評估網(wǎng)絡(luò)環(huán)境的安全性并有針對性地阻擋黑客入侵行為。K-means算法(K均值算法)簡單易懂、收斂速度快、執(zhí)行效率高,在數(shù)據(jù)分析與模式識別等領(lǐng)域應(yīng)用廣泛[2]:杜佳穎等針對K-means算法中心隨機性選取導(dǎo)致的收斂效果差的問題進行改進[3],采用K-means++選擇K-means算法的初始中心點,聚類劃分質(zhì)量大幅提升;解濱等對K-means算法固定k值問題改進[4],通過動態(tài)閾值調(diào)整優(yōu)化算法聚類數(shù)量,數(shù)據(jù)攻擊類型逐漸增多、攻擊行為較為復(fù)雜環(huán)境下檢測率和誤檢率理想。關(guān)聯(lián)規(guī)則算法可挖掘出網(wǎng)絡(luò)數(shù)據(jù)中異常數(shù)據(jù)特征量:楊光輝等使用改進IAA算法識別網(wǎng)絡(luò)入侵[5],使用Map-Reduce并行技術(shù)與矩陣加強Apriori算法的并行處理能力,產(chǎn)生關(guān)聯(lián)規(guī)則的效率更高、用時較短。王婷等基于無監(jiān)督學(xué)習(xí)聚類方法Bi-kmeans對網(wǎng)絡(luò)流量新特征值向量進行聚類,得到未知攻擊類型判別糾正項[6],獲取初始化深度神經(jīng)網(wǎng)絡(luò)的權(quán)重值預(yù)判結(jié)果,對比未知攻擊類型判別糾正項與預(yù)判結(jié)果完成網(wǎng)絡(luò)攻擊行為判定。
結(jié)合以上研究本文提出一種改進關(guān)聯(lián)聚類算法挖掘網(wǎng)絡(luò)用戶數(shù)據(jù)異常與否,改進關(guān)聯(lián)規(guī)則算法用于提取網(wǎng)絡(luò)數(shù)據(jù)的特征量,改進K-means算法將網(wǎng)絡(luò)數(shù)據(jù)劃分為異常數(shù)據(jù)與非異常數(shù)據(jù)兩個類別,最終取得了理想的應(yīng)用效果。
1.1.1 基于關(guān)聯(lián)規(guī)則的網(wǎng)絡(luò)數(shù)據(jù)特征量提取原理
Apriori算法通過發(fā)掘數(shù)據(jù)之間的關(guān)聯(lián)性表達某事物多個屬性同時出現(xiàn)的規(guī)律,操作過程簡單、容易理解、對數(shù)據(jù)要求較低。以網(wǎng)絡(luò)數(shù)據(jù)為樣本基于改進Apriori算法挖掘異常特征數(shù)據(jù)關(guān)聯(lián)規(guī)則,強關(guān)聯(lián)規(guī)則挖掘條件如下:支持度大于最小支持度閾值、置信度大于最小置信度閾值[7,8],由這些強關(guān)聯(lián)規(guī)則構(gòu)成網(wǎng)絡(luò)異常數(shù)據(jù)挖掘的數(shù)據(jù)庫[9]。
Apriori算法挖掘網(wǎng)絡(luò)異常數(shù)據(jù)特征量過程中,定義m個差異性異常特征量項目的集合為I,I={i1,i2,…,im}, 項目即為其中的一個ik,項集是項目構(gòu)成的集合。定義網(wǎng)絡(luò)異常數(shù)據(jù)庫的全部事務(wù)集合為數(shù)據(jù)集D,一個事務(wù)用非空項集T描述,即事務(wù)T,多個項目組構(gòu)成了非空項集即一個事務(wù)。定義事務(wù)T中的兩個項集為X和Y,則存在X?T,Y?T; 如果X和Y均不為空集,同時X∩Y=?, 那么X?Y可以構(gòu)成事務(wù)集D中的一條關(guān)聯(lián)規(guī)則。
支持度與置信度是衡量關(guān)聯(lián)規(guī)則強度的兩個關(guān)鍵變量[10],事務(wù)數(shù)據(jù)集D內(nèi)同時并存X與Y項集的事務(wù)數(shù)量與事務(wù)總數(shù)的百分比值即為支持度,此處使用support(X?Y) 表示;事務(wù)數(shù)據(jù)集D內(nèi)同時并存X與Y項集的事務(wù)數(shù)量與包含事務(wù)數(shù)量的百分比值即為置信度,采用confidence(X?Y) 表示。式(1)與式(2)分別為支持度與置信度的計算方法
support(X?Y)=P(X∪Y)
(1)
confidence(X?Y)=P(Y|X)
(2)
網(wǎng)絡(luò)異常數(shù)據(jù)特征量挖掘的強關(guān)聯(lián)規(guī)則確定要同時滿足最小支持度與最小置信度的預(yù)設(shè)標(biāo)準(zhǔn)。前者是評估支持度與項集頻率的閾值,項集出現(xiàn)的最低頻率使用最小支持度來評估[11],用min_sup表示,取值在0~1之間;關(guān)聯(lián)規(guī)則的最低可靠性可通過最小置信度min_conf來評價,最小置信度的取值在0~1之間。而網(wǎng)絡(luò)異常數(shù)據(jù)特征量挖掘的強關(guān)聯(lián)規(guī)則就是要同時滿足預(yù)設(shè)的最小支持度與最小置信度。
1.1.2 基于Spark的并行化頻繁項集挖掘環(huán)境設(shè)計
Apriori算法經(jīng)過多次迭代掃描工作量較大,為系統(tǒng)運行造成極大負(fù)擔(dān)。為進一步優(yōu)化Apriori算法挖掘強關(guān)聯(lián)規(guī)則的性能,采用基于項編碼和Spark計算框架的Apriori并行化方法[12],實現(xiàn)Apriori算法的分布式頻繁項集挖掘。分布式頻繁項集挖掘算法包含兩個步驟:
步驟1 應(yīng)用廣播變量存儲頻繁項集。掃描數(shù)據(jù)集生成頻繁1項集后將其視為頻繁k項集存入Spark的廣播變量。為了降低數(shù)據(jù)訪問的頻次,令所有節(jié)點均可共享Spark集群廣播變量,此處使用項編碼策略,即使用單個項集與其對應(yīng)編碼創(chuàng)建鍵值對,所占據(jù)的存儲空間比存儲完整數(shù)據(jù)集占據(jù)空間小得多[13,14],此處設(shè)計可以大量降低頻繁項集挖掘的時間開銷與內(nèi)存消耗。
步驟2 求取并輸出頻繁項集k+1。循環(huán)迭代,各迭代過程中,節(jié)點k+1項集與編碼的計算采用并行化策略實現(xiàn),剪枝完成后將不符合支持度條件的k+1項集刪除,從而獲取頻繁k+1項集;廣播變量中的頻繁k項集使用上一步驟生成的頻繁k+1項集代替,之后的迭代計算中終止條件為:不生成符合支持度條件的深層次頻繁項集。
為頻繁項集編碼策略顯著減少計算機存儲空間用量,在Spark計算框架展開的并行化頻繁項集計算有效節(jié)約關(guān)聯(lián)規(guī)則挖掘時間,改進Apriori算法減少了傳統(tǒng)算法挖掘強關(guān)聯(lián)規(guī)則的內(nèi)存開銷與時間復(fù)雜程度,為后期K-means算法實現(xiàn)網(wǎng)絡(luò)異常數(shù)據(jù)聚類提供有力條件。
1.1.3 基于興趣度約束與支持度自適應(yīng)更新的強關(guān)聯(lián)規(guī)則提取
傳統(tǒng)Apriori算法提取網(wǎng)絡(luò)異常數(shù)據(jù)特征量的過程中產(chǎn)生的候選集規(guī)模較大,頻繁掃描數(shù)據(jù)庫才能求取算法的支持度和置信度,前者提升了算法的內(nèi)存占用量,后者提升了算法的時間復(fù)雜度[15],為此通過以下兩種方式改進Apriori算法提取異常數(shù)據(jù)特征量的弊端。
(1)興趣度約束?;谥С侄扰c置信度的關(guān)聯(lián)規(guī)則篩選架構(gòu)存在諸多漏洞:網(wǎng)絡(luò)數(shù)據(jù)樣本事務(wù)集中一部分有價值數(shù)據(jù)因為其支持度不高而被自動過濾,置信度忽視了規(guī)則后項項集在事務(wù)集中的支持度,由此獲取的網(wǎng)絡(luò)異常數(shù)據(jù)關(guān)聯(lián)規(guī)則并非完全是感興趣的。參考郭鵬等的研究引入興趣度輔助Apriori算法構(gòu)造關(guān)聯(lián)規(guī)則[16],初步獲取頻繁項集后基于興趣度閾值深入篩選有價值的頻繁項集[17]。在規(guī)則X->Y中,項集X與項集Y間的相關(guān)程度即為興趣度,定義興趣度閾值為1,式(3)為項集X與項集Y興趣度的計算方法
(3)
其中,興趣度大于1情況下項集X與項集Y為正相關(guān)關(guān)系,興趣度小于1情況下項集X與項集Y為負(fù)相關(guān)關(guān)系;前者代表若X發(fā)生則提高Y發(fā)生的幾率,后者代表若X發(fā)生則降低Y發(fā)生的幾率;興趣度值恰好為1說明兩個項集之間無相關(guān)性。
定義輸入數(shù)據(jù)集為D,基于興趣度的Apriori算法執(zhí)行步驟為:
步驟1 輸入支持度、置信度閾值與興趣度三者的閾值;
步驟2 掃描數(shù)據(jù)庫D獲取全部出現(xiàn)過的數(shù)據(jù),將其視為候選頻繁1項集,此刻k=1,那么頻繁0項集則為空集;
步驟3 挖掘頻繁k項集;
步驟4 設(shè)置k=k+1,執(zhí)行步驟3;
步驟5 基于頻繁項集構(gòu)造提取網(wǎng)絡(luò)異常數(shù)據(jù)特征量的規(guī)則,這些規(guī)則符合預(yù)設(shè)的置信度閾值與興趣度閾值。
最后,將滿足標(biāo)準(zhǔn)的網(wǎng)絡(luò)異常數(shù)據(jù)特征量提取規(guī)則輸出。
興趣度在關(guān)聯(lián)規(guī)則挖掘中的應(yīng)用可以避免出現(xiàn)冗余的候選關(guān)聯(lián)規(guī)則,使得頻繁項集初步生成且未同最小置信度對比的關(guān)聯(lián)規(guī)則數(shù)量有效精簡,這樣再進行置信度閾值判斷時能夠保障待判定關(guān)聯(lián)規(guī)則存在現(xiàn)實意義。
(2)支持度自適應(yīng)更新策略。較長的數(shù)據(jù)往往存在更多的特征量,存在異常數(shù)據(jù)的可能性相對較大,傳統(tǒng)Ap-riori算法以固定值的方式設(shè)置支持度,其缺點是頻繁項集隨著項數(shù)k的增加而快速減少,獲取較長的網(wǎng)絡(luò)用戶數(shù)據(jù)的難度較大[18,19]。為避免這一弊端提出支持度自適應(yīng)更新機制,設(shè)置支持度隨著數(shù)據(jù)長度的增加自適應(yīng)降低,提高選擇異常數(shù)據(jù)的靈敏程度。定義改進Apriori算法的初始支持度為V0=sup,調(diào)整參數(shù)定義為ε,增加頻繁項集中項目數(shù)量并降低支持度[20],基于式(4)計算迭代第k次時的支持度
Vk=sup*ε*exp(-g)
(4)
上述情況中支持度會隨著迭代次數(shù)的增加而降低,并且在特定數(shù)值時趨于穩(wěn)定,這樣低頻并且關(guān)鍵性的信息被保留下來。
改進K-means聚類算法分類網(wǎng)絡(luò)數(shù)據(jù)類型過程中通過一個主聚類與多個小分離聚類劃分非異常網(wǎng)絡(luò)數(shù)據(jù)和異常網(wǎng)絡(luò)數(shù)據(jù),小分離聚類的特點是與主聚類距離較大。此處以Apriori關(guān)聯(lián)規(guī)則算法挖掘到的網(wǎng)絡(luò)數(shù)據(jù)特征量信息作為K-means聚類的樣本數(shù)據(jù),進行特征分類。K-means聚類算法的初始聚類中心的選擇嚴(yán)重干擾聚類結(jié)果的優(yōu)劣[21],傳統(tǒng)K-means聚類算法初始聚類中心是隨機生成,缺點是極易陷入局部最優(yōu)解導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)分類效果不穩(wěn)定、波動性較大。為此采用最大最小距離算法(max-min-diatance,MM)確定初始聚類中心并確定K值,降低聚類的不確定性,減少聚類的工作量;但考慮到最大最小距離準(zhǔn)則選取聚類中心的依據(jù)是距離的遠近,首先選取遠距離點作為初始點,過于遠的距離點極有可能是離群點,離群點作為聚類中心適得其反降低聚類中心確定的精準(zhǔn)度;為此,先使用一種基于局部離群因子(LOF)的離群點檢測算法剔除K-means聚類的離群點,預(yù)處理后基于最大最小距離選擇聚類中心并確定K值。
1.2.1 基于可變網(wǎng)格的局部離群點檢測
離群點檢測目的是初步剔除網(wǎng)絡(luò)數(shù)據(jù)樣本中的離群點,避免將離群點作為初始聚類中心,應(yīng)用可變網(wǎng)格策略設(shè)計離群點檢測算法:該算法利用網(wǎng)格空間作為聚類區(qū)域,減少花費在檢索聚類區(qū)域上的時間開銷,保障高精度拾取聚類中心的同時效率大大提升。算法實現(xiàn)過程描述為:
輸入:待檢測高頻數(shù)據(jù)集、密度閾值、離群點數(shù)量,分別用A、Q、v表示;
輸出:排名靠前的v個較大的離群因子值對象。
(1)基于可變網(wǎng)格劃分策略為待檢測高頻數(shù)據(jù)集構(gòu)建l個網(wǎng)格。網(wǎng)格構(gòu)建原理如下:確定網(wǎng)格空間作為聚類區(qū)域,使用相同大小的間距劃分高頻數(shù)據(jù)空間的維度,然后將同此維度類似的區(qū)間段合并,得到基于網(wǎng)格劃分的空間[22]。一般使用快排法排列原始待檢測高頻數(shù)據(jù)集的第i維,相鄰區(qū)間段相似性求取完畢后依次判斷第i維空間中相鄰區(qū)間段的相似性;反復(fù)執(zhí)行該步驟得到不同維度的相似區(qū)間段合并并輸出。
(2)各網(wǎng)格單元高頻數(shù)據(jù)點數(shù)量求取。定義數(shù)據(jù)點數(shù)量為Ne,e的取值區(qū)間為 (1,2,…,l); 比較密度閾值與數(shù)據(jù)點數(shù)量大小,當(dāng)數(shù)據(jù)點數(shù)量大于密度閾值時,表示此數(shù)據(jù)屬于異常狀態(tài)[23,24],當(dāng)全部高頻數(shù)據(jù)計算完離群因子方可終止,并記錄異常數(shù)據(jù)結(jié)果。待檢測數(shù)據(jù)的離群因子計算方法如式(5)所示
(5)
(3)遍歷到異常數(shù)據(jù)點后需剔除,剔除后繼續(xù)迭代計算檢測異常數(shù)據(jù)點,最后按照由大至小的順序排列離群因子值,并保存靠前部分的離群因子值。
1.2.2 基于最大最小距離準(zhǔn)則的K值確定
排除離群點后基于最大最小距離準(zhǔn)則確定更精準(zhǔn)的聚類中心,過程如下:
最大最小距離算法求取歐氏距離后根據(jù)最近鄰原則將樣本點劃分到各聚類中心,該算法與傳統(tǒng)K-means算法確定中心點策略存在差別,聚類類別K不是憑經(jīng)驗設(shè)置,按照以下策略執(zhí)行:
(1)選擇全部數(shù)據(jù)樣本點中的一個對象定義為xi作為首個聚類中心,求取全部數(shù)據(jù)點與該聚類中心的歐氏距離,方法如式(6)所示
(6)
式中:Xa、Xb均表示樣本,d(Xa,Xb) 表示m維空間中兩個樣本的歐氏距離。歐氏空間內(nèi)兩點的直線距離即為歐氏距離,K-means算法距離過程中樣本之間的相似度基于歐氏距離評定。
(2)新的聚類中心即為與xi歐氏距離最大的點,余下全部中心點選擇時將這些點歸類于集合中:余下全部每個樣本點與初始中心點歐氏距離較小者;下一個中心點即為集合中最大值所對應(yīng)的樣本點?;谏鲜霾呗匝h(huán)操作,停止更新聚類中心的條件是不再產(chǎn)生新的聚類中心[25],高效率得到有效聚類中心K。具體操作步驟如下:
步驟1 在(0,1)區(qū)間內(nèi)選取一個數(shù)值并給定,用δ表示,此刻生成初始聚類中心x1,且F1=x1;
步驟2 更新聚類中心的策略如下:首先,求取不同點與F1的歐氏距離用Oi1表示,新的聚類中心F2即為Ok1=max{Oi1} 對應(yīng)的xk;然后,求取第3個聚類中心,求取前兩個聚類中心與不同點之間的距離定義為Oi1、Oi2, 前兩個聚類中心之間的距離定義為O12,當(dāng)面臨Ol=max{min(Oi1,Oi2)} 且Ol>δ×O12的情況時 (i=1,2,…,n), 第3個聚類中心F3即為xl。
確定存在第3個聚類中心之后,確定當(dāng)前情況是否符合Oj=max{min(Oi1,Oi2,Oi3)} 且Ol>δ×O12, 驗證當(dāng)前存在第4個聚類中心。依照上述推導(dǎo)策略確定下一個聚類中心是否存在,終止更新新的聚類中心的條件是Ol≤δ×O12。
步驟3 匯總聚類中心總數(shù)K。
以上算法有機結(jié)合了最大最小聚類準(zhǔn)則法與局部離群點檢測算法,在本次研究中可精準(zhǔn)確定聚類中心數(shù)值K。
1.2.3 基于改進K-means算法的網(wǎng)絡(luò)異常數(shù)據(jù)挖掘
求取各網(wǎng)絡(luò)用戶數(shù)據(jù)與中心點的距離,對用戶數(shù)據(jù)類型實施分類,操作方法如式(7)與式(8)所示
(7)
(8)
其中,兩個網(wǎng)絡(luò)數(shù)據(jù)之間的距離以及數(shù)據(jù)類型集合采用h1,2、Gi描述,特征值描述為c,參數(shù)的數(shù)量用k表示。
經(jīng)過以上操作最終得到一個關(guān)鍵聚類與多個分散的聚類,關(guān)鍵聚類視為核心點,計算各點與核心點之間的距離,進而確定當(dāng)前網(wǎng)絡(luò)數(shù)據(jù)是否存在異常:與核心點間的距離越大,驗證這一類網(wǎng)絡(luò)行為數(shù)據(jù)的異常程度越大;與核心點間的距離越小,驗證這一類網(wǎng)絡(luò)行為數(shù)據(jù)的異常程度越小。由此可將網(wǎng)絡(luò)數(shù)據(jù)劃分為異常與非異常兩個類別。
此次研究改進了傳統(tǒng)Apriori關(guān)聯(lián)規(guī)則算法與傳統(tǒng)的K-means聚類算法形成Spark-MML網(wǎng)絡(luò)異常數(shù)據(jù)挖掘算法,該算法挖掘網(wǎng)絡(luò)異常數(shù)據(jù)方法的流程如圖1所示。
圖1 基于Spark-MML聚類算法的網(wǎng)絡(luò)異常數(shù)據(jù)挖掘流程
圖1中基于Spark-MML聚類算法的執(zhí)行步驟如下:①輸入興趣度閾值、使用自適應(yīng)更新策略獲得支持度值,設(shè)置Apriori關(guān)聯(lián)規(guī)則算法的初始參數(shù);②在Spark計算模型環(huán)境下分布式、并行化的完成頻繁項集挖掘工作,引入項編碼策略,使用單個項集與其對應(yīng)編碼創(chuàng)建鍵值對,輸出k+1項集當(dāng)其為空集時輸出頻繁項集結(jié)果,進一步獲取網(wǎng)絡(luò)數(shù)據(jù)樣本的特征量;③基于網(wǎng)格可變離群點檢測算法獲取離群點并剔除,使用最大最小聚類準(zhǔn)則確定K-means聚類的初始聚類中心與K值;④執(zhí)行K-means聚類算法的步驟獲得網(wǎng)絡(luò)異常數(shù)據(jù)的分類結(jié)果。
本次研究通過仿真實驗驗證本文方法挖掘網(wǎng)絡(luò)異常數(shù)據(jù)的性能。實驗采用Matlab進行設(shè)計,JDK版本為1.7,Scala版本為2.10.4,實驗采用2.5.2版本的Hadoop、2.0.2版本的Spark搭建并行式聚類環(huán)境。計算機運行環(huán)境均為Intel?CoreTMi5-7200U CPU,2.50 GHz,其中一個主節(jié)點內(nèi)存為8.00 GB,4個從節(jié)點內(nèi)存為4.00 GB;前者硬盤存儲空間為1 TB,后者硬盤存儲空間為12 TB。
實驗采用全面且權(quán)威的AWID集作為網(wǎng)絡(luò)異常數(shù)據(jù)挖掘的數(shù)據(jù)集,所用數(shù)據(jù)集為精簡版本,包含4個類型的攻擊,分別為DS 1(Normal)、DS 2(Flooding)、DS 3(Impersonation)、DS 4(Injection);網(wǎng)絡(luò)異常數(shù)據(jù)挖掘過程中將本文方法與文獻[5]方法、文獻[6]方法進行對比測試,以評估本文算法的性能。
本文方法選取K-means聚類中心采用了最大最小距離準(zhǔn)則與離群檢測算法相結(jié)合的策略,避免了聚類中心隨機性。為驗證此改變有效性采用隨機法、最大最小距離準(zhǔn)則法、最大最小距離準(zhǔn)則+離群檢測算法分別確定K-means聚類中心并確定k值,3種方法聚類結(jié)果如圖2所示。
圖2 聚類效果對比
由圖2(a)可以看出,隨機法共產(chǎn)生6個聚類中心,且其中3個聚類中心集中排列,說明該算法陷入了局部最優(yōu),未能科學(xué)分類網(wǎng)絡(luò)的類型,檢測出的異常數(shù)據(jù)包含一定量的正常數(shù)據(jù)。
圖2(b)表明,最大最小距離準(zhǔn)則法確定的聚類中心分布相對隨機法較為分散、均勻,僅下部兩個聚類中心分布相對密集,但仍存在少數(shù)聚類中聚集的現(xiàn)象,這是因為該準(zhǔn)則雖然采用“距離”變量約束聚類中心的選取很大程度上提升了聚類中心選取的精度,但是該準(zhǔn)則中“與已經(jīng)產(chǎn)生的中心點距離較遠的數(shù)據(jù)點”當(dāng)選下一個聚類中心的概率極大,所以誤選取了離群點作為遠距離聚類中心,使聚類中心選擇仍存在局部最優(yōu)情形,導(dǎo)致聚類出現(xiàn)較大偏差,效果仍不理想。
圖2(c)顯示本文方法獲取的聚類中心分布更均勻、未出現(xiàn)聚集性的聚類中心問題,說明該方法沒有陷入局部最優(yōu);不難分析,該方法使用局部離群點檢測算法剔除K-means聚類的離群點,再此基礎(chǔ)上基于最大最小距離準(zhǔn)則選取正確的聚類中心,為科學(xué)聚類提供了雙重保障。
測試采用漏報率與誤報率評估各個聚類算法分類網(wǎng)絡(luò)異常數(shù)據(jù)的性能,衡量算法的準(zhǔn)確率情況,兩種指標(biāo)的計算方法如式(9)與式(10)所示
(9)
(10)
式中:B和H分別表示漏報率與誤報率,漏報事件數(shù)量與誤報事件數(shù)量分別采用λ1、α1表示,異常事件總數(shù)量與事件總數(shù)量分別采用λ2、α2表示。
網(wǎng)絡(luò)異常數(shù)據(jù)挖掘測試中,統(tǒng)計各算法在3種數(shù)據(jù)集上的漏報率與誤報率表現(xiàn)情況見表1與表2,另外3種方法的平均絕對誤差(MAE)、均方根誤差(RMSE)見表3。
表1 網(wǎng)絡(luò)異常數(shù)據(jù)挖掘的漏報率統(tǒng)計/%
表2 網(wǎng)絡(luò)異常數(shù)據(jù)挖掘的誤報率統(tǒng)計/%
表3 3種方法的MAE和RMSE均值/%
綜合表1與表2數(shù)據(jù)可知,本文方法挖掘DS 1數(shù)據(jù)集漏報率為4.32%,比文獻[5]方法、文獻[6]方法低4.55%、2.32%,誤報率比文獻[5]方法、文獻[6]方法低4.30%、5.02%,其它數(shù)據(jù)集上本文方法與其它方法
漏報率、誤報率差異表現(xiàn)規(guī)律亦是如此,可見本文方法挖掘網(wǎng)絡(luò)異常數(shù)據(jù)的優(yōu)勢突出。此外,本文方法的MAE、RMSE展現(xiàn)了相對較低的水平。
總體而言,本文方法挖掘3組網(wǎng)絡(luò)異常數(shù)據(jù)集類型的準(zhǔn)確率較高,漏報率與誤報率遠遠低于另外兩種方法。文獻[5]算法雖然改進了Apriori算法,但只是對計算支持度、計算并行化策略優(yōu)化設(shè)計,本文方法不僅改進Apriori算法獲取關(guān)聯(lián)規(guī)則的支持度策略、設(shè)計了Spark并行化計算框架,而且在提取異常網(wǎng)絡(luò)數(shù)據(jù)過程中引入興趣度,在基本Apriori算法提取關(guān)聯(lián)規(guī)則的基礎(chǔ)上加入興趣度約束,使得關(guān)聯(lián)規(guī)則提取水平更高、強度更強,更有利于異常數(shù)據(jù)的精準(zhǔn)挖掘。此外,本文改進了傳統(tǒng)的K-means聚類算法,使用“最大最小距離準(zhǔn)則+離群點檢測算法”聯(lián)合選取聚類中心,避免了離群點成為聚類中心,因而提高了異常特征量提取的準(zhǔn)確度,最后優(yōu)化了異常數(shù)據(jù)挖掘的效果。
測試中3種算法對數(shù)據(jù)集DS 1~DS 4依次進行迭代聚類,挖掘用戶行為數(shù)據(jù)是否存在異常,統(tǒng)計各算法的時間開銷、內(nèi)存開銷如圖3所示。
圖3 時間開銷
曲線圖3顯示,隨著迭代聚類次數(shù)的增加,文獻[5]方法的時間開銷呈現(xiàn)一個峰值狀態(tài),在第5次迭代中達到了用時峰值約為23.5 s,當(dāng)測試結(jié)束時算法的用時均值為17.2 s,8次迭代過程中時間曲線為先升高再降低的趨勢,但最低用時仍遠高于本文方法;同理,文獻[6]方法的用時曲線雖為下降趨勢,末次迭代用時達到最小值,但仍高達8.5 s,高于本文方法,聚類速度不理想。相比之下,本文方法與文獻[6]方法用時曲線走勢規(guī)律趨近,但時間開銷區(qū)間僅為[13.5 s,5.1 s],第3次迭代后的聚類用時較短,挖掘網(wǎng)絡(luò)異常數(shù)據(jù)的效率較高。另外,由圖4內(nèi)存開銷曲線可知,本文方法聚類過程中計算機內(nèi)存占用比重較小,且較早的進入內(nèi)存穩(wěn)定期,沒有顯著浮動趨勢。
圖4 內(nèi)存開銷占比
這是因為本文方法基于Apriori算法求取網(wǎng)絡(luò)數(shù)據(jù)的強關(guān)聯(lián)異常特征量過程中,使用項編碼策略挖掘頻繁項集,首先為生成的頻繁項集標(biāo)記編碼,然后在Spark計算框架上實現(xiàn)頻繁項集與編碼的并行化計算,文獻[6]方法雖然使用了高效率的無監(jiān)督學(xué)習(xí)聚類方法Bi-kmeans對網(wǎng)絡(luò)流量特征值進行聚類,但沒有布局并行式計算框架,聚類計算的時間開銷相對較長;本文方法采用的分布式計算策略有效降低了Apriori算法掃描數(shù)據(jù)庫、挖掘頻繁項集的用時,提高了異常特征量提取效率。因此本文方法展現(xiàn)出文獻[5]、文獻[6]方法不具備的異常數(shù)據(jù)挖掘效率優(yōu)勢。
本文提出一種改進的關(guān)聯(lián)聚類算法挖掘網(wǎng)絡(luò)用戶數(shù)據(jù)的異常情況,減少傳統(tǒng)算法挖掘強關(guān)聯(lián)規(guī)則的內(nèi)存開銷與時間復(fù)雜程度,本文網(wǎng)絡(luò)數(shù)據(jù)異常分類研究具有以下貢獻:使用興趣度約束關(guān)聯(lián)規(guī)則的強度,基于自適應(yīng)策略確定科學(xué)的支持度;基于K-means算法提取網(wǎng)絡(luò)異常數(shù)據(jù)特征量過程中進行了離群點檢測與剔除,避免離群點成為聚類中心,節(jié)約聚類的時間開銷。可見,此次研究兼顧了網(wǎng)絡(luò)異常特征關(guān)聯(lián)規(guī)則挖掘與特征分類的性能,未來研究中將考慮引入更多隱藏特征信息作為網(wǎng)絡(luò)數(shù)據(jù)異常與否的判斷依據(jù),對異常數(shù)據(jù)的類型進行細(xì)分,滿足用戶對異常行為識別需求。