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

表1 物聯網卡流量數據的算法評估結果
結果顯示本文算法具備更好的異常數據檢測能力,能夠有效檢測全局和局部異常數據,提升檢測準確率,其中在召回率、精確率上都明顯高于其它兩種算法。
本文針對物聯網卡日使用流量時序數據進行分析,根據異常數據特征,結合iForest算法、LOF算法分別從全局和局部檢測,提出一種基于無監督學習的物聯網卡異常檢測算法。通過實際數據檢驗,表明本文算法具備檢測全局和局部異常數據的能力,并在性能上明顯優于單一的iForest算法和LOF算法。