楊亞琦,李博雄,楊東霞,劉 燕
(1.云南省市場(chǎng)監(jiān)督管理局信息中心,云南 昆明;2.昆明學(xué)院信息工程學(xué)院,云南 昆明;3.云南省高校數(shù)據(jù)治理與智能決策重點(diǎn)實(shí)驗(yàn)室,云南 昆明;4.云南省信息技術(shù)發(fā)展中心,云南 昆明)
近年來(lái),我國(guó)已將“數(shù)字經(jīng)濟(jì)”列入國(guó)家發(fā)展戰(zhàn)略,黨的十九屆四中全會(huì)首次將“數(shù)據(jù)”列為生產(chǎn)要素,充分凸顯了數(shù)據(jù)在經(jīng)濟(jì)活動(dòng)和社會(huì)活動(dòng)中的巨大價(jià)值。數(shù)字經(jīng)濟(jì)時(shí)代,在海量數(shù)據(jù)中進(jìn)行數(shù)據(jù)挖掘尤為重要。異常數(shù)據(jù)檢測(cè)判別能提升數(shù)據(jù)的質(zhì)量,有助于挖掘出數(shù)據(jù)的潛在價(jià)值,成為數(shù)據(jù)治理領(lǐng)域一項(xiàng)重要工作。在眾多數(shù)據(jù)判別模型[4]中,邏輯回歸模型以泛化能力強(qiáng)、算法簡(jiǎn)單高效而得到了廣泛應(yīng)用。
祝政等[1]以邏輯回歸模型對(duì)奶牛行為進(jìn)行研究,其奶牛行為姿態(tài)判別的準(zhǔn)確率較高。張黎等[2]以二元邏輯回歸模型對(duì)我國(guó)農(nóng)業(yè)上市公司財(cái)務(wù)危機(jī)進(jìn)行研究,對(duì)公司財(cái)務(wù)危機(jī)的總體預(yù)測(cè)正確率近九成。劉成圓[3]以邏輯回歸模型對(duì)專利質(zhì)量評(píng)估體系構(gòu)建進(jìn)行建模,其全領(lǐng)域和化學(xué)領(lǐng)域獲獎(jiǎng)?lì)A(yù)測(cè)準(zhǔn)確率較低。在傳統(tǒng)邏輯回歸模型中,因?yàn)榻Y(jié)構(gòu)簡(jiǎn)單,很難擬合復(fù)雜數(shù)據(jù)的真實(shí)分布。且很難處理數(shù)據(jù)不平衡的問(wèn)題,如果正負(fù)樣本的比例差距較大,模型區(qū)分能力不會(huì)很好。在韋婷婷[4]等對(duì)中文專利關(guān)鍵詞抽取研究中,利用LSTM神經(jīng)網(wǎng)絡(luò)(LSTM神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)的一種變體)改進(jìn)邏輯回歸模型,準(zhǔn)確率有所提升,但模型泛化能力較弱,不適用于其他類型的判別。因此,一種泛化能力強(qiáng)且準(zhǔn)確率高的異常數(shù)據(jù)判別模型有很大的研究?jī)r(jià)值。
1948 年,香農(nóng)提出了“信息熵”的概念。但熵這一概念并不是香農(nóng)首先提出的,最早提出熵這一概念的是物理學(xué)家克勞修斯,他提出一種熱力學(xué)系統(tǒng)的狀態(tài)函數(shù),將其稱之為熱熵,也稱作熵。香農(nóng)在研究所得的式子在數(shù)學(xué)層面上與熱熵完全相同,所以香農(nóng)也將其稱之為熵,一般稱為信息熵或香農(nóng)熵。一條信息所含有的信息量的多少和它的不確定性有緊密聯(lián)系,可以理解為,信息量的度量等于不確定性的多少也等于信息熵。變量的不確定性越大,熵也就越大。對(duì)于任意一個(gè)隨機(jī)變量x,x 事件發(fā)生概率為P(x),它的熵H(X)定義如公式(1)所示。
信息熵實(shí)踐應(yīng)用于多個(gè)學(xué)科領(lǐng)域,其應(yīng)用范圍非常廣泛。起初,科學(xué)家試圖用信息熵概念來(lái)解決心理學(xué)、生理學(xué)等學(xué)科許多未能解決的問(wèn)題。自信息熵提出后二十年,信息論推廣到生物學(xué)和神經(jīng)生物學(xué)。隨著計(jì)算機(jī)逐漸發(fā)展,通訊能力極大提高,信息熵的概念得到了學(xué)者的極大重視。施魯?shù)佟に_斯瓦特(Sarswat Shruti)[9]香農(nóng)熵對(duì)e-C60 散射的共振狀態(tài)進(jìn)行了標(biāo)桿化。計(jì)算了e-C60 散射的共振波函數(shù)、總截面、部分截面和散射相移, 以考察共振引起的局域特性。
在“數(shù)據(jù)治理”中,也可利用信息熵[10]的思想,一條信息的信息量與它的不確定性有直接關(guān)系,如果要搞清楚該數(shù)據(jù),需要了解的信息越多,其信息熵就越大。所以,利用信息熵思想來(lái)判別數(shù)據(jù)是否是異常數(shù)據(jù)是一項(xiàng)很重要的工作。
針對(duì)以上研究現(xiàn)狀,本文設(shè)計(jì)了一種泛化能力強(qiáng),適用于大部分領(lǐng)域的判別模型,并通過(guò)實(shí)驗(yàn)驗(yàn)證了該判別方法的有效性。
本文提出的異常數(shù)據(jù)判別算法,主要使用邏輯算法模型將數(shù)據(jù)轉(zhuǎn)化為概率值在[0,1]的概率問(wèn)題后選擇切割閾值對(duì)概率值進(jìn)行切割,切割值大于概率值則判別為正常數(shù)據(jù),切割值小于概率值則判別為異常數(shù)據(jù),從而判別數(shù)據(jù)是否正常。尋找判別準(zhǔn)確率最高的切割值作為最優(yōu)切割值并用于對(duì)測(cè)試集進(jìn)行測(cè)試,測(cè)試所得的準(zhǔn)確率即為該異常數(shù)據(jù)判別方法[13]的準(zhǔn)確率。
基于邏輯回歸的異常數(shù)據(jù)判別算法,其特征在于把需要判別的數(shù)據(jù)對(duì)象定義為N,N=(N1,N2,…,Nm),把與數(shù)據(jù)集N 同類型且已知是非為異常的數(shù)據(jù)對(duì)象定義為X,X=(X1,X2,…,Xn)。n、m 為數(shù)據(jù)集包含的元素個(gè)數(shù),Xi為數(shù)據(jù)集X 中的第i 個(gè)元素,Yj為數(shù)據(jù)集Y中第j 個(gè)元素。
假設(shè)對(duì)于數(shù)據(jù)Xi,因變量Ai的輸出值為1,即數(shù)據(jù)Xi為異常數(shù)據(jù);同理數(shù)據(jù)Xi的因變量的輸出值為0,即數(shù)據(jù)Xi為正常數(shù)據(jù);解釋變量為Xi,Ai與Xi之間的關(guān)系由概率P(Ai=1)來(lái)解釋。因此概率P(Ai=1)定義如公式(2)所示:
其中ai是Xi的線性模型的估計(jì)值,ε是隨機(jī)變量誤差值。
通過(guò)轉(zhuǎn)換公式(2),可以得到公式(3)
使用邏輯回歸轉(zhuǎn)換,可以得到邏輯回歸模型,如公式(4)所示:
因此,因變量Ai可以表示為公式(5):
其中,p 為切割值,在取值范圍[0,1],以步長(zhǎng)為0.001 取1000 個(gè)切割值。將不同切割值p 下因變量Ai與該條數(shù)據(jù)是否正常進(jìn)行對(duì)比,使用邏輯回歸判別為正常數(shù)據(jù)且真實(shí)數(shù)據(jù)也為正常數(shù)據(jù)則判別正確,同理判別為異常數(shù)據(jù)且真實(shí)數(shù)據(jù)也為異常數(shù)據(jù)則判別正確,其余判別結(jié)果與真實(shí)數(shù)據(jù)對(duì)比則為判別錯(cuò)誤。統(tǒng)計(jì)不同切割值p 下判別的準(zhǔn)確率,選擇最優(yōu)切割值時(shí)對(duì)應(yīng)的最優(yōu)判別準(zhǔn)確率作為邏輯回歸模型判別算法的準(zhǔn)確率。
由上述基于邏輯回歸的異常數(shù)據(jù)判別算法[7]可以算出邏輯回歸模型判別算法的準(zhǔn)確率,至此本文提出一種基于信息熵的異常數(shù)據(jù)判別算法改進(jìn)。依然假設(shè)對(duì)于數(shù)據(jù)Xi,因變量Bi的輸出值為1,即數(shù)據(jù)Xi為異常數(shù)據(jù);同理數(shù)據(jù)Xi的因變量的輸出值為0,即數(shù)據(jù)Xi為正常數(shù)據(jù);解釋變量為Xi,Bi與Xi之間的關(guān)系由P(Bi=1)來(lái)解釋。因此概率P(Bi=1)定義如公式(6):
其中ai是Xi的線性模型的估計(jì)值,ε是隨機(jī)變量誤差值。
通過(guò)轉(zhuǎn)換公式(6),可以得到
使用邏輯回歸轉(zhuǎn)換,可以得到邏輯回歸模型,如公式(8)所示:
通過(guò)公式(8)可將數(shù)據(jù)的子特征轉(zhuǎn)化為一個(gè)取值范圍在[0.1]的概率,即可求得P(Bi=1),利用香農(nóng)公式(公式(9)),計(jì)算數(shù)據(jù)Xi通過(guò)邏輯回歸模型所求概率的信息熵。
至此用一個(gè)取值范圍為[0,1]步長(zhǎng)為0.001 的切割值p 來(lái)切割信息熵P(Bi=1)。當(dāng)切割值p 大于信息熵P(Bi=1),則判別為正常數(shù)據(jù),反之則判別為異常數(shù)據(jù)。用公式(10)表示。
將不同切割值p 下因變量Bi與該條數(shù)據(jù)是否正常進(jìn)行對(duì)比,使用基于信息熵的異常數(shù)據(jù)判別算法判別為正常數(shù)據(jù)且真實(shí)數(shù)據(jù)也為正常數(shù)據(jù)則判別正確,同理判別為異常數(shù)據(jù)且真實(shí)數(shù)據(jù)也為異常數(shù)據(jù)則判別正確,其余判別結(jié)果與真實(shí)數(shù)據(jù)對(duì)比則為判別錯(cuò)誤。計(jì)算切割值p 下判別的準(zhǔn)確率,確定判別準(zhǔn)確率作為基于信息熵的異常數(shù)據(jù)判別算法的準(zhǔn)確率。
由此可統(tǒng)計(jì)出基于邏輯回歸的異常數(shù)據(jù)判別算法的準(zhǔn)確率和基于信息熵的異常數(shù)據(jù)判別算法的準(zhǔn)確率。
對(duì)于已經(jīng)知道數(shù)據(jù)結(jié)果的作為訓(xùn)練集X,與訓(xùn)練集X 同類型但不知道數(shù)據(jù)結(jié)果的數(shù)據(jù)作為測(cè)試集Y。訓(xùn)練集和測(cè)試集中以[0,1]作為因變量,0 代表正常數(shù)據(jù),1 代表異常數(shù)據(jù)。當(dāng)數(shù)據(jù)的信息熵大于切割值時(shí)判別為正常數(shù)據(jù),小于切割值時(shí)判別為異常數(shù)據(jù)。
算法一:基于信息熵的判別算法
輸入:訓(xùn)練集X、測(cè)試集Y
輸出:測(cè)試集Y 的判別結(jié)果
步驟一:選取訓(xùn)練集X 中的子特征計(jì)算邏輯回歸概率。
步驟二:選取最優(yōu)切割值來(lái)切割數(shù)據(jù)集中邏輯回歸概率。
步驟三:利用香農(nóng)公式計(jì)算邏輯回歸概率的信息熵。
步驟四:利用經(jīng)過(guò)香農(nóng)公式計(jì)算信息熵后的最優(yōu)切割值對(duì)測(cè)試集Y 進(jìn)行判別。
步驟五:輸出測(cè)試集Y 的判別結(jié)果。
以訓(xùn)練集X 和測(cè)試集Y 作為輸入,輸出測(cè)試集Y的判別結(jié)果。定義邏輯回歸公式和香農(nóng)定理公式,對(duì)每一個(gè)數(shù)據(jù)計(jì)算其邏輯回歸概率再計(jì)算信息熵。再次對(duì)計(jì)算結(jié)果進(jìn)行讀入,使用切割值進(jìn)行切割,當(dāng)一條數(shù)據(jù)的信息熵大于切割值時(shí)即可判別為正常數(shù)據(jù),小于切割值時(shí)判別為異常數(shù)據(jù)。尋找一個(gè)判別準(zhǔn)確率最高的切割值為最優(yōu)切割值,并將最優(yōu)切割值切割結(jié)果作為測(cè)試集Y 的判別結(jié)果。
假設(shè)訓(xùn)練集X 中的數(shù)據(jù)條數(shù)為n,測(cè)試集Y 中的數(shù)據(jù)條數(shù)為m。每次循環(huán)都需要進(jìn)行全部讀取,因此算法中時(shí)間復(fù)雜度為O(n2),空間復(fù)雜度為O(n×m)。算法實(shí)現(xiàn)了在訓(xùn)練集中尋找最優(yōu)切割值并用最優(yōu)切割值對(duì)測(cè)試集Y 進(jìn)行判別。
本文以CIC-IDS2017 數(shù)據(jù)集中DDoS 攻擊數(shù)據(jù)為例[8]。CIC-IDS2017 數(shù)據(jù)集中的DDos 攻擊數(shù)據(jù)一個(gè)有225745 條數(shù)據(jù)(其中,Lable 為BENIGN 的數(shù)據(jù)為97718 條,標(biāo)記為“0”,Label 為DDos 的數(shù)據(jù)為128027條,標(biāo)記為“1”),選擇一半數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)集N尋找最優(yōu)切割值,并選取另一半數(shù)據(jù)集作為測(cè)試數(shù)據(jù)集M并判別算法的準(zhǔn)確率。
針對(duì)測(cè)試數(shù)據(jù)集N,選取Bwd 包長(zhǎng)度標(biāo)準(zhǔn)(Bwd Packet Length Std)、平均包大?。ˋverage Packet Size)、流持續(xù)時(shí)間(Flow Duration)和流量標(biāo)準(zhǔn)(Flow IAT Std)這4 個(gè)特征行為作為解釋變量,以Label 列數(shù)據(jù)作為因變量,對(duì)這5 列數(shù)據(jù)進(jìn)行回歸分析,得出回歸系數(shù):α1=-7.86529E-09,α2=0.000171636,α3=3.11E-08,α4=-2.31371E-05,ε=0.365008007。然后,利用邏輯回歸模型,把以上數(shù)據(jù)帶入公式(2),可以計(jì)算出P(Ai=1)的值,接著,切割值pi在[0,1]之間由小到大取值,取步長(zhǎng)為0.01,帶入公式(5),計(jì)算出每個(gè)切割值p所對(duì)應(yīng)的準(zhǔn)確率。準(zhǔn)確率與切割值的關(guān)系如圖1 所示。
圖1 基于邏輯回歸的異常數(shù)據(jù)判別方法各切割值的準(zhǔn)確率
由圖1 可以看出,當(dāng)取切割值p=0.6 時(shí)得出最優(yōu)準(zhǔn)確率85.62%。
利用香農(nóng)公式求信息熵改進(jìn)后邏輯回歸模型求出測(cè)試數(shù)據(jù)集里每條數(shù)據(jù)的信息熵P(Bi=1),接著,將基于邏輯回歸異常數(shù)據(jù)判別算法的最優(yōu)切割值帶入香農(nóng)公式計(jì)算后所得的信息熵作為切割值p,帶入公式(7),計(jì)算出切割值p 的信息熵為0.447。將切割值的信息熵0.447 作為切割值用于切割每條數(shù)據(jù)的信息熵P(Bi=1),統(tǒng)計(jì)加入信息熵后的判別準(zhǔn)確率為86.68%。
為了驗(yàn)證0.447 作為切割值切割各個(gè)數(shù)據(jù)的信息熵P(Bi=1)后的準(zhǔn)確率是否為最優(yōu)準(zhǔn)確率,將準(zhǔn)確率與各個(gè)切割值的關(guān)系如圖2 所示。
圖2 基于信息熵的異常數(shù)據(jù)判別方法各切割值的準(zhǔn)確率
由圖2 可以看出當(dāng)切割值為0.447 時(shí)取基于信息熵的異常數(shù)據(jù)判別算法的最優(yōu)準(zhǔn)確率86.68%。將對(duì)于CIC-IDS2017 數(shù)據(jù)集的各個(gè)測(cè)試模型進(jìn)行對(duì)比(見(jiàn)表1)。
表1 對(duì)于CIC-IDS2017 數(shù)據(jù)集的測(cè)試模型評(píng)價(jià)
此時(shí)可以本作品提出的異常數(shù)據(jù)改進(jìn)方法比傳統(tǒng)邏輯回歸模型的準(zhǔn)確率提高了1.02%,證明了本作品的改進(jìn)方法準(zhǔn)確率比單純的邏輯回歸模型得到了提高。本文同樣對(duì)比了在同一數(shù)據(jù)集中其他算法模型的準(zhǔn)確率,對(duì)比結(jié)果中僅有BI-LSTM-GMM 模型對(duì)CIC-IDS2017 中DDoS 數(shù)據(jù)集比本文設(shè)計(jì)的判別算法準(zhǔn)確率高0.12%。但BI-LSTM-GMM的模型復(fù)雜度為O(nm+n2+n)其中n 為hidden_size,m 為input_size。而本文設(shè)計(jì)方法的模型復(fù)雜度為O(f+1)其中f 為特征數(shù)量。在模型復(fù)雜度上基于信息熵的判別方法明顯優(yōu)于BI-LSTM-GMM,同時(shí)從判別準(zhǔn)確率上看效果相差不大。整體上本文設(shè)計(jì)的基于信息熵的判別方法較優(yōu)。
本文提出一種基于信息熵的異常數(shù)據(jù)判別方法,采用香農(nóng)公式計(jì)算信息熵,綜合提供了邏輯回歸模型的異常數(shù)據(jù)判別方法的準(zhǔn)確率。在以CIC-IDS2017 數(shù)據(jù)集中DDoS 攻擊數(shù)據(jù)為測(cè)試案例中,選取Bwd Packet Length Std、Average Packet Size、Flow Duration和Flow IAT Std 這4 個(gè)特征行為作為解釋變量,以Label 列數(shù)據(jù)作為因變量。使用基于邏輯回歸的異常數(shù)據(jù)判別方法在切割值為0.6 時(shí)取最優(yōu)準(zhǔn)確率,其值為85.62%,使用基于信息熵的異常數(shù)據(jù)判別方法在切割值為0.447 時(shí)取最優(yōu)準(zhǔn)確率,其值為86.68%。由此可以證明本文提出改進(jìn)的異常數(shù)據(jù)判別方法準(zhǔn)確率較原邏輯回歸異常數(shù)據(jù)判別方法得到了提升。
本文的研究對(duì)異常數(shù)據(jù)判別方法提出了合理的改進(jìn),為“數(shù)據(jù)治理”工作打下了更加深厚的基礎(chǔ)。當(dāng)然本文提出的改進(jìn)算法僅使用了CIC-IDS2017 數(shù)據(jù)集中DDoS 攻擊數(shù)據(jù)作為測(cè)試案例,后續(xù)研究將更關(guān)注于在邏輯回歸模型中加入香農(nóng)公式求信息熵這一方法提高判別準(zhǔn)確率的數(shù)學(xué)原理,并加大對(duì)其他數(shù)據(jù)集測(cè)試效果的研究。