林涛
广东省电信规划设计院有限公司 广东 广州 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算法。