一种基于电网参数关键特征抽取的智能窃电判据方法及装置
技术领域
本发明属于反窃电技术领域,涉及一种基于电网参数关键特征抽取的智能窃电判据方法及装置。
背景技术
电能是日常生活中必不可少的重要组成部分,电能在产生,输送和分配过程中不可避免的会发生损耗,电能的损耗分为技术性损耗和非技术性损耗,其中一种主要的非技术性损耗是因窃电而引起的。高级计量架构(AMI)通过其电能计量和监测功能在一定程度上减少了因窃电造成的财产损失,然而,智能电表的应用和AMI中引入的网络层催生了许多新型的窃电手段,增加了窃电用户识别的难度。
关于窃电的研究广义上主要分为基于分类器、基于博弈论和基于负荷状态的方法。基于负荷状态的防窃电措施为得到较高的检测精度会采取一些特定的识别装置,如无线传感器和无线射频识别标签等,这会给供电企业带来额外的费用。少部分的研究运用博弈论建立模型来评估智能电力管理设备的部署给电力系统损耗带来的影响,一方面,智能设备通过自动化计量和远程调度等功能降低供电企业的成本,但另一方面,这些设备的引入也为电力用户提供了新的窃电手段,这些基于博弈论的反窃电模型允许供电企业修改参数来评估这两方面的影响。然而,为所有电力用户构造一个效用函数显然是及其困难的。现阶段,基于分类器的反窃电方法在窃电检测领域的研究中占据了绝大部分,常用的分类器包括支持向量机、神经网络、决策树、极限学习机和模糊逻辑等。尽管现今出现了许多基于分类器的窃电检测方法,然而在识别的准确率上还有待提升,这主要是由于大部分建模的重点均放在了分类器的选取,而忽略了如何设计分类器的特征,然而分类器的特征设计对检测的精度有非常重要的影响。
发明内容
本发明所要解决的技术问题在于解决传统基于神经网络的窃电检测方法中特征抽取困难的问题,提供一种基于电网参数关键特征抽取的智能窃电判据方法及装置,在将用户数据输入神经网络前,提取和分析其用电特征,从而提高运用神经网络检测窃电用户的准确度。
为实现上述目的,本发明实施方式的一方面提供一种基于电网参数关键特征抽取的智能窃电判据方法,首先运用用户月用电量数据,计算用户的d-距离和d-离群局部密度,进而计算用户的d-距离离群因子和d-距离邻域变比因子;然后采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数;最后将待检测的用户用电量数据输入至训练后的神经网络,得到用户窃电嫌疑的识别结果。
进一步的,所述计算用户的d-距离和d-离群局部密度,包括以下步骤:
步骤a.收集用户用电量数据并以向量形式表示,即X(i)=[x1,x2,...,x12],以表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值定义用户i用电量的d-距离N为用户数;
步骤c.计算用户i的d-离群局部密度其中|Qd(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述计算用户的d-距离离群因子为:用户i在d-距离邻域内的d-距离离群因子其中,podd(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述计算用户的d-距离邻域变比因子为:用户i连续两年同一月份在d-距离邻域内相对于其他用户的变化量的差值与平均变化量之比,公式如下:
其中,为用户i连续两年同一月份的月用电量的差值,为用户i在其d-距离邻域内的其他用户连续两年同一月份的月用电量的差值,为d-距离邻域内的所有用户在y年m月的月用电量平均值。
进一步的,所述采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数,其过程为:
步骤一,对月用电量、d-距离离群因子dofd(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为其中xmin为数据变化的最小值,xmax为数据变化的最大值,xm表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
进一步的,所述搭建的BP神经网络,输入向量为X=(x1,x2,...,xi,...,xn)T,用W=(W1,W2,...,Wj,...,Wm)T表示输入层与隐含层之间的权值矩阵,用b表示神经元阀值,通过求和单元完成对输入信号的加权求和,即隐含层输出向量为隐含层的激活函数采用Sigmoid传递函数进行转换,隐含层输出向量为Y=(y1,y2,...,yi,...,ym)T,即yj=f(netj),即可得到一个神经元的输出yj,用V=(V1,V2,...,Vk,...,Vl)T表示隐含层与输出层的权值矩阵,输出层的激活函数采用线性函数g(x)=x,则对于输出层,有从而得到输出ok=g(netk),其中ok为1或0,期待输出向量为d=(d1,d2,...,dk,...,dl)T,由于神经网络的输出值ok和真实值dk存在误差,因此本网络使用反向传播算法调整权值直到满足目标误差或达到最大迭代次数,调整权值矩阵的计算公式如下:
其中,本网络的参数设置输入层节点数n=14,隐含层节点数m=10,输出层节点数l=1,学习率η为0.01,目标误差δ为0.01。
为实现上述目的,本发明实施方式的另一方面还提供一种基于电网参数关键特征抽取的智能窃电判据装置,包括:从电网数据中心读取用户月用电量数据的数据输入模块,用于计算用户的d-距离和d-离群局部密度的距离密度计算模块,用于计算用户的d-距离离群因子和d-距离邻域变比因子的因子计算模块,用于采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数的网络参数训练模块,用于将待检测的用户用电量数据输入至训练后的神经网络,得到用户窃电嫌疑的识别结果识别检测模块。
进一步的,所述距离密度计算模块具体用于:
步骤a.收集用户用电量数据并以向量形式表示,即X(i)=[x1,x2,...,x12],以表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值定义用户i用电量的d-距离N为用户数;
步骤c.计算用户i的d-离群局部密度其中|Qd(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述用户的d-距离离群因子为:用户i在d一距离邻域内的d-距离离群因子其中,podd(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述网络参数训练模块用于:
步骤一,对月用电量、d-距离离群因子dofd(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为其中xmin为数据变化的最小值,xmax为数据变化的最大值,xm表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
与现有技术相比,本发明的有益效果是:
(1)传统方法中,通常采用电力用户大量的用电指标作为识别特征,如月用电量、用表类型、台区线损、三相不平衡率和功率因素等,这不仅会对用户的隐私造成影响,也对数据的统计和处理带来困难,或是仅使用电力用户的用电量数据作为识别特征,这样的模型泛化性能差,识别率低,本发明提出的方法基于用电量数据设计了新型窃电识别特征,在减少数据类型的同时,提高了识别窃电用户的准确性。
(2)传统方法中,由于窃电用户仅占据正常用户的极少数,因此传统分类方法在训练时会出现数据类别的不平衡的问题,即数据偏斜,如100个用户中有95的正常用户,5个窃电用户,用这样的数据训练出的分类器只需对所有样本都预测为正常用户也有95%的正确率,但这样的结果显然是没有意义的,本发明在对训练样本进行处理时,考虑并生成了多种窃电类型,规避复杂的模型,提高了模型泛化能力,降低了工作量。
(3)传统方法中,设计的特征通常缺乏对比,仅仅是用户某一个时间段的数据作为一个输入向量进入分类器进行分析,这种情况的需要多个数据与其他数据相比存在较大的偏差,识别难度大,本发明提出的方法从横向和纵向角度分析用电量特征,设计的特征中考虑了不同用户的数据的差异,分析用户之间的关系找出异常点,从而提高了模型的检测精度。
(4)本发明所述基于神经网络的窃电用户检测方法的特征设计以及神经网络的设计简单可行、有效解决在窃电识别技术中因数据不平衡造成的影响,提高了基于神经网络的窃电识别模型的精度和泛化能力。
附图说明
图1为本发明中实现的基于电网参数关键特征抽取的智能窃电判据方法的程序流程图;
图2为本发明中神经网络模型输出的ROC曲线;
图3为本发明中一种基于电网参数关键特征抽取的智能窃电判据装置的模块组成图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。此处所描述的具体实施例仅用于解释本发明技术方案,并不限于本发明。
本发明实施方式的一方面提供一种基于电网参数关键特征抽取的智能窃电判据方法,具体实施过程如下:
第一步,数据来源于爱尔兰电力供应局和可持续能源局于2009年和2010年所进行的一项实验:CER Smart Metering Project,数据集可从Irish Social Science DataArchive网址申请并下载。数据集包含了约5000位爱尔兰商业和家庭用户在2009年和2010年的用电量数据,每位用户都有包含735天的用电量数据,取其中500名用户作为样本,先将一部分用户的用电量数据以每小时单位用电量为表示,对于这部分样本Xh={x′1,x′2,...,x′24},生产四种类型的窃电样本h(x′t)(t∈[1,2,...,24]),使用其中100名用户作为窃电用户,窃电样本生成,公式如下所示:
h1(x′t)=x′t*random(0.2,0.9),
h2(x′t)=x′t*β(β=random(0.2,0.9)),
h3(x′t)=x′t*random[0,1],
h4(x′t)=mean(Xh)*random(0.2,0.9),
其中,random(0.2,0.9)表示取位于0.2和0.9中的一个随机数,random[0,1]表示随机取0或1,mean(Xh)表示取向量Xh的平均值。
将相同月份的用电量数据累加,得到每位用户以月用电量为分量的向量X=[x1,x2,...,x12],xm(m∈[1,12])表示用户的月用电量,每位用户均计算24个月的月用电量数据,计算每位用户年用电量500名用户在一年中的月用电量和年用电量表1和表2所示:
表1 用户月用电量数据
表2 用户年用电量数据
第二步、计算所有用户同一年的年用电量平均值定义用户i的d-距离 为用户i的年用电量,N为用户数。计算得出用户的d-距离,部分数据如下表所示:
表3 用户d-距离数值
计算用户i和用户j的距离定义用户i的d-距离邻域是所有到i的距离不超过d-距离对象的集合,即:Qd(i)={j∈D\{i}|p(i,j)≤di},其中D表示数据集,以|Qd(i)|表示用户i在其d-距离邻域内点的个数;
第三步、计算用户i的d-离群局部密度podd(i),公式如下:
用户i的d-离群局部密度是用户i在d-距离邻域内于其他用户的平均距离的倒数。如果用户i的d-距离邻域内的其他用户很少,则它d-距离邻域的覆盖范围广。离群用户的d-离群局部密度较小,而同属于正常类别的用户的d-离群局部密度数值接近且较大,该数值反映了用户在局部空间的密度情况。
第四步、根据计算可得到用户i和用户j的d-离群局部密度podd(i)和podd(j),计算用户i的d-距离离群因子,公式如下:
d-距离离群因子的数值dofd(i)越接近1,说明用户i和其d-距离邻域内的其他用户可能同属于一类,d-距离离群因子dofd(i)小于1时,说明i点的密度高于d-距离邻域点,称为密集点,反之,当dofd(i)的值大于1时,则说明i点可能为异常点。
第五步,计算用户i第y年m月在d-距离邻域内所有用户的平均月用电量公式如下:
将得到的带入计算d-距离邻域变比因子Δydr(i),定义d-距离邻域变比因子为用户i连续两年同一月份在d-距离邻域内相对于其他用户的变化量的差值与平均变化量之比,公式如下:
其中,为用户i连续两年同一月份的月用电量的差值,为用户i在其d-距离邻域内的其他用户连续两年同一月份的月用电量的差值。Δydr(i)的数值指出用户i的窃电嫌疑,数值越大,说明用户i在d-距离邻域内相比于其他用户在连续两年的用电量变化量差值越大,用户i存在窃电行为的可能性越高。
第六步,对以上两个判断用户窃电特征量Δydr(i)和dofd(i)以及用户月用电量做归一化处理,防止总误差中占份额小的输出分量相对误差较大的问题,计算公式为其中xmin为数据变化的最小值,xmax为数据变化的最大值,xm表示输入数据,得到的结果作为神经网络的输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出向量设为O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑。本方法使用BP神经网络进行窃电识别,采用三层网络,设置输入层节点数为14,隐含层节点数为11,输出层节点数为1。用W=(W1,W2,...,Wj,...,Wm)T表示输入层与隐含层之间的权值矩阵,用b表示神经元阀值,通过求和单元完成对输入信号的加权求和,即隐含层输出向量为隐含层的激活函数采用Sigmoid传递函数进行转换,隐含层输出向量为Y=(y1,y2,...,yi,...,ym)T,即yj=f(netj),即可得到一个神经元的输出yj,用V=(V1,V2,...,Vk,...,Vl)T表示隐含层与输出层的权值矩阵,输出层的激活函数采用线性函数g(x)=x,则对于输出层,有从而得到输出ok=g(netk),其中ok为1或0,期待输出向量为d=(d1,d2,...,dk,...,dl)T,由于神经网络的输出值ok和真实值dk存在误差,因此本网络使用反向传播算法调整权值直到满足目标误差或达到最大迭代次数,调整权值矩阵的计算公式如下:
神经网络学习率η设置为0.01,目标误差δ为0.01,将训练集输入神经网络进行训练,再用验证集进行验证,验证集通过验证后,网络搭建完成,即可将用户数据输入神经网络判断其是否存在窃电行为。绘制神经网络模型的ROC曲线,根据得到的ROC曲线可以计算曲线的面积AUC,附图2为本发明中神经网络模型输出的ROC曲线,曲线对应的AUC为0.835,由此可见本发明具有较好的分类效果。
本发明选择隐含层的节点数α时采用了试凑法,下表是选取不同的隐含层节点数对模型预测准确率带来的影响。通过对比可知,隐含层节点数设置为11时,模型预测的准确率最高。
表4 隐含层节点取不同值时模型的准确率
综上所述,本发明提出了一种基于电网参数关键特征抽取的智能窃电判据方法,解决了传统基于神经网络识别方法准确率低的缺点。采用神经网络模型,可以对用户是否窃电进行分析,通过引入d-距离离群因子,分析用户与邻近用户用电量差别,从横向角度考虑用户窃电嫌疑,同时计算d-距离邻域变比因子,分析不同用户在同一时间段的用电量变化率,从纵向角度考虑用户是否存在窃电嫌疑,结合用户的月用电量数据进行计算,提高了用户窃电检测精度,应用反向传播算法,使得网络具有较强的泛化能力和自适应性。
本发明实施方式的另一方面还提供一种基于电网参数关键特征抽取的智能窃电判据装置,如图3所示,包括:从电网数据中心读取用户月用电量数据的数据输入模块,用于计算用户的d-距离和d-离群局部密度的距离密度计算模块,用于计算用户的d-距离离群因子和d-距离邻域变比因子的因子计算模块,用于采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数的网络参数训练模块,用于将待检测的用户用电量数据输入至训练后的神经网络,得到用户窃电嫌疑的识别结果识别检测模块。
进一步的,所述距离密度计算模块具体用于:
步骤a.收集用户用电量数据并以向量形式表示,即X(i)=[x1,x2,...,x12],以表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值定义用户i用电量的d-距离N为用户数;
步骤c.计算用户i的d-离群局部密度其中|Qd(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述用户的d-距离离群因子为:用户i在d-距离邻域内的d-距离离群因子其中,podd(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述网络参数训练模块用于:
步骤一,对月用电量、d-距离离群因子dofd(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为其中xmin为数据变化的最小值,xmax为数据变化的最大值,xm表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
以上所述仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形、改进及替代,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。