田 野,张 程,毛昕儒,刘 骥
(1.重庆大学 计算机学院, 重庆 400044; 2.国网重庆永川电力公司, 重庆 402160)
运用PCA改进BP神经网络的用电异常行为检测
田 野1,张 程1,毛昕儒2,刘 骥1
(1.重庆大学 计算机学院, 重庆 400044; 2.国网重庆永川电力公司, 重庆 402160)
针对目前用户用电行为和异常检测的传统方式所遇到的资源耗费、效率低下、检测困难等问题,结合数据挖掘技术设计实现了适用于大规模用电数据挖掘的算法,并建立了有效的异常特征提取模型。通过使用基于统计的特征提取方式确定异常指标,并使用主成分分析方法对特征数据降维,进行异常用电信息的分析、辨识和处理,之后对处理后的用电数据建立BP神经网络完成用电异常行为检测。检测结果表明:该方法可以有效地提取出用电行为特征,并且能有效用于用电异常检测。
用电行为;异常检测;特征提取;主成分分析;神经网络
随着电网系统信息化程度的不断提高和用户用电数据量的迅速增长,各类电网装置及系统都有大量的数据要处理,数据规模庞大,蕴含的事件信息种类繁多。然而,从大量价值密度较低的数据中挖掘出有价值的信息仍是电力企业面临的重要问题[1]。同时,由于通信、设备故障、电网波动以及用户异常用电行为等原因,出现了大量数据异常的现象,这些异常数据影响了电能数据的准确性。因此,本文针对上述问题研究适用于大数据的用户用电行为分析方法,并建立一个有效的异常发现模型。
早期对于设备故障产生的用电异常多采用的是现场检测方法,即技术人员到用电现场进行排查。这种处理方式极其耗费人力、物力资源,效率低、效果差,而且很难获取计量设备的电压、电流、功率等瞬时量数据[2]。同时,这种方式还存在极大的人为因素,不利于电力行业的管理。近年来,国内外专家学者提出了一些基于数据挖掘技术和智能优化算法的用电异常检测方法,其中人工神经网络是人工智能领域兴起的研究热点。
本文以用户日常用电行为检测为主,以提取数据有用特征和提高分类精度为主要目的,结合数据挖掘的方法解决时序数据分类的问题,实现用电异常检测的概率预警。该方法降低了电网公司检测分析的时间及成本,提高了异常检测精确度及工作效率,具有重大的经济效益。
1.1 智能电网的发展
一般的用电异常指标分为线损异常和瞬时量异常两类。早期的用电异常检测办法是确定各个用电异常指标以及每个异常指标的阈值,并其赋予不同的权重分值,累加后计算每个用户的窃电嫌疑系数[3]。即根据这些异常指标设计窃电识别模型,通过计算嫌疑系数来识别窃电用户。然而这类异常数据大多由设备故障产生,需要到现场检测排查,导致效率太低且不利于统计管理。
近年来,随着智能电网的高速发展建设,智能电表的快速普及,使得电网能够更方便、更准确地获取并查询用户的用电信息。它利用现代网络通信技术进行信息海量交互,实现电网设备间的信息交换,并自动完成信息采集、测量和检测等基本功能,有利于现代化管理,并方便用于数据挖掘分析。
1.2 用电行为分析
国内外许多专家学者对用户用电行为特征进行了大量研究。近年来,一些基于数据挖掘技术和智能优化算法的异常检测方法相继提出,包括决策树、模糊C均值、人工神经网络、负荷模式、SVM、OPF分类以及极限学习机等。
1.2.1 异常检测算法相关研究
谢涛等[4]针对非法用电行为构建线性方程组数学模型,提出了基于智能电表的分布式检测方法。简富俊等[5]使用单类SVM无监督机器学习架构对电力用户负荷异常进行检测,在小样本及样本分类不均衡环境下提高检测的准确性。冯晓蒲等[6]使用模糊C均值算法对其进行聚类分析,得到负荷簇和负荷代表曲线,分析了属于各行业和电价类的用户负荷聚类结果。林嘉晖[7]构建了适用于电网企业的用户行为分析系统并实现了部分数据挖掘算法,能够对大量用户数据进行分析。
Cabral等[8]提出了一种基于粗糙集的异常用电检测统计方法。Nagi等[9]提出一种基于改进SVM的异常检测模型,并使用包含知识和专家意见的模糊推理系统。Ramos等[10]提出一种基于和声搜索算法和OPF分类的混合特征选择算法,并成功应用到电力系统。Pereira等[11]提出一种利用电场算法训练多层感知机的人工神经网络方法。
1.2.2 特征提取方法研究现状
现有的时间序列特征提取的方法有分别基于统计方法、模型、变换和分形维数的特征提取。 基于统计特征的提取就是提取数据波形的均值、方差等统计特征来代表原有的时序数据作为特征矢量;而基于变换的特征提取方法包括SVD、主成分分析(PCA)和线性判别式分析等。其中,利用PCA方法的变换可以在信息损失最小的前提下,用较少的分量来代替原来的高维数据,达到降维的效果[12]。
杨光[13]使用BP神经网络算法建立异常用电检测模型,然而该模型缺乏数据特征提取过程,不能用于本实验含有大量噪声和随机性的时序数据。胡殿刚等[14]在训练数据前做了基于CFS方法的特征选择过程,但由于数据类型的差异,在本实验中不能取得很好的效果,所以需要针对本实验数据集提出更合适的特征提取方法。
1.3 BP神经网络技术
人工神经网络是人工智能领域兴起的研究热点。近几年,BP神经网络的研究工作不断深入,在许多实际应用领域中取得了很大的进展,成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。目前,在手写字体的识别、语音识别、文本—语言转换、图像识别以及生物医学信号处理方面已有实际的应用[15]。
BP神经网络的一般结构如图1所示。
图1 BP神经网络结构
BP网络具有很强的非线性映射能力,而且网络的中间层数、各层神经元个数及网络的学习系数等参数可以根据实际情况设定,有很大的灵活性,经过学习能够把样本隐含的特征和规则分布在神经网络的连接权上。
随着电力系统升级、智能电力设备的普及,国家电网公司可以实时收集海量的用户用电行为数据。如图2所示,为国家电网搜集到的2015年全年近10 000个用户的每日用电量数据表。其中,用户日用电量表记录了所有用户每日用电量千瓦时、当天及前一天的总用电量表示值,每个用户拥有一组维度为334的时序数据。用户清单确定了用户标识信息,提供了对应编号用户是否为用电异常用户的标识。
图2 用户部分用电数据实例
2.1 特征提取方法
本文结合已获取的用户用电时序数据,使用基于统计特征和基于PCA变换的提取方法,对用电数据建立特征提取模型。首先对用户用电数据中的噪声干扰进行清洗处理;然后确定出各类统计特征指标;最后采用PCA方法对用电数据特征降维。
2.2 数据清洗
数据清洗过程用于发现并纠正数据集中可识别的错误,包括检查数据一致性、处理无效值和缺失值等。不符合要求的数据主要分为残缺数据、错误数据、重复数据3类。
首先,对本实验所用的数据集做归一化处理后计算所有用户同一天用电量的均值,并得出一年用电量的平均走势图,如图3所示。图4为每个用户一年的用电量走势。从图中可以看出:数据集中用户在10月份的用电量数据均有大部分缺失,故在数据处理时去除10月份的时序片段。
图3 所有用户全年平均用电走势
图4 所有用户全年用电量时序
然后,在对原始数据集的观察中得知:有部分用户全年的日用电量数据大部分为0或者缺失,如图5所示。这类用户数据信息残缺严重,在对数据特征提取阶段会造成一定干扰,所以需要去除这类残缺用户的数据。本实验定义当单个用户的日用电数值为0或缺失的天数占全年时间的60%以上时认为该用户为残缺用户。
对于数据缺失量低于60%的用户,通过计算缺失位置前后两天的均值来做填充补全处理。
图5 部分用户的大量缺失数据
2.3 建立统计特征
参考用户用电行为相关研究并结合实际用电数据分析,本文首先对用电行为特征在时间上以年、季度、月份为单位划分,并计算每个用户的单位时间均值、标准差和离散系数序列;然后在用电走势上大致分为变动趋势、波动趋势、升降趋势3种趋势类型。基于统计方法提取的特征如表1所示。
表1 统计特征指标
假设本实验所用到的数据集为X={xn,n=1,…,N},数据集中包含N个日常用电用户,每个用户划分为D天、M个月、Q个季度的用电数据,则:
每个用户的日用电量序列:
xn={xnd,d=1,…,D}
月用电量序列:
季度用电量序列:
2.3.1 波动趋势
在统计中标准差被用来评估序列可能的变化或波动程度,标准差越大,数值波动的范围就越大。所以,这里计算用电量标准差std来表示用电数据的波动特征。同时,计算用电离散系数cv来衡量用户用电的离散程度。令某一时间段用电平均值为μ,则用电量标准差:
(1)
用电离散系数:
cv=std/μ
(2)
2.3.2 变动趋势
变动性特征是指用户用电量的前后差异性度量,即由某一时间段与前一相邻时间段的平均用电量比较,其差值和比值来反映用电量变动的快慢程度。定义计算方式如下:
相邻k月或k季度用电均值的差值:
(3)
相邻k月或k季度用电均值的比值:
(4)
2.3.3 升降趋势
上升下降趋势特征是指通过根据用户连续几日的用电量做出下一次用电量的预测,并与下一次实际用电量比较,得出上升或下降的可能性。这里使用简单移动平均法来确定升降趋势的特征向量。简单移动平均法根据时间序列逐项推移,依次计算固定项数的一组平均值,并作为下一次的预测值。令k为移动项数,t时刻实际值为xnt,则升降特征的计算方法得
t时刻预测值:
Ft=(xn(t-1)+xn(t-2)+…+xn(t-k)/k
(5)
t时刻升降趋势:
tr=xnt-Ft
(6)
若tr<0,则表明用电趋势下降;若tr>0,则用电趋势上升。
2.4 主成分分析
在进行时序数据的特征提取的过程中,提取的特征维数太多会导致特征在匹配时过于复杂,消耗系统资源,因此需要对数据进行特征降维,将高纬度的特征经过某种函数映射至低纬度作为新的特征。
主成分分析(PCA,principal component analysis)就是一种常用的数据降维方法。PCA算法通过提取数据的主要特征分量,将高维数据投影到较低维空间,将原始数据变换为一组各维度线性无关的表示,使得处理数据的时间和费用大大降低。另一方面,由于各主成分是相互垂直的,所以增大了类间距,减小了类内差异,可提高分类精度。
对于n维向量的m个样本值,形成一个m×n的矩阵X。将X的每一列减去对应该列的均值得X′,再计算它的协方差矩阵C。然后求出协方差矩阵C的特征值λ及对应的特征向量V:
CV=λV
(7)
将特征值由大到小排列:λ=[λ1,λ2, …,λn],并取前k个特征值对应的特征向量,得到一个n×k的矩阵A。计算:Ym×k=Xm×nAn×k,Y即为降维到k维后的新特征数据。
在PCA算法中,对于新的特征维度k值的确定,需要进一步分析每个主成分对信息的贡献。如果取的k值小,则数据的维数低,便于分析,同时也降低了噪声,但可能丢失一些有用的信息。所以定义主成分贡献率r作为k的取值标准。贡献率是指主成分对应的特征值在整个数据中承担的比重,当取前k个主成分来代替原始数据特征时,累计贡献率的大小反映了新特征的可靠性,累计贡献率越大,则可靠性越大。本实验要求选取的新特征的累计贡献率达95%以上,即:
(8)
3.1 异常检测模型
本文的模型设计流程大致分为数据采集、数据清洗、特征提取、神经网络设计、模型建立、实验分析这6个部分。基于PCA改进BP神经网络的用户用电异常行为检测模型的总体结构如图6所示。
图6 用户用电异常检测模型结构
3.2 BP神经网络
本实验将特征提取步骤中对原始数据样本提取的6个特征维度作为输入因素,最后输出用电异常和用电正常2种可能结果,分别以0和1表示,即网络模型为多输入单输出二类分类模型,如图7所示。相对于一般的BP神经网络,本文针对用电时序数据样本量较大和维度较高的特征,在BP神经网络的结构设计上采用双隐含层,使数据处理精度得到保证。
图7 本文所用BP神经网络结构
为保证在实际训练时网络具有较高的收敛速度,同时减少变化的幅度以便降低调整权重的难度,对输入数据进行归一化的处理。样本数据归一化区间限于[0,1]。隐含层的激活函数分别选择tansig和logsig两种Sigmoid型激活函数,其表达式和误差函数分别为:
(9)
其中:Ti为期望输出;Oi为实际输出。输出层函数选择purelin线性激活函数。训练函数选择收敛速度较快的LM优化算法trainlm。
4.1 数据测试
本实验选取的原始数据集来自重庆某地电网9 956个用户从2015-01-01—2015-12-31共一年的日用电量数据,具体实验过程如下:
1) 对原始数据做数据清理。本实验中经清理后得到334天可供分析的有效数据维度和8 146个数据有效的用户训练集。其中包含6 977个正常用户和1 169个异常用户,异常用户比例为14.35%。
2) 对清理后的数据集建立统计特征。根据表1对实验数据提取49个维度的统计特征。
4) 对PCA降维处理后的新特征数据集做相关性分析,得到的相关系数矩阵如表3所示。
从表3中可以看出各个特征之间的线性相关程度,其中cor表示相关系数。|cor|越接近1,表示这两个特征间线性关系越密切;|cor|越接近于0,则这两个特征的线性相关越弱。可见,经PCA处理后得到的新特征几乎相互独立,消除了信息重叠。
表2 总贡献率高于0.95的特征值
表3 基于新特征的相关系数
图8 d1与d2维度的空间分布
6) 根据已提取的6个新的特征数据,构建用于BP神经网络的6个输入向量及1个输出向量,并进行归一化处理。然后根据构建的模型,利用Matlab建立含有2个隐含层的BP神经网络,如图11所示。设置2个隐含层的激活函数分别为 tansig和logsig,输出层激活函数为线性函数purelin,训练函数为trainlm,训练次数为5 000次、目标精度为1e-5。
图9 d1与d3维度的空间分布
图10 d2与d3维度的空间分布
图11 利用Matlab建立BP神经网络
4.2 实验结果
经过本实验建立的用电行为异常检测模型分析得出的结果如表4所示,其中输出异常检测值res在[0,1]之间。若res<0.5,则判断用户无异常用电行为;若res≥0.5,则用户存在用电异常嫌疑。
本实验分别使用了传统BP神经网络算法和改进的BP神经网络算法对样本数据集进行异常嫌疑判断,统计了两种检测方式的分类准确率。
从以上实验结果(表5)可以看出:基于PCA的特征提取方法提高了分类的准确率。同时,本实验提出的基于PCA的改进BP神经网络的整体分类准确率达88.58%,高于传统的BP神经网络算法。在基于PCA的各项分类上,传统BP神经网络和改进的BP神经网络之间正常用户的分类准确率相差只有0.25%,都达到了很高的分类精度。但本实验的改进方法在异常检测的分类上比传统方法高4.45%,说明本实验所建立的基于改进BP神经网络的用电异常检测模型在性能上更加有效,检测效果更好。
表4 部分异常检测实验结果
表5 检测算法的分类准确率对比
4.3 结论分析
本实验首先对用原始用电时序数据集进行了基于统计和主成分分析的特征提取处理,处理后的数据特征集之间线性不相关,基本消除了原始数据中的信息重叠。同时,主成分的选择将高维度特征映射到更低的维度,使得模型训练收敛速度更快,显著提升计算效率,也提高了分类精度。
结合特征提取后的数据对改进的BP神经网络做训练,异常检测准确率相比传统网络更高,说明两层隐含层的设计明显提高了用电异常检测的精度。但是,从两类用电用户分类效果比较可以看出异常用户分类误差较大。实验分析得出的原因有:原始数据集本身不均衡,异常用户所占的比重较少;时间序列数据本身轨迹不规则,在特征提取分析上还有待进一步研究。
传统的用电异常检测技术效率低、效果差,为此本文研究了时序数据特征提取方法和机器学习分类算法,提出了基于PCA的改进BP神经网络的异常用电检测模型,模型包括统计特征提取、主成分分析、BP神经网络改进这几个部分。在理论研究的基础上,通过电网公司的真实时序数据实例验证用电异常分析效果,发现基于数据挖掘技术的异常检测模型具有较高的科学性。本文方法为用电异常检测提供了一种新的可行思路,避免传统检测工作的资源浪费,有着广阔的应用前景。
后续的研究将针对时序数据特征分析和样本类型分布不均衡问题,结合混沌时序分析和单类分类,进一步提高异常用电检测的准确率和检测效率。
[1] 中国电机工程学会电力信息化专业委员会.中国电力大数据发展白皮书[M].北京:中国电力出版社,2013.
[2] 姚伟智,林幕群,纪素娜,等.基于用电行为分析的低压用户窃电在线监测分析方法研究[J].中国新通信,2015,17(2):97-99.
[3] 谭致远.基于用电行为分析的在线用电异常及风险监测系统的设计与实现[D].广州:华南理工大学,2015.
[4] 谢涛,靳丹,马志程,等.基于智能电网的分布式非法用电行为检测方法[J].微型电脑应用,2015,31(2):54-57.
[5] 简富俊,曹敏,王磊,等.基于SVM的AMI环境下用电异常检测研究[J].电测与仪表,2014,(6):64-69.
[6] 冯晓蒲,张铁峰.基于实际负荷曲线的电力用户分类技术研究[J].电力科学与工程,2010,26(9):18-22.
[7] 林嘉晖.基于数据挖掘的电网用户行为分析系统的设计与实现[D].广州:中山大学,2013.
[8] CABRAL J E,PINTO J O P,GONTIJO E M,et al.Fraud detection in electrical energy consumers using rough sets[C]//IEEE Int Conf.Systems,Man and Cybernetics.USA:[s.n.],2004:3625-3629.
[9] NAGI J,YAP K S,TIONG S K,et al.Improving SVM-based nontechnical loss detection in power utility using the fuzzy inference system[J].IEEE Transactions on power delivery,2011,26(2):1284-1285.
[10]RAMOS C C,SOUZA A N,CHIACHIA G,et al.A novel algorithm for feature selection using Harmony Search and its application for non-technical losses detection[J].Computers and Electrical Engineering,2011(37):886-894.
[11]PEREIRA L A M,AFONSO L C S,PAPA J P,et al.Multilayer perceptron neural networks training through charged system search and its application for non-technical losses detection[C]//IEEE Innovative Smart Grid Technologies Latin America(ISGT LA),USA:[s.n.],2013:1-6.
[12]林珠,邢延.数据挖掘中适用于分类的时序数据特征提取方法[J].计算机系统应用,2012,21(10):224-229.
[13]杨光.基于神经网络的异常用电检测算法模型研究[J].供用电,2016(10):56-59.
[14]胡殿刚,李韶瑜,楼俏,等.ELM 算法在用户用电行为分析中的应用[J].计算机系统应用,2016,25(8):155-161.
[15]毛健,赵红东,姚婧婧.人工神经网络的发展及应用[J].电子设计工程,2011,19(24):62-65.
(责任编辑 陈 艳)
Research on Abnormal Behavior of Power Consumption Based on BP Neural Network with PCA
TIAN Ye1, ZHANG Cheng1, MAO Xinru2, LIU Ji1
(1.College of Computer Science, Chongqing University, Chongqing 400044, China; 2.State Grid Corporation, Chongqing 402160, China)
According to the problems of resource wasting, low efficiency and difficult detection encountered in the traditional way of detecting user’s abnormal power consumption, the algorithm for large-scale data mining was designed and realized combined with data mining technology, and an effective anomaly feature extraction model was established. It determines the abnormal indicators using the statistic-based feature extraction method, and reduces the dimension of the characteristic data using the principal component analysis method to achieve the analysis, identification and processing for abnormal power consumption. Then, the back-propagation neural network was established to detect the abnormal behavior from the power consumption information. The test result shows that this method can effectively extract the characteristics of power consumption behavior, and can be effectively used in the detection of electricity-using anomaly.
power consumption behavior; anomaly detection; feature extraction; principal component analysis; neural network
2017-03-24 基金项目:国家自然科学基金资助项目(61502060)
田野(1992—),男,重庆人,硕士,主要从事数据挖掘、机器学习研究,E-mail:403521937@qq.com。
田野,张程,毛昕儒,等.运用PCA改进BP神经网络的用电异常行为检测[J].重庆理工大学学报(自然科学),2017(8):125-133.
format:TIAN Ye, ZHANG Cheng, MAO Xinru,et al.Research on Abnormal Behavior of Power Consumption Based on BP Neural Network with PCA[J].Journal of Chongqing University of Technology(Natural Science),2017(8):125-133.
10.3969/j.issn.1674-8425(z).2017.08.021
TP302.7
A
1674-8425(2017)08-0125-09