基于DBSCAN聚类的热能发电大数据异常检测模型
2023-03-04薛贵元
郭 莉,吴 晨,薛贵元
(国网江苏省电力有限公司经济技术研究院,江苏 南京 210000)
热能种类繁多、数量庞大,其中包括太阳能、工业余热等类别,充分利用热能可以提高能源的利用率,减少石油、煤炭等不可再生资源的消耗。以低温热能有机物循环发电系统为例,其为在节约能源的同时,也造成了发电大数据的迅速增长,随之出现了数据庞大且信息贫乏的情况[1-2]。低温热能有机物循环发电系统在受到自身或外界某些因素影响时会导致数据异常,为了保证热能发电系统的稳定运行,相关的数据异常检测方法变得至关重要。
孙文慧[3]等以供热末端住户供暖数据为研究对象,利用高斯混合聚类算法将数据集映射到高维空间并完成聚类后,搭建工业大数据分析平台实现异常用热数据集的解释与辨识。周嘉琪[4]等为了精准快速地定位光伏发电系统中光伏逆变器的异常,提出了一种基于GAN的异常检测方法。采用卷积长短期记忆网络的编码器,提取每个时间序列数据的时间信息以及各变量之间的相关信息后,求解异常评分函数实现光伏逆变器数据异常检测。肖勇[5]为了解决智能电表遭受的网络攻击的问题,提出了基于深度信念网络与数据聚合模型的智能电表数据异常检测方法。将分布式数据模型聚合后的数据输入至深度信念网络中,将执行数据经过深度信念网络提取特征传送至电表数据计量管理系统,实现智能电表损失检测。上述方法虽然都实现了异常检测,但是由于热能发电大数据种类较多,数量庞大,导致其存在误报率高、检测率低和漏报率高的问题。
为了解决上述方法存在的问题,基于密度的噪声应用空间聚类(density-based spatial clustering of applications with noise,简称DBSCAN)方法可以将簇定义为密度相连的点的最大集合,能够把具有足够密度的区域划分为簇,并可以在有噪声的空间数据集中发现任意形状的簇,提高数据检测的准确性,因此将该方法引入热能发电大数据异常检测模型设计中,以此提升热能发电大数据异常检查命中率,对异常事件精准锁定,从而提高解决问题的效率并降低经济损失。
1 数据预处理
低温热能有机物循环发电系统主要由膨胀机蒸发器、冷凝器、工质泵和发电机构成,该系统的各个部件均会产生压力、质量流量、温度等不同类型且数量众多的数据,一旦其受到大量的无关数据和噪声数据影响,将会导致数据异常或丢失,因此在异常检测前需要对数据进行预处理[6]。
1.1 数据异常值修正
设延迟算子为B,光滑算子为α(B),可逆算子为β(B),α(B)和β(B)的对应参数为α1,α2,…,αq和β1,β2,…,βq,∇表示1-B,at为满足正态分布的噪声序列点,用ARIMA模型对未检测到的热能发电大数据异常的时间序列为{Xt}:
(1)
(2)
通过ARIMA模型表示时刻T的时间序列,该序列存在已被检测到的缺失值和噪声点[7],具体分为以下两种情况:
1)持续异常模型
设{Yt}表示在时间t处存在持续异常值的时间序列,此序列可表示以下形式:
(3)
2)独立异常模型
设{Zt}表示在时间T处存在持续异常值的时间序列,该模型被独立异常值影响,如下所示:
(4)
由式(2)和式(3)可以看出,Yt和时间t后的时间序列Yt+1,Yt+2…均会受到异常值的影响,由式(4)可以看出,独立异常值只对时间T处的序列值产生影响。
设模型拟合误差为et,t+j项的拟合误差为et+j,残差影响算子为πj,得到持续异常值和独立异常值对时间序列的影响ωφ和ωφ如下所示:
(5)
(6)
通过以上计算可以修正时间序列中数据被异常值所影响的部分。
1.2 数据归一化
工质泵是低温热能有机物循环发电系统的动力部分,其中包含了循环效率、工质吸热量、净输出功率三个指标,上述三个指标的单位和量纲特征量不一致,会对热能发电大数据分析的结果和数据指标的可比性产生影响,因此在修正时间序列中数据异常部分后,还需要对数据进行归一化处理,从而使数据不受到量纲的影响。将热能发电大数据归一化处理后,数据的各项指标数量级统一,能够对其进行更加准确的对比研究。基于DBSCAN聚类的热能发电大数据异常检测模型中,数据归一化处理采用的是离差标准化算法[8]。
设原始数据为x,发电数据集中最大值为xmax,最小值为xmin,将x进行线性转换,其结果x*映射到[0,1]中,归一化计算方式如下:
x*=x-xmin/xmax-xmin
(7)
2 构建热能发电大数据异常检测模型
2.1 流式DBSCAN
在收集热能发电大数据用于研究时,发电数据是以数据流的形式存在的[9],对频率动态聚类进行计算时需要实时更新,从而检测异常数据。基于DBSCAN聚类的热能发电大数据异常检测模型通过Streaming DBSCAN实现该检测步骤。设x为一个新出现的数据点,对其建立新的密度联系,有如下四种可能的状态:
1)x为异常值
若新数据点x的邻域内不存在核心点,则x为异常值。
2)创建新的聚类
若新数据点x本身为核心点,x不存在于其他现有聚类中,且在x密度可到达的点中没有出现聚类核心点,则生成新聚类。
3)加入现有聚类
若新数据点x与任意一个聚类的核心点呈现密度可达的状态,则将x加入该聚类。
4)合并多个聚类
若插入新数据点x后呈现不同聚类核心点密度可达的状态,则将x与相邻聚类合并生成新聚类。
由于历史数据会对新数据产生影响,因此引入延迟因子α判断其影响,当α的值为1时,历史数据和新数据影响相同,当α的值为0时,历史数据的影响可以忽略不计。设用xt表示新到达的数据,ct表示上一时刻或历史时刻聚类情况,ct+1表示新的聚类,nt+1表示新聚类中数据点个数,nt+1=nt+m,其中nt为历史数据数量,mt为新到达数据数量,对新聚类进行计算得到:
ct+1=ctntα+xtmt/ntα+mt
(8)
2.2 Spark Streaming
处理大量的数据流对系统的性能有很高的要求,为此基于DBSCAN聚类的热能发电大数据异常检测模型采用Spark Streaming进行流处理,Spark Streaming可以接入多种数据源,是Spark对于数据流处理的一种延伸[10],Spark的优点是在数据挖掘和机器学习需要多次迭代的情况下依然适用,Spark最基本的数据结构是RDD[11],其作用是通过本地集合完成分布式数据集的操作,Spark中对数据流的抽象为DSsteams,DSsteams用来描述连续序列RDDs,其中全部RDD都存在特定时间间隔的一段数据。
2.3 Streaming DBSCAN算法
通过Spark Streaming设计热能发电大数据Strea-ming DBSCAN算法,该算法对数据流计算分为以下步骤:
1)历史数据选取利用
选择具有代表性的历史数据建立训练数据集[12],用以获取不同类型的热能发电数据特征,将数据通过DBSCAN算法聚类处理并进行数据点标注,设标注后的数据点为p,数据点的属性、所在聚类和类型分别为xi、y和z,得到
p=(y,[x1,x2,…],z)
(9)
在低温热能有机物循环发电系统运行过程中,选取的历史数据会更新为涵盖多时间间隔的真实数据,对于Spark Streaming,这些数据会成为广播变量并下发到全部节点。
2)单位时间内的数据向量计算
依据系统实时性需求计算单位时间内的有效电压、电流和发电量,将其作为热能发电数据的特征量。结合其他相关信息,得到数据点向量。
利用电流值描述发电特征[13],设有效电流值为Ie,采样周期和采样时刻分别为T和i(T),得到
(10)
通过Spark Streaming对时间间隔内采集到的数据点进行计算并输出向量,计算分为两个部分,分别为Map和Reduce[14],其中Map部分用来解析数据,获取需求数据;Reduce用来进行数据规约,对数据进行合并分类,输出向量。
3)Streaming DBSCAN
实时检测输出的发电数据向量聚类特征,以便识别其中存在的异常数据,将其用于低温热能有机物循环发电系统的问题判断。发电数据的聚类特征表现在横向与纵向上[15],横向为相似发电厂,纵向为历史数据。聚类特征分为个体与群体特征,个体聚类特征为某发电厂一天的发电信息和历史发电信息之间会呈现相似特性[16];群体聚类特征为对于相似的发电厂,发电特征会呈现相似性。在样本集中数据数量满足条件时[17],若某一发电厂发电信息与其历史信息或与相似发电厂的信息不相符,则该发电信息可能有问题出现,需要对其重点观察。对异常数据的判断主要通过横向与纵向上是否表现出聚类特征,若表现出聚类特征,则正常,反之,异常。
4)获取异常数据
采用根据历史数据获取的延迟因子将最近的时间间隔内的数据建立为训练集,重复以上步骤,完成异常数据的检测。
3 实验与结果
为了验证基于DBSCAN聚类的热能发电大数据异常检测模型的有效性,需要对其检测能力进行测试。
3.1 对比测试
分别以误报率、检测率和漏报率为指标对所提方法、文献[3]方法和文献[4]方法进行如下测试,每项指标进行5次不同实验,实验结果如下:
1)误报率测试
对所提方法、文献[3]方法和文献[4]方法进行误报率测试,测试结果如图1所示。
图1 误报率检测结果
由图1可以看出,采用所提方法、文献[3]方法和文献[4]方法建立的模型对发电大数据异常值进行检测时,所提方法的整体误报率均低于文献[3]方法和文献[4]方法,在第5组实验中,所提方法、文献[3]方法和文献[4]方法的误差率均有升高,但所提方法依旧低于文献[3]方法和文献[4]方法,因为所提方法在对异常值检测前通过时间序列模型对原始发电大数据进行了数据序列异常值的分析与修复,使数据更为精确,更具有代表性。从而降低了所提方法的误报率。
2)检测率测试
对所提方法、文献[3]方法和文献[4]方法进行检测率测试,测试结果如图2所示。
图2 检测率检测结果
由图2可以看出,所提方法在5次实验中的检测率均高于文献[3]方法和文献[4]方法,说明所提方法对热能发电大数据检测的覆盖面更广,对数据的利用性更高,更有助于获取到准确的发电异常值。
3)漏报率测试
对所提方法、文献[3]方法和文献[4]方法进行漏报率测试,测试结果如图3所示。
图3 漏报率检测结果
由图3可以看出,所提方法的漏报率较为稳定且始终低于文献[3]方法和文献[4]方法,说明所提方法在热能发电大数据检测中的有效性更强。
3.2 异常值测试
利用所提方法对热能发电大数据异常值进行检测,检测结果如图4所示。
图4 异常值检测结果
由图4可以看出,采用所提方法共获取到7个发电异常值,与发电厂发电的实际情况相吻合,说明所提方法对发电大数据异常情况的检测具有较高的可靠性。
4 结 语
低温热能有机物循环发电系统的不断优化促使电力数据量的不断增加,对热能发电大数据进行挖掘研究并建立异常检测模型变得至关重要。为了解决热能发电大数据异常检测存在误报率高、检测率低和漏报率高的问题,提出了基于DBSCAN聚类的热能发电大数据异常检测模型,将预处理后的原始发电大数据通过Streaming DBSCAN算法完成异常值的获取,解决了误报率和漏报率高的问题,提高了异常数据检测率,对保障低温热能有机物循环发电系统稳定运行具有重要的意义。