本發(fā)明涉及數(shù)據(jù)挖掘的方法,具體的講是大規(guī)模數(shù)據(jù)的異常檢測方法。
背景技術(shù):
異常檢測指的是通過相應(yīng)的技術(shù)手段發(fā)現(xiàn)與尋找那些明顯有別于其他大多數(shù)數(shù)據(jù)的數(shù)據(jù)對象。通常而言,這些數(shù)據(jù)相比于正常數(shù)據(jù)都非常少。異常檢測的對象被稱為異常點,或者孤立點、離群點。雖然這些數(shù)據(jù)往往藏匿于正常數(shù)據(jù)之間,不能直接發(fā)現(xiàn),但是這些數(shù)據(jù)背后可能隱藏著很重要的信息,有著很大的研究價值。1980年hawkins首次將異常點定義成一種明顯異于其他值而使人質(zhì)疑它是否因不同的、未知的機制而產(chǎn)生。從此異常點不再是數(shù)據(jù)挖掘領(lǐng)域的噪聲,不再是預(yù)處理階段需要拋棄的數(shù)據(jù)。隨著近三十年的發(fā)展,異常檢測領(lǐng)域涌現(xiàn)出了各種不同的、基于不同機制的檢測算法。
根據(jù)數(shù)據(jù)輸入的類型可以分為點數(shù)據(jù)檢測,時空數(shù)據(jù)檢測;根據(jù)監(jiān)督性可以分為有監(jiān)督、無監(jiān)督和半監(jiān)督算法;根據(jù)異常點類型可以分為點異常、簇異常、上下文異常檢測算法;根據(jù)異常得分輸出類型可以分為數(shù)值型和標簽型。根據(jù)算法不同,現(xiàn)有的最常用的異常檢測算法主要分為四大類,分別是基于統(tǒng)計的、基于聚類的、基于距離和基于密度的異常檢測算法。
近幾年有學者提出了基于隔離的異常檢測算法iforest,這種算法基于重心估計理論,主要思想是通過隨機選擇特征來劃分數(shù)據(jù)空間,最終訓練出一棵二叉樹作為基分類器,之后引入了集成學習的方法將弱分類器升級為強分類器。在異常檢測的過程中,測試數(shù)據(jù)遍歷基分類器將數(shù)據(jù)落點離根節(jié)點的距離作為路徑長度,通常來說路徑長度越短數(shù)據(jù)越異常。之后又有學者提出了基于iforest算法的異常檢測算法sciforest,這種算法提出了一種劃分數(shù)據(jù)的隨機超平面函數(shù)作為數(shù)據(jù)空間劃分標準。但是由于sciforest算法僅僅考慮和測試了實驗數(shù)據(jù),在實際工作當中,在面對不平衡、混合、高維的大規(guī)模數(shù)據(jù)環(huán)境下算法檢測性能不佳,容易受到復(fù)雜數(shù)據(jù)的影響。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種大規(guī)模數(shù)據(jù)的異常檢測方法,以提高異常檢測的準確率,以及提高在對高維數(shù)據(jù)時候的異常檢測性能。
本發(fā)明的大規(guī)模數(shù)據(jù)的異常檢測方法,包括:
a.數(shù)據(jù)預(yù)處理和特征提?。簩υ紨?shù)據(jù)進行必要的數(shù)據(jù)預(yù)處理,得到預(yù)處理后的數(shù)據(jù)集和樣本子集,對預(yù)處理過后的數(shù)據(jù)進行特征提取;
b.基于孿生支持向量機(twsvm)的超平面計算,構(gòu)造出劃分數(shù)據(jù)空間的超平面標準函數(shù),根據(jù)所述的超平面標準函數(shù)進行超平面選擇;
c.形成隔離樹:通過孿生支持向量機的超平面的劃分標準,建立一棵隔離樹;
d.形成隔離森林:重復(fù)執(zhí)行步驟c,構(gòu)建多個隔離樹形成隔離森林;
e.遍歷隔離森林計算異常得分:通過待異常檢測的數(shù)據(jù)對隔離森林的遍歷,計算出異常得分作為評判異常程度的標準,并根據(jù)所述標準判斷原始數(shù)據(jù)中是否存在異常數(shù)據(jù)。
具體的,步驟a中所述的數(shù)據(jù)預(yù)處理包括數(shù)據(jù)集成,數(shù)據(jù)歸約和數(shù)據(jù)清洗,所述的特征提取包括:
a1.數(shù)據(jù)重采樣:通過預(yù)先設(shè)定的正負類比例將預(yù)處理后的數(shù)據(jù)的樣本平衡化,降低負類樣本對特征提取的影響;
a2.信息增益率的計算:通過多個樣本子集的數(shù)據(jù)計算特征的信息增益率,將計算結(jié)果排序形成多個特征集合;
a3.特征子空間選擇:通過將上述多個特征集合進行匯總形成特征總集,并根據(jù)預(yù)設(shè)的特征數(shù)量選擇出信息增益率最大的特征。
具體的步驟b包括:
b1.隨機無放回采樣:根據(jù)預(yù)設(shè)的特征數(shù)量和預(yù)處理后的數(shù)據(jù)的樣本子集的大小,對預(yù)處理后的數(shù)據(jù)和特征進行隨機無放回采樣形成多個不同特征子空間下的樣本子集;
b2.數(shù)據(jù)歸一化:通過z-score(z分數(shù))表轉(zhuǎn)化方法,利用原始數(shù)據(jù)的均值和標準差進行數(shù)據(jù)歸一化,使處理后的數(shù)據(jù)屬于標準正態(tài)分布;
b3.孿生支持向量機的參數(shù)優(yōu)化:采用遺傳算法對孿生支持向量機算法進行參數(shù)優(yōu)化;
b4.計算孿生超平面:基于孿生支持向量機,計算出兩個非平行的超平面函數(shù);
b5.選擇超平面:在孿生非平行超平面函數(shù)中選擇角平分面作為新的超平面。
在此基礎(chǔ)上,步驟b3中所述的對孿生支持向量機算法進行參數(shù)優(yōu)化包括:種群初始化、設(shè)置適應(yīng)度函數(shù)和設(shè)置算法終止條件。
具體的,步驟c包括:
c1.隨機無放回采樣:通過對步驟a中經(jīng)過數(shù)據(jù)預(yù)處理但是未經(jīng)過特征提取的待測試數(shù)據(jù)進行無放回采樣,形成多個樣本子集;
c2.初始化隔離樹;
c3.隨機選擇特征:根據(jù)預(yù)設(shè)的數(shù)量值隨機選擇特征,并在這些特征子空間下根據(jù)步驟b計算出基于孿生支持向量機的超平面作為劃分數(shù)據(jù)空間的超平面標準函數(shù);
c4.劃分數(shù)據(jù)空間:將步驟c1得到的樣本子集分別代入所述的超平面函數(shù)中,根據(jù)計算結(jié)果分別判斷各數(shù)據(jù)點屬于左子樹或右子樹;
c5.返回節(jié)點信息:循環(huán)步驟c3和c4,直到數(shù)據(jù)劃分結(jié)束,使所有的訓練數(shù)據(jù)都分布在隔離樹中,完成隔離樹的構(gòu)建。
具體的,步驟d包括:
d1.隨機無放回采樣:根據(jù)預(yù)設(shè)的森林規(guī)模和步驟a得到的樣本子集的規(guī)模,對數(shù)據(jù)集進行隨機無放回采樣;
d2.構(gòu)建隔離森林:通過對不同樣本集采用相同的隔離樹構(gòu)建方法,形成具有多樣性的隔離森林。
具體的,步驟e包括:
e1.遍歷隔離樹:通過待異常檢測的數(shù)據(jù)對所有隔離樹進行遍歷,得到各測試數(shù)據(jù)在隔離樹中的位置,計算出測試數(shù)據(jù)的路徑長度;
e2.路徑長度歸一化:通過歸一化公式將計算出的路徑長度歸一化;
e3.判斷異常數(shù)據(jù):將測試數(shù)據(jù)遍歷整個森林后得到的所有異常得分做均值,通過直接投票模型計算出所述均值的異常得分,根據(jù)異常得分判斷出原始數(shù)據(jù)中是否有異常點。
本發(fā)明的大規(guī)模數(shù)據(jù)的異常檢測方法,有效減少了檢測的數(shù)據(jù)量,降低了其計算的工作量,并且在提高異常檢測準確率的同時沒有顯著增加時間消耗,大幅度提高了對高維數(shù)據(jù)時候的異常檢測性能。
以下結(jié)合實施例的具體實施方式,對本發(fā)明的上述內(nèi)容再作進一步的詳細說明。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實例。在不脫離本發(fā)明上述技術(shù)思想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā)明的范圍內(nèi)。
附圖說明
圖1為本發(fā)明大規(guī)模數(shù)據(jù)的異常檢測方法的流程圖。
具體實施方式
如圖1所示本發(fā)明大規(guī)模數(shù)據(jù)的異常檢測方法,包括:
a.數(shù)據(jù)預(yù)處理和特征提取:對原始數(shù)據(jù)進行必要的數(shù)據(jù)預(yù)處理,包括數(shù)據(jù)集成,數(shù)據(jù)歸約和數(shù)據(jù)清洗,進而得到預(yù)處理后的數(shù)據(jù)集和樣本子集。然后對預(yù)處理過后的數(shù)據(jù)進行特征提取,包括:
a1.數(shù)據(jù)重采樣:通過預(yù)先設(shè)定的正負類比例將預(yù)處理后的數(shù)據(jù)的樣本平衡化,降低負類樣本對特征提取的影響;
a2.信息增益率的計算:通過多個樣本子集的數(shù)據(jù)計算特征的信息增益率,將計算結(jié)果排序形成多個特征集合;其中計算特征的信息增益率的方法為:
假設(shè)數(shù)據(jù)集為d,特征為ai(i=1,...,k),首先計算計算d的墑h(d),其計算公式為:
a3.特征子空間選擇:通過將上述多個特征集合進行匯總形成特征總集,并根據(jù)預(yù)設(shè)的特征數(shù)量選擇出信息增益率最大的特征。
b.基于孿生支持向量機(twsvm)的超平面計算,構(gòu)造出劃分數(shù)據(jù)空間的超平面標準函數(shù),根據(jù)所述的超平面標準函數(shù)進行超平面選擇。孿生支持向量機(twsvm)的核心思想是通過構(gòu)造兩個超平面來進行分類,兩個超平面分別代表兩類樣本,一類極大限度地遠離另一類樣本。由于它將傳統(tǒng)的一個大規(guī)模二次規(guī)劃問題轉(zhuǎn)化為兩個小規(guī)模的二次規(guī)劃問題,因此在訓練速度方面比傳統(tǒng)支持向量機有了很大改善。而兩個不平行的超平面的這種設(shè)計極有利于算法對異或問題進行處理,使其在識別率上比之前的傳統(tǒng)支持向量機更具優(yōu)勢。同時孿生支持向量機擁有更快的處理時間,具有較強的魯棒性和容錯性,并且具有自學習、自適應(yīng)性以及自組織性的特性。但是在面對高維數(shù)據(jù)下,其處理速度和準確率仍受較大影響。因此本發(fā)明采用了基于重采樣的方式來計算特征子空間下的孿生支持向量機。
具體步驟包括:
b1.隨機無放回采樣:根據(jù)預(yù)設(shè)的特征數(shù)量和預(yù)處理后的數(shù)據(jù)的樣本子集的大小,對預(yù)處理后的數(shù)據(jù)和特征進行隨機無放回采樣形成多個不同特征子空間下的樣本子集;
b2.數(shù)據(jù)歸一化:通過z-score(z分數(shù))表轉(zhuǎn)化方法,利用原始數(shù)據(jù)的均值和標準差進行數(shù)據(jù)歸一化,使處理后的數(shù)據(jù)屬于標準正態(tài)分布。
具體的歸一化公式函數(shù)為x*=(x-μ)/σ,其中μ為未歸一化數(shù)據(jù)的均值,σ為未歸一化數(shù)據(jù)的標準差,x表示了一個待歸一化的數(shù)據(jù)。
b3.孿生支持向量機的參數(shù)優(yōu)化:采用遺傳算法對孿生支持向量機算法進行參數(shù)優(yōu)化,包括種群初始化、設(shè)置適應(yīng)度函數(shù)和設(shè)置算法終止條件。具體的參數(shù)優(yōu)化過程為:
b31.種群初始化:將遺傳算法中的最大迭代次數(shù)設(shè)置為50,種群的數(shù)量設(shè)置為10,將選擇概率和編譯概率分別設(shè)置為0.8和0.7,將twsvm的參數(shù)c的檢索空間設(shè)置為[0,500],將高斯核函數(shù)的搜索空間設(shè)置為[0,200]。
b32.設(shè)置適應(yīng)度函數(shù):設(shè)置交叉驗證分類準確率作為遺傳算法的適應(yīng)度函數(shù),交叉驗證折數(shù)設(shè)置為5。
b33.設(shè)置算法終止條件:本實施例中只用兩種終止條件,第一種是適應(yīng)度函數(shù)的值達到95%的預(yù)定值;第二種是迭代次數(shù)達到最大的50次。
b4.計算孿生超平面:基于孿生支持向量機,計算出兩個非平行的超平面函數(shù)。由于異常檢測是一個二分類問題,假設(shè)在rn這樣的空間中有l(wèi)+個訓練數(shù)據(jù)集的樣本屬于正類,用矩陣
s.t-(k(x-,x)w++e-b+)+ξ-≥e-,
ξ-≥0
和
s.t(k(x+,x)w-+e+b-)+ξ+≥e+,
ξ+≥0
其中c1,c2>0是懲罰參數(shù),ξ+,ξ-是松弛變量,e+,e-是分別為l+,l-維數(shù)的單位的列向量。x+表示正類數(shù)據(jù)在空間上任意向量,x-表示負類數(shù)據(jù)在空間上任意向量,x是數(shù)據(jù)在空間上任意向量。引入拉格朗日乘子向量
s.t0≤α≤c1e-
和
s.t0≤β≤c2e+
其中h=[k(x+,x),e+],g=[k(x-,x),e-]。為了避免矩陣hth、gtg不可逆,通常人為的將λe(λ>0)添加到twsvm的參數(shù)中。其中e表示了單位矩陣,λ是常數(shù)。將對偶表達式中的矩陣hth、gtg被替換為hth+λe、gtg+λe。因此twsvm的對偶表達式被修正為:
s.t0≤α≤c1e-
和
s.t0≤β≤c2e+
記
有最優(yōu)解法。
至此,得到了兩個非平行超平面函數(shù)。孿生支持向量機與本發(fā)明的關(guān)系是通過孿生支持向量機計算得到的兩個非平行超平面函數(shù),隨機生成一個夾在二者之間的隨機超平面作為后續(xù)算法數(shù)據(jù)劃分的分割標準函數(shù)。
b5.選擇超平面:在孿生非平行超平面函數(shù)中選擇角平分面作為新的超平面。
c.形成隔離樹:通過孿生支持向量機的超平面的劃分標準,建立一棵隔離樹,具體為:
c1.隨機無放回采樣:通過對步驟a中經(jīng)過數(shù)據(jù)預(yù)處理但是未經(jīng)過特征提取的待測試數(shù)據(jù)進行無放回采樣,形成多個樣本子集,本實施例中采樣大小和集群大小兩個參數(shù)分別定為256和150。
c2.初始化隔離樹:隔離樹是一棵滿二叉樹,其定義為假定t是隔離樹的一個節(jié)點,那么t滿足且僅能滿足下面兩個條件的一條:(1)t是一個葉子節(jié)點;(2)t是非葉子節(jié)點且有2個子節(jié)點(tl,tr)。
c3.隨機選擇特征:根據(jù)預(yù)設(shè)的數(shù)量值隨機選擇特征,并在這些特征子空間下根據(jù)步驟b計算出基于孿生支持向量機的超平面作為劃分數(shù)據(jù)空間的超平面標準函數(shù)。
c4.劃分數(shù)據(jù)空間:將步驟c1得到的樣本子集分別代入所述的超平面函數(shù)中,如果超平面函數(shù)的計算結(jié)果小于0那么該數(shù)據(jù)點分為左子樹,反之劃分到右子樹。如果數(shù)據(jù)空間可以劃分,則根據(jù)數(shù)據(jù)將超平面函數(shù)的計算結(jié)果劃分到不同的子節(jié)點中,若小于0,該數(shù)據(jù)劃分到左子節(jié)點;反之,該數(shù)據(jù)劃分到右子節(jié)點。劃分完畢后再隨機選擇q個特征計算子節(jié)點的隨機超平面,直到數(shù)據(jù)空間無法劃分。
c5.返回節(jié)點信息:循環(huán)步驟c3和c4,直到數(shù)據(jù)劃分結(jié)束,使所有的訓練數(shù)據(jù)都分布在隔離樹中,完成隔離樹的構(gòu)建。
d.形成隔離森林:重復(fù)執(zhí)行步驟c,構(gòu)建多個隔離樹形成隔離森林,具體為:
d1.隨機無放回采樣:根據(jù)預(yù)設(shè)的森林規(guī)模和步驟a得到的樣本子集的規(guī)模,對數(shù)據(jù)集進行隨機無放回采樣;
d2.構(gòu)建隔離森林:通過對不同樣本集采用相同的隔離樹構(gòu)建方法,形成具有多樣性的隔離森林。
e.遍歷隔離森林計算異常得分:通過測試數(shù)據(jù)對隔離森林的遍歷,計算出異常得分作為評判異常程度的標準,并根據(jù)所述標準判斷原始數(shù)據(jù)中是否存在異常數(shù)據(jù)。具體為:
e1.遍歷隔離樹:通過待異常檢測的數(shù)據(jù)對所有隔離樹進行遍歷,得到各測試數(shù)據(jù)在隔離樹中的位置,計算出測試數(shù)據(jù)的路徑長度;
e2.路徑長度歸一化:通過歸一化公式將計算出的路徑長度歸一化。
e3.判斷異常數(shù)據(jù):將測試數(shù)據(jù)遍歷整個森林后得到的所有異常得分做均值,通過直接投票模型計算出所述均值的異常得分,如果異常得分越接近于1,那么原始數(shù)據(jù)越存在異常;反之,異常得分越接近于0,那么原始數(shù)據(jù)越不異常;如果所有數(shù)據(jù)的異常得分都在0.5附近,那么整個原始數(shù)據(jù)無異常點。