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