基于流数据聚类算法的电力大数据异常检测

(整期优先)网络出版时间:2020-08-03
/ 2

基于流数据聚类算法的电力大数据异常检测

王文涛 陈志 陈董秀

国网江苏省电力有限公司镇江供电分公司 江苏 212001

摘要:现如今,人们的生活质量在不断提高,对于电力的需求在不断加大,针对电力大数据流的异常检测问题,该文将流数据聚类算法与电力大数据相结合,针对现有流数据聚类算法不易存储全部数据、断电数据易丢失等问题,以及流数据聚类算法对于离线阶段聚类算法实时应答的要求,从数据的完整性、安全性以及流数据聚类算法的低时间复杂度的角度出发,对CluStream流数据聚类算法进行改进,提出流式K-means聚类算法。对在线阶段,使用Redis集群进行流数据的缓冲,并设计节点时间衰减策略,增大心跳消息中有效消息所占比例;对离线阶段聚类算法进行优化,使用最佳距离法确定初始聚类中心,减少迭代次数;最后,使用所提出的流式K-means聚类算法进行用户用电异常行为检测,实验结果表明,该算法能够很好的发现用户用电异常行为。

关键词:电力大数据;流数据聚类;流式K-means聚类;用户用电异常

引言

互联网作为当前社会信息化发展的核心,推动了大数据、云计算、物联网等技术与现代制造业的融合,成为了全社会的信息交流的重要渠道。网络的高速发展在给人们的生活和通信带来极大便利的同时,也产生了日益严重的安全问题,数据泄露、网络攻击、黑客组织活动、安全漏洞曝光、恶意软件等各方面的爆发式增长使网络安全成为当前研究领域的一大热点。作为一种动态、实时的主动防御技术,入侵检测一直是网络安全领域的一个重要研究方向。而随着网络规模的增加,网络数据流的特性为入侵检测枯术带夹了新的桃战。

1数据流特点

在实际生活中,人们在使用互联网时不断的产生了一种连续且高速到达的数据形式,这种数据形式含有任意规则,例如淘宝浏览、通信记录、传感器数据等等数据信息称之为数据流。数据流是一个含有多重维度的数据点的集合x1,x2,...,xk每个数据点x;都是一个d维的数据项。数据流也是一种有起点和终点的数据序列,每个数据都有自己特定的达到时间和离开时间点。数据流有以下几个特点:(1)数据流是快速的。不同于传统数据即在完整的数据集上处理数据,数据流会在短时间内聚集大量的数据,需要在短时间内快速挖掘具有潜在价值的数据信息。(2)数据范围非常广,数据的维度非常大,例如包括位置信息,手机号码、浏览信息。数据的高维度也正是数据无法保存,必须快速处理的原因。(3)数据到达的时间是持续的,数据连续到达其数据量也是无限的,并且一次的数据处理不会影响整体。(4)数据模型是动态变化的,数据在随着时间不断增加,其数据形式也不是一成不变的。此时需要数据流挖掘算法能够适应不断变化的数据模型,即可以检测新簇何时形成,历史簇何时消失,在基于一定的规律上发现数据流的趋势。

2基于流数据聚类算法的电力大数据异常检测

2.1基于Redis集群的在线阶段优化

对于CluStream算法的在线阶段,本文提出使用Redis集群来进行流数据的维护。Redis是1种非关系型的数据库,其读写速度可达10万/s个键值对,可满足对于用户的实时应答。Redis支持多种类型的数据结构,并为每一种数据类型提供了丰富的数据操作。但由于Redis是单线程的并且没有提供冗余等特性,本文以Redis集群的方式代替单个Redis提供数据缓存,Redis集群扩展了Redis的结构及性能,保留了Redis的优点,并能将数据持久化到磁盘进行数据的备份。

2.2算法的整体设计

对存在概念漂移的流数据中进行异常检测,最主要需要思考的两个问题是检测的实时性和对新概念的适应性。在WKM算法对这两个问题都提出了解决方案,只是在效果上稳定性较差,并且在发生概念漂移时,对新概念的检测时延较长,存在较高的误报率。出现这两点的原因是在聚类时,由于聚类中心是随机产生,所以导致聚类效果不稳定,并且在检测时根据的数据分布是在检测点之前的数据分布,导致新的数据分布无法掌握,出现了可能误报的现象。于是本文考虑使用更优的k-means++聚类算法,使得聚类中心选取更离散,降低随机性,并且增加检测点后的数据缓冲,使得检测时的数据分布就是检测点当前所在的数据分布,以解决上述两个问题。流数据的来源大部分是来自于传感器,而传感器在发送数据时可能由于电压、网络等客观因素导致数据在传输过程中出现缺失。所以对流数据进行异常检测前对其进行数据补全时十分必要的操作。而传感器传递的数据点,一旦发生缺失时,用批处理中的数据补全算法是无法处理的,因为发生缺失后,数据点只剩下了时间戳信息,无法进行分类。

2.3基于密度的增量聚类

在基于密度的聚类中,计算数据点的两两之间的距离存在两个缺点。首先,算法的时间复杂度为0(n2>,同时,空间复杂度也为0(n2)。如果数据集过大,可能会导致系统超负荷。为了解决大数据集的计算时间和内存约束问题,作为一种扩展的DBSCAN算法,DenStream被提出用来处理单遍数据流。DenStream使用了两阶段聚类的思想,包括在线和离线阶段。与DBSCAN算法一样,该算法需要用户提供半径和MinPts两个参数。在在线阶段,该算法执行局部聚类,传入的数据点被分配给一个微簇。在DenStream中,微簇被定义为特征空间中的一个球形,其中心和方差分别为分配给该微簇的数据点的均值和方差。从这个意义上说,每个微簇的中心是属于该微簇的数据点的代表。当一个新的数据点到达时,DenStream处于在线阶段,新传入的数据被分配给一个微簇。如果在数据被分配之后,该微簇的方差小于等于半径,则将新数据点分配到最近的微簇。如果新数据点无法被分配到任何一个己有的微簇,则新建一个微簇。当用户请求最终的聚类结果时,DenStream在离线阶段运行,微簇被分成最终簇。每组重叠的微簇被当作是同一个最终簇。形成最终簇的过程类似于DBSCAN,从具有最多数据点的微簇开始,然后算法通过将重叠的微簇添加到同一簇中来生成簇,直到算法找到谷点(分配到的数据点数量小于MinPts的微簇)。

2.4离线阶段聚类算法改进

对于CluStream算法的离线阶段,本文对K-means算法提出优化。在传统的K-means聚类算法中,初始聚类中心的选择不仅影响聚类的结果,还会影响算法的效率。本文就初始聚类中心的选择,提出最佳距离法确定初始聚类中心,其步骤如下:1)选取数据中第1个点为第1个聚类中心;2)计算数据中(除聚类中心之外的点)其他点到各个聚类中心的距离,取最短距离;3)从各个最短距离中取出值最大距离对应的点,将该点作为下一个聚类中心。该方法不会使聚类中心局限于几个较近的数据点,从而减少聚类迭代次数,使算法执行效率更高。

结语

本文针对现有流数据聚类算法断电数据易丢失、在线数据维护不完整及不能应用于某些对数据敏感的应用等缺点,从数据的安全性、完整性以及离线聚类算法的低时间复杂度要求出发,对流数据聚类算法CluStream提出改进,提出流式K-means聚类算法,使用Redis集群对数据流进行在线维护,并对离线部分进行优化,使流数据聚类算法应用更加准确、高效。最后,本文将改进的算法应用于用户用电异常检测,实验结果证明,该算法能够很好的对电力行业中用户的异常行为进行检测。

参考文献

[1]谭致远.基于用电行为分析的在线用电异常及风险监测系统的设计与实现[D].广州:华南理工大学,2015.

[2]陈启鑫,郑可迪,康重庆.异常用电的检测方法:评述与展望[J].电力系统自动化,2018,42(17):189-199.