賴思銀
(廣東石油化工學(xué)院,廣東,茂名 525000)
異常檢測(cè)(anomaly detection, AD)是數(shù)據(jù)挖掘領(lǐng)域中的一個(gè)重要研究方向,其目的是從模式類或數(shù)據(jù)集中自動(dòng)識(shí)別出與預(yù)期不符的異常模式或有別于大部分?jǐn)?shù)據(jù)的異常數(shù)據(jù)。在工業(yè)入侵檢測(cè)、銀行欺詐、故障缺陷檢測(cè)、醫(yī)療系統(tǒng)健康監(jiān)測(cè)等領(lǐng)域中得到了廣泛應(yīng)用[1]。
目前,常用的異常檢測(cè)方法可以分為基于統(tǒng)計(jì)的方法、基于鄰近度的方法和基于分類的方法3大類。其中,基于統(tǒng)計(jì)的方法認(rèn)為數(shù)據(jù)集服從某種確定的分布(如高斯分布、均勻分布等)或者概率模型,通過(guò)判斷特定數(shù)據(jù)點(diǎn)是否符合該分布或概率模型從而實(shí)現(xiàn)異常數(shù)據(jù)的檢測(cè)。文獻(xiàn)[2]利用直方圖的方式對(duì)數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)分析,根據(jù)未知數(shù)據(jù)是否分布在直方圖中實(shí)現(xiàn)異常檢測(cè)判斷?;卩徑鹊姆椒ǜ鶕?jù)度量指標(biāo)的差異又可以分為基于距離的異常檢測(cè)方法[3]和基于密度的異常檢測(cè)方法[4]。其中,基于距離的方法以K-最近鄰(K-nearest neighbor, KNN)為代表[5],作為一種無(wú)監(jiān)督方法,該類方法無(wú)需考慮數(shù)據(jù)的分布特性,適用于高維數(shù)據(jù)的異常檢測(cè),但是由于需要計(jì)算任意2個(gè)數(shù)據(jù)點(diǎn)之間的距離,該類方法普遍存在計(jì)算復(fù)雜度高的問(wèn)題。基于密度的異常檢測(cè)方法以局部離群因子(local outlier factor, LOF)算法為代表[6],通過(guò)計(jì)算每個(gè)數(shù)據(jù)點(diǎn)的鄰域LOF值判斷其是否為異常點(diǎn),LOF值越大,說(shuō)明其鄰域數(shù)據(jù)密度越低,越可能是異常數(shù)據(jù)點(diǎn)?;诰垲惖姆椒ㄒ訢BSCAN、k-means為代表,其基本思想是將數(shù)據(jù)集根據(jù)相關(guān)程度劃分為不同的簇,距離簇中心較遠(yuǎn)的數(shù)據(jù)點(diǎn)即為異常點(diǎn),該類方法具有原理簡(jiǎn)單、容易實(shí)現(xiàn)的優(yōu)點(diǎn),但是該類方法在使用過(guò)程中需要預(yù)先設(shè)置聚類個(gè)數(shù),在先驗(yàn)信息缺乏的條件下難以獲得較好的檢測(cè)效果[7]?;诜诸惖姆椒ㄒ灾蜗蛄繑?shù)據(jù)描述(support vector data description, SVDD)為代表,只需要帶標(biāo)簽的正常樣本作為訓(xùn)練集即可構(gòu)建閉合曲面實(shí)現(xiàn)異常檢測(cè),但是檢測(cè)結(jié)果依賴于模型參數(shù)的選擇。目前常用的經(jīng)驗(yàn)試錯(cuò)法存在主觀性強(qiáng)、運(yùn)算量大的問(wèn)題。此外,由于數(shù)據(jù)集中通常會(huì)存在冗余特征,這些特征的存在不僅需要消耗大量的運(yùn)算資源,同時(shí)還會(huì)降低檢測(cè)性能[8]。
在上述研究的基礎(chǔ)上,針對(duì)SVDD異常檢測(cè)方法的特征提取和參數(shù)設(shè)置問(wèn)題,本文將主分量分析(principal component analysis, PCA)與SVDD相結(jié)合,利用PCA對(duì)數(shù)據(jù)進(jìn)行分析,自動(dòng)提取對(duì)檢測(cè)性能影響較大的主分量構(gòu)成特征向量,然后利用SVDD構(gòu)建一類分類器進(jìn)行分類判決,同時(shí)針對(duì)SVDD核參數(shù)和懲罰因子的設(shè)置問(wèn)題,利用粒子群算法(particle swarm optimization, PSO)進(jìn)行全局尋優(yōu),以提升算法性能。
實(shí)際工程實(shí)踐中,導(dǎo)致數(shù)據(jù)出現(xiàn)異常的原因復(fù)雜多樣,異常數(shù)據(jù)表現(xiàn)形式千變?nèi)f化,出現(xiàn)時(shí)機(jī)隨機(jī)變化,通常無(wú)法獲取足夠多的異常數(shù)據(jù)樣本用于模型訓(xùn)練。而SVDD作為一種經(jīng)典的一類分類器,在構(gòu)造最優(yōu)分類面時(shí)只需要正常類數(shù)據(jù)樣本,大大降低了數(shù)據(jù)獲取難度。
(1)
其中,c和r分別為超球體的球心和半徑,ξi為每個(gè)訓(xùn)練樣本對(duì)應(yīng)的松弛變量,用于降低異常值對(duì)最優(yōu)分類面的影響,C為懲罰因子,影響著訓(xùn)練樣本集對(duì)應(yīng)的決策邊界。
為了解決真實(shí)數(shù)據(jù)不符合球狀分布的問(wèn)題,SVDD通常采用高斯核函數(shù)將數(shù)據(jù)映射至高維空間中進(jìn)行分析,高斯核函數(shù)的具體形式為
(2)
式中,σ為高斯核參數(shù)。為了對(duì)式(1)進(jìn)行求解,可以將式(1)轉(zhuǎn)化為如下的對(duì)偶形式:
(3)
(4)
對(duì)于任意未知測(cè)試樣本x*,SVDD利用最優(yōu)超球體對(duì)其進(jìn)行判決的決策方程為
(5)
若計(jì)算得到f(x*)≤0,表明x*處于超球體內(nèi)部為正常數(shù)據(jù),否則x*為異常數(shù)據(jù)。
從上述分析可知,SVDD最優(yōu)超球體的形狀由核參數(shù)σ和懲罰因子C共同決定,要想得到最優(yōu)分類性能,需要對(duì)σ和C聯(lián)合優(yōu)化。粒子群(particle swarm optimization, PSO)算法由于具備算法簡(jiǎn)單,需要調(diào)整的參數(shù)較少,全局搜索和局部搜索能力均衡等優(yōu)點(diǎn)被廣泛應(yīng)用于數(shù)學(xué)優(yōu)化領(lǐng)域[9]。因此,本文將PSO引入SVDD模型,將SVDD的核參數(shù)和懲罰因子作為PSO的粒子進(jìn)行優(yōu)化,以提升SVDD算法性能。
(6)
(7)
其中,t為當(dāng)前迭代次數(shù),T為總迭代次數(shù),wmax和wmin為w取值的最大和最小值。
主分量分析(principal component analysis, PCA)是當(dāng)前數(shù)據(jù)處理領(lǐng)域最具代表性的一種數(shù)據(jù)降維方法。其基本思想是將數(shù)據(jù)中具備相關(guān)性的指標(biāo)重新進(jìn)行線性組合得到數(shù)量較少且互不相關(guān)的綜合性指標(biāo),這些綜合性指標(biāo)被稱為主分量,主分量能夠最大限度地反應(yīng)原始數(shù)據(jù)中的有用信息。
步驟1 計(jì)算觀測(cè)數(shù)據(jù)的協(xié)方差矩陣R:
(8)
其中,E(·)表示求括號(hào)內(nèi)變量的期望運(yùn)算,U為S的均值。
步驟2 對(duì)步驟1得到的協(xié)方差矩陣進(jìn)行特征值分解,得到特征向量:
(9)
其中,λ和u分別為協(xié)方差矩陣的特征值和特征向量,且λ1≥λ2≥…≥σ2=…=σ2,σ2為噪聲方差。
從式(9)可以看出,對(duì)協(xié)方差矩陣進(jìn)行特征值分解可以得到兩部分:前K個(gè)特征值較大,對(duì)應(yīng)特征向量為主分量,包含了原始數(shù)據(jù)中的絕大部分有用信息;后D-K個(gè)特征值較小,對(duì)應(yīng)的特征向量為次分量,主要包含數(shù)據(jù)中的隨機(jī)噪聲。
步驟3 將占特征值譜總能量90%的大特征值個(gè)數(shù)作為主分量個(gè)數(shù)K,即:
(10)
步驟4 將原始數(shù)據(jù)投影到K個(gè)主分量張成的空間中實(shí)現(xiàn)數(shù)據(jù)降維,即:
(11)
圖1給出了本文所提基于PCA聯(lián)合PSO-SVDD的異常檢測(cè)算法流程圖,可以看出算法包含訓(xùn)練和測(cè)試2個(gè)階段。
圖1 PCA聯(lián)合PSO-SVDD的異常檢測(cè)算法流程圖
在訓(xùn)練階段,首先利用PCA對(duì)正常數(shù)據(jù)構(gòu)成的訓(xùn)練集進(jìn)行分析,提取前K個(gè)主分量作為特征從而實(shí)現(xiàn)數(shù)據(jù)降維;然后利用特征向量對(duì)第1章節(jié)所提PSO-SVDD算法進(jìn)行訓(xùn)練,并最終獲得最優(yōu)分類面。
在測(cè)試階段,對(duì)于輸入的測(cè)試數(shù)據(jù),首先同樣采用PCA進(jìn)行分析,提取前K個(gè)主分量作為特征向量;然后利用訓(xùn)練階段獲得的最優(yōu)分類面進(jìn)行分類判決,并輸出最終的判決結(jié)果。
本文通過(guò)2部分試驗(yàn)對(duì)所提PCA聯(lián)合PSO-SVDD的異常數(shù)據(jù)檢測(cè)性能進(jìn)行驗(yàn)證。
4.1節(jié)采用4個(gè)UCI標(biāo)準(zhǔn)數(shù)據(jù)集,即Iris、Wisconsin、Biomed和Wine。其中,只有Biomed的類別數(shù)為2類,其他3個(gè)數(shù)據(jù)集的類別數(shù)都多于2類,因此將其人為的劃分為2個(gè)類別。對(duì)于Iris數(shù)據(jù)集,規(guī)定類別標(biāo)號(hào)為Iris-setosa的數(shù)據(jù)為正常樣本,其余為異常數(shù)據(jù);對(duì)于Wisconsin數(shù)據(jù)集,規(guī)定類別標(biāo)號(hào)為malignant的數(shù)據(jù)為正常樣本,其余為異常數(shù)據(jù);對(duì)于Wine數(shù)據(jù)集,規(guī)定類別標(biāo)號(hào)為1的數(shù)據(jù)為正常樣本,其余為異常數(shù)據(jù)。試驗(yàn)中,分別采用本文所提方法、PCA聯(lián)合SVDD方法和PSO-SVDD方法(不進(jìn)行特征提取)3種方法開(kāi)展試驗(yàn),在相同條件下對(duì)試驗(yàn)結(jié)果進(jìn)行對(duì)比。
4.2節(jié)采用某市電網(wǎng)用戶連續(xù)用電負(fù)荷數(shù)據(jù)集,采樣頻率為1次/H,數(shù)據(jù)集中包含93個(gè)電力用戶,其中30戶為正常用戶,3戶為異常用戶,異常用戶比例為3.2%。試驗(yàn)中,采用所提方法對(duì)該實(shí)測(cè)數(shù)據(jù)集進(jìn)行異常檢測(cè),驗(yàn)證所提方法在實(shí)際場(chǎng)景下的性能。
試驗(yàn)中,首先從每類數(shù)據(jù)集中隨機(jī)選取80%的正常數(shù)據(jù)作為訓(xùn)練樣本集。根據(jù)圖1所示流程,利用PCA對(duì)其進(jìn)行特征提取和降維,每類數(shù)據(jù)集得到的主分量個(gè)數(shù)K如表1所示。其中,#POS和#NEG分別為每類數(shù)據(jù)集中的正常數(shù)據(jù)個(gè)數(shù)以及異常數(shù)據(jù)個(gè)數(shù)。
表1 UCI試驗(yàn)數(shù)據(jù)集
初始化PSO算法時(shí),設(shè)置初始種群數(shù)量為10,算法最大迭代次數(shù)為100次,粒子位置信息設(shè)置為2,初始的粒子速度設(shè)置為0.1。利用所提方法(PCA+PSO-SVDD),與PCA-SVDD方法和PSO-SVDD方法(不進(jìn)行特征提取)對(duì)表1中的數(shù)據(jù)進(jìn)行試驗(yàn)得到的異常檢測(cè)準(zhǔn)確率結(jié)果如表2所示。
表2 三種方法的異常檢測(cè)結(jié)果
從表2可以看出,所提方法在4種UCI數(shù)據(jù)集上得到的異常檢測(cè)性能均優(yōu)于另外2種對(duì)比方法。其中,所提方法相對(duì)于PCA-SVDD的異常檢測(cè)準(zhǔn)確率更高,說(shuō)明經(jīng)PSO優(yōu)化后,SVDD的性能出現(xiàn)了明顯提升;而所提方法相對(duì)于PSO-SVDD的異常檢測(cè)正確率更高,說(shuō)明了特征提取的必要性。上述結(jié)論有力地支撐了本文所述內(nèi)容。
試驗(yàn)中,隨機(jī)從90個(gè)正常用戶中選取80個(gè)用戶數(shù)據(jù)作為訓(xùn)練樣本集,利用PCA算法對(duì)其進(jìn)行特征提取和降維,最終得到的主分量個(gè)數(shù)K=2,將其構(gòu)建特征向量并對(duì)PSO-SVDD分類器進(jìn)行訓(xùn)練得到最優(yōu)分類面,然后根據(jù)圖1所示流程算法進(jìn)入測(cè)試階段。首先對(duì)10個(gè)正常用戶和3個(gè)異常用戶組成的測(cè)試樣本集進(jìn)行PCA分解;然后利用訓(xùn)練階段獲得的SVDD最優(yōu)分類面對(duì)其進(jìn)行分類判決,從而實(shí)現(xiàn)異常檢測(cè)。從圖2給出的最終判決結(jié)果可以看出,測(cè)試數(shù)據(jù)中的3組異常樣本全部落在最優(yōu)分類面之外,測(cè)試樣本中的15組正常樣本全部落在最優(yōu)分類面以內(nèi),表明測(cè)試數(shù)據(jù)集中的所有樣本均被正確判決,驗(yàn)證了所提方法的有效性。
圖2 異常檢測(cè)結(jié)果
作為一種經(jīng)典的異常檢測(cè)算法,SVDD的性能受核參數(shù)和懲罰因子影響較大,并且在面對(duì)高維復(fù)雜數(shù)據(jù)時(shí)存在運(yùn)算量大、實(shí)時(shí)性差的問(wèn)題。本文將PCA與SVDD相結(jié)合,提出一種改進(jìn)的異常數(shù)據(jù)檢測(cè)方法。首先利用PCA對(duì)高維數(shù)據(jù)進(jìn)行特征提取和降維,從而提升SVDD的運(yùn)算效率;然后針對(duì)SVDD模型參數(shù)選擇問(wèn)題,將PSO算法引入對(duì)其優(yōu)化,自動(dòng)確定最優(yōu)模型參數(shù),基于UCI公共數(shù)據(jù)集和實(shí)際電力用戶異常數(shù)據(jù)檢測(cè)問(wèn)題開(kāi)展試驗(yàn),結(jié)果表明所提方法能夠有效實(shí)現(xiàn)異常數(shù)據(jù)檢測(cè),并且相對(duì)于對(duì)比方法具有更高的異常檢測(cè)性能,具有較好的應(yīng)用前景。