法律状态公告日
法律状态信息
法律状态
2019-08-06
授权
授权
2017-02-08
实质审查的生效 IPC(主分类):H04L12/26 申请日:20161107
实质审查的生效
2017-01-11
公开
公开
技术领域
本发明涉及一种电力信息网络流量异常检测方法,属于电力系统技术领域。
背景技术
随着电力信息网络规模不断扩大、复杂性不断增加,基于信息网络的各类应用业务也越来越广泛,产生的数据量非常庞大,这就导致网络出现异常的可能性大大增加。而且在信息网络中,很难找到发生问题的根源,未被诊断的网络异常会进一步传播并影响网络的正常信息传输。因此,如何对网络流量进行实时的监测和评估,并及时发现网络的异常,对提高网络的稳定性和安全性具有重要意义。
目前网络异常诊断比较常规的做法是根据网络运行质量监测和评估的指标来观察网络的行为规律,并进一步发现和排除异常。但是目前国内针对电力信息网络的流量分析手段处理能力弱,颗粒度大,这些问题造成了电力信息网络的数据盲视和流量数据信息黑洞,同时在流量饱和或网络拥塞等情况发生时,无法进一步对异常源进行深层次排查分析。另外,网络管理中心需要处理网络中各种各样的故障信息,这些大多需要历史经验来指导,然而庞大的数据量不可能都由人工来完成。因此,目前电力信息网急需一种流量问题的预警机制,能够在第一时间发现异常,并让管理中心能快速地通过流量管理手段解决问题。
发明内容
本发明要解决技术问题是:克服上述技术的缺点。提供一种更加关注数据的局部性,提高了检测精确度的电力信息网络流量异常检查方法。
为了解决上述技术问题,本发明提出的技术方案是:一种电力信息网络流量异常检测方法,包括如下步骤:
S1、在电力信息网中,通过部署在网络节点上的流量采集设备采集样本数据,采集到的样本数据包括数据包包头各个字段的信息;
S2、使用离差标准化方法对采集到的样本数据进行标准化,使数据都转换为[0,1]区间上的值;
S3、将上步骤所得到数据的集合定义为pj;定义pj中的对象p与距离它第k近的邻居的距离为dk(p),则至少有k个对象oi,满足d(oi,p)≤d(ok,p),最多有k-1个对象oj,满足:d(oj,p)<d(ok,p);对象p的k近邻定义为
S4、得到m距离后,定义对象p的m近邻:
S5、计算对象p的局部密度(对象p的m近邻集合个数除以集合内对象到p的可达距离和),公式为:
>
S6、计算对象p的局部异常因子(局部异常因子定义为局部密度的倒数),公式为:
>
S7、递归S1至S6,直到pj中所有对象均计算完成;将所得的结果与设定阈值进行比较,大于阈值的则为异常点;将异常点输出。
上述方案进一步的改进在于:所述步骤S4中的ε是常量。
上述方案进一步的改进在于:所述步骤S9中的阈值可以根据经验值给定,也可根据实际流量变化进行动态调整。
本发明提供的电力信息网络流量异常检测方法,在LOF算法的k距离和k近邻的基础上,提出了m距离和m近邻的概念,并基于m距离和m近邻对异常点进行检测,降低传统的LOF算法的k取值敏感性,更加关注数据的局部性,提高了检测精确度;能够对电力信息网络流量实时监控,及时发现网络异常。
附图说明
下面结合附图对本发明作进一步说明。
图1是本发明实施例的一个优选的实施例K取10时10000个连续流量包检测结果。
图2是本发明实施例的一个优选的实施例K取30时10000个连续流量包检测结果。
图3是本发明实施例的一个优选的实施例与LOF算法的准确率比较。
具体实施方式
实施例
本实施例的电力信息网络流量异常检测方法,包括如下步骤:
S1、在电力信息网中,通过部署在网络节点(网路上的交换机或者路由器)上的流量采集设备采集样本数据,采集到的数据包括数据包包头各个字段的信息;
S2、从采集到的数据中剔除无关维度的数据,无关维度通过经验确定,并删除数据中的明显的异常值;
S3、使用离差标准化方法对数据进行标准化,使数据都转换为[0,1]区间上的值,使用如下公式:
>
S4、将上步骤所得到的数据集合定义为pj;定义pj中的对象p与距离它第k近的邻居的距离为dk(p),则至少有k个对象oi,满足d(oi,p)≤d(ok,p),最多有k-1个对象oj,满足:d(oj,p)<d(ok,p);对象p的k近邻定义为
S5、对象p的m近邻,针对m距离,可以得到对象p的m近邻:表示所有与p之间距离小于m距离的对象组成的集合;
S6、对象p相对于对象o的可达距离reach_distm(p,o),表示p的m距离和p与o之间距离的最大值;计算该值,其公式为:reach_distm(p,o)=max{m_dk(o),d(o,p)};
S7、计算对象p的局部密度(对象p的m近邻集合个数除以集合内对象到p的可达距离和),公式为:
>
S8、计算对象p的局部异常因子(局部异常因子定义为局部密度的倒数),公式为:
>
S9、递归S1至S8,直到pj中所有对象均计算完成;将所得的结果与设定阈值进行比较,大于阈值的则为异常点;该阈值可以根据经验值给定,也可根据实际流量变化进行动态调整;最后将异常点输出。
传统的LOF算法对算法中邻居k的取值比较敏感,当数据量很大时,k如果取值过小,会将很多比较集中的异常点判断为正常点,k如果取值过大,又会使正常点受影响被判断为异常点。而本实施例提出的M-LOF算法虽然也会受k值影响,但对k值的敏感性比LOF降低很多。
如图1和图2所示,分别为K取10和30两种情况下的结果。在k=10的实验中,由于异常因子值的均值在2.5左右,95%的数据都小于2.5,可以将异常的阈值设置为2.5,即所有大于2.5的点都判为异常。实际使用中,阈值的设置是通过经验数据来调整的,为了提高算法召回率可以将门限提高。同样的方法,在k=30的实验中,将异常的阈值设置为5。通过比较发现,在k=30的实验中,90%的数据都在阈值以下,精度要比k=10的实验低5个百分点。这表明在k值较大时,会使小部分正常点被误判为异常点。所以,在本实施例中,选用k=10的M-LOF算法作为具体模型。
为了测试本算法在不同数据集时的准确度,通过设置数据集的大小,从1000,2000…到9000,10000条数据量,对M-LOF算法和LOF算法的运行情况进行了分析比较,结果如图3所示,数据集较小时,两种方法的准确率都比较低,这是因为数据量不够,各个数据间的距离仍然比较稀疏,基于密度的算法不能从稀疏的数据集中很好地区分异常点和正常点。当数据集大小大于2000时,虽然随着数据集个数的增加,两种算法的效率都会下降,但是M-LOF算法的检测精度明显高于传统的LOF算法,更适合在数据量大的网络流量数据集中作为异常检测的算法模型。通过大量的真实电力信息网流量数据验证了上述方法具有较高的准确率和较低的误报率,能快速地对网络中的流量异常发出提前预警,从而进一步提高网络质量,增加电力信息网络的稳定性。
本发明不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换形成的技术方案,均为本发明要求的保护范围。
机译: 一种基于目的地网络分布熵的网络流量异常检测方法
机译: 一种基于目的地网络分布熵的网络流量异常检测方法
机译: 网络流量异常检测模型的培训方法和检测方法