林濤
廣東省電信規(guī)劃設(shè)計院有限公司 廣東 廣州 510630
本文對無標簽物聯(lián)網(wǎng)卡流量時序數(shù)據(jù)展開研究,利用孤立森林算法(Isolation Forest,iForest)與局部離群因子算法(Local Outlier Factor,LOF)進行數(shù)據(jù)處理,主要提出一種基于無監(jiān)督學(xué)習(xí)的物聯(lián)網(wǎng)卡流量異常檢測算法。
由于本文所研究的物聯(lián)網(wǎng)卡流量數(shù)據(jù)不包含任何標簽信息,因此本文選擇兩種無監(jiān)督異常檢測算法——iForest算法與LOF算法,它們分別能從全局和局部上檢測異常數(shù)據(jù),利用這兩種算法構(gòu)建本文流量異常檢測方法。
iForest算法是一種集成學(xué)習(xí)異常檢測算法,主要是創(chuàng)建孤立樹模型(Isolation Tree,iTree),集成多個iTree模型的數(shù)據(jù)分割結(jié)果。iTree模型是一種二叉樹數(shù)據(jù)結(jié)構(gòu),對于隨機抽樣子集,從中隨機抽取數(shù)據(jù)屬性,在取值范圍內(nèi)隨機選擇劃分點作為樹節(jié)點,并遞歸生成完整的iTree模型,直至各葉子節(jié)點上僅有一個樣本。iForest算法通過集成多個iTree模型,計算樣本的平均樹高度,以值越小,異常程度越大為原則,給出樣本異常程度評分。
iForest算法主要從全局數(shù)據(jù)分布結(jié)構(gòu)上檢測異常數(shù)據(jù),因此可以利用該算法檢測出全局上使用流量異常的物聯(lián)網(wǎng)卡。
LOF算法主要使用局部離群因子來度量樣本的異常程度,算法核心是計算樣本與鄰近樣本的局部可達密度,得到樣本的局部離群因子。通過計算樣本的局部離群因子值,LOF算法最終以該值作為樣本異常程度評分,值越大越可能異常。LOF算法可以有效發(fā)現(xiàn)局部異常數(shù)據(jù),有助于檢測出使用流量局部波動較大、偏離正常變化趨勢的物聯(lián)網(wǎng)卡。
物聯(lián)網(wǎng)卡使用流量數(shù)據(jù)主要為日流量數(shù)據(jù),本文以一個月為時間周期,形成以日流量為數(shù)據(jù)屬性的分析數(shù)據(jù)集。為使iForest算法、LOF算法有效應(yīng)用于數(shù)據(jù)集上,本文對上述兩種算法進行相應(yīng)處理。
iForest算法僅用日流量屬性未必能反映出流量趨勢異常的特征。正常流量數(shù)據(jù)應(yīng)在月內(nèi)波動小、穩(wěn)定并取值合適等,所以需要對數(shù)據(jù)增加下列衍生屬性:
(1)物聯(lián)網(wǎng)卡月內(nèi)使用流量的極差。
分離培養(yǎng)的100-111號菌株中,103號菌株處理無明顯電泳條帶顯示,而其他11種菌株均呈現(xiàn)不同亮度的電泳條帶(圖1)。經(jīng)驗證表明12T-103菌株處理依然無明顯電泳條帶顯示(圖2)。這說明103菌株能明顯的降解Cry1Ac蛋白,命名為12T-103菌株。另外,Cry1Ac蛋白標準品、無菌水處理和各菌株處理均在70 kDa附近有明顯電泳條帶,Cry1Ac蛋白標準品分子質(zhì)量約70 kDa。
(2)物聯(lián)網(wǎng)卡月內(nèi)使用流量的四分位距。
(3)物聯(lián)網(wǎng)卡月內(nèi)使用流量的中心點。
根據(jù)以上衍生屬性,結(jié)合日流量得到入模數(shù)據(jù),利用iForest算法能夠檢測出在全局上使用流量較大、變化趨勢波動大的物聯(lián)網(wǎng)卡。
LOF算法能夠有效挖掘出隱藏在正常數(shù)據(jù)中的局部異常數(shù)據(jù),這在單一的數(shù)據(jù)趨勢模式下尤為明顯。因此先對原始數(shù)據(jù)進行趨勢模式挖掘,主要利用k-means聚類算法實現(xiàn),因為模式數(shù)目未知,故由肘部法則自動選擇模式數(shù)目,最后對各類模式的數(shù)據(jù)應(yīng)用LOF算法進行檢測。
經(jīng)以上處理,本文提出基于無監(jiān)督學(xué)習(xí)的物聯(lián)網(wǎng)卡流量異常檢測方法,結(jié)合iForest算法和LOF算法,從全局和局部上進行異常檢測,具體算法流程如下。
算法流程如下:
輸入:物聯(lián)網(wǎng)卡日使用流量時序數(shù)據(jù)集X,iTree模型數(shù)目m,鄰近數(shù)目k,全局異常程度閾值eG和局部異常程度閾值eL。
輸出:全局異常程度評分SG,局部異常程度評分SL和異常結(jié)果標簽label。
step1:對數(shù)據(jù)集X計算衍生屬性,結(jié)合日流量屬性作為入模數(shù)據(jù)。
step2:用iForest算法檢測入模數(shù)據(jù),給出數(shù)據(jù)的SG,當SG>eG時,令label=1。
step3:將數(shù)據(jù)X中未標記標簽label的數(shù)據(jù)組成子集subX。
step4:利用k-means算法對子集subX進行使用流量趨勢模式聚類,并用肘部法則確定模式數(shù)目。
step5:對各類趨勢模式數(shù)據(jù),利用LOF算法進行異常檢測,給出數(shù)據(jù)的SL,并記錄最大值maxSL=max(SL),當SL>eL時,令label=1。
step6:對數(shù)據(jù)集X中未被標記的數(shù)據(jù),令其label=0,對于未有SL的數(shù)據(jù),令其SL=maxSL。
其中,當label=1表示物聯(lián)網(wǎng)卡使用流量產(chǎn)生異常,否則正常。
本文用實際物聯(lián)網(wǎng)卡流量數(shù)據(jù)進行實驗,與iForest算法和LOF算法進行對比,以召回率、精確率和準確率為性能評價指標,實驗結(jié)果見表1。
表1 物聯(lián)網(wǎng)卡流量數(shù)據(jù)的算法評估結(jié)果
結(jié)果顯示本文算法具備更好的異常數(shù)據(jù)檢測能力,能夠有效檢測全局和局部異常數(shù)據(jù),提升檢測準確率,其中在召回率、精確率上都明顯高于其它兩種算法。
本文針對物聯(lián)網(wǎng)卡日使用流量時序數(shù)據(jù)進行分析,根據(jù)異常數(shù)據(jù)特征,結(jié)合iForest算法、LOF算法分別從全局和局部檢測,提出一種基于無監(jiān)督學(xué)習(xí)的物聯(lián)網(wǎng)卡異常檢測算法。通過實際數(shù)據(jù)檢驗,表明本文算法具備檢測全局和局部異常數(shù)據(jù)的能力,并在性能上明顯優(yōu)于單一的iForest算法和LOF算法。