发明内容
本发明所要解决的技术问题在于解决传统基于神经网络的窃电检测方法中特征抽取困难的问题,提供一种基于电网参数关键特征抽取的智能窃电判据方法及装置,在将用户数据输入神经网络前,提取和分析其用电特征,从而提高运用神经网络检测窃电用户的准确度。
为实现上述目的,本发明实施方式的一方面提供一种基于电网参数关键特征抽取的智能窃电判据方法,首先运用用户月用电量数据,计算用户的d-距离和d-离群局部密度,进而计算用户的d-距离离群因子和d-距离邻域变比因子;然后采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数;最后将待检测的用户用电量数据输入至训练后的神经网络,得到用户窃电嫌疑的识别结果。
进一步的,所述计算用户的d-距离和d-离群局部密度,包括以下步骤:
步骤a.收集用户用电量数据并以向量形式表示,即X
(i)=[x
1,x
2,...,x
12],以
表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值
定义用户i用电量的d-距离
N为用户数;
步骤c.计算用户i的d-离群局部密度
其中|Q
d(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述计算用户的d-距离离群因子为:用户i在d-距离邻域内的d-距离离群因子
其中,pod
d(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述计算用户的d-距离邻域变比因子为:用户i连续两年同一月份在d-距离邻域内相对于其他用户的变化量的差值与平均变化量之比,公式如下:
其中,
为用户i连续两年同一月份的月用电量的差值,
为用户i在其d-距离邻域内的其他用户连续两年同一月份的月用电量的差值,
为d-距离邻域内的所有用户在y年m月的月用电量平均值。
进一步的,所述采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数,其过程为:
步骤一,对月用电量、d-距离离群因子dof
d(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为
其中x
min为数据变化的最小值,x
max为数据变化的最大值,x
m表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
进一步的,所述搭建的BP神经网络,输入向量为X=(x
1,x
2,...,x
i,...,x
n)
T,用W=(W
1,W
2,...,W
j,...,W
m)
T表示输入层与隐含层之间的权值矩阵,用b表示神经元阀值,通过求和单元完成对输入信号的加权求和,即
隐含层输出向量为隐含层的激活函数采用Sigmoid传递函数
进行转换,隐含层输出向量为Y=(y
1,y
2,...,y
i,...,y
m)
T,即y
j=f(net
j),即可得到一个神经元的输出y
j,用V=(V
1,V
2,...,V
k,...,V
l)
T表示隐含层与输出层的权值矩阵,输出层的激活函数采用线性函数g(x)=x,则对于输出层,有
从而得到输出o
k=g(net
k),其中o
k为1或0,期待输出向量为d=(d
1,d
2,...,d
k,...,d
l)
T,由于神经网络的输出值o
k和真实值d
k存在误差,因此本网络使用反向传播算法调整权值直到满足目标误差或达到最大迭代次数,调整权值矩阵的计算公式如下:
其中,本网络的参数设置输入层节点数n=14,隐含层节点数m=10,输出层节点数l=1,学习率η为0.01,目标误差δ为0.01。
为实现上述目的,本发明实施方式的另一方面还提供一种基于电网参数关键特征抽取的智能窃电判据装置,包括:从电网数据中心读取用户月用电量数据的数据输入模块,用于计算用户的d-距离和d-离群局部密度的距离密度计算模块,用于计算用户的d-距离离群因子和d-距离邻域变比因子的因子计算模块,用于采用用户月用电量数据、d-距离离群因子和d-距离邻域变比因子作为窃电用户识别特征输入量,训练神经网络并得到用于分析用户窃电嫌疑的参数的网络参数训练模块,用于将待检测的用户用电量数据输入至训练后的神经网络,得到用户窃电嫌疑的识别结果识别检测模块。
进一步的,所述距离密度计算模块具体用于:
步骤a.收集用户用电量数据并以向量形式表示,即X
(i)=[x
1,x
2,...,x
12],以
表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值
定义用户i用电量的d-距离
N为用户数;
步骤c.计算用户i的d-离群局部密度
其中|Q
d(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述用户的d-距离离群因子为:用户i在d一距离邻域内的d-距离离群因子
其中,pod
d(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述网络参数训练模块用于:
步骤一,对月用电量、d-距离离群因子dof
d(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为
其中x
min为数据变化的最小值,x
max为数据变化的最大值,x
m表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
与现有技术相比,本发明的有益效果是:
(1)传统方法中,通常采用电力用户大量的用电指标作为识别特征,如月用电量、用表类型、台区线损、三相不平衡率和功率因素等,这不仅会对用户的隐私造成影响,也对数据的统计和处理带来困难,或是仅使用电力用户的用电量数据作为识别特征,这样的模型泛化性能差,识别率低,本发明提出的方法基于用电量数据设计了新型窃电识别特征,在减少数据类型的同时,提高了识别窃电用户的准确性。
(2)传统方法中,由于窃电用户仅占据正常用户的极少数,因此传统分类方法在训练时会出现数据类别的不平衡的问题,即数据偏斜,如100个用户中有95的正常用户,5个窃电用户,用这样的数据训练出的分类器只需对所有样本都预测为正常用户也有95%的正确率,但这样的结果显然是没有意义的,本发明在对训练样本进行处理时,考虑并生成了多种窃电类型,规避复杂的模型,提高了模型泛化能力,降低了工作量。
(3)传统方法中,设计的特征通常缺乏对比,仅仅是用户某一个时间段的数据作为一个输入向量进入分类器进行分析,这种情况的需要多个数据与其他数据相比存在较大的偏差,识别难度大,本发明提出的方法从横向和纵向角度分析用电量特征,设计的特征中考虑了不同用户的数据的差异,分析用户之间的关系找出异常点,从而提高了模型的检测精度。
(4)本发明所述基于神经网络的窃电用户检测方法的特征设计以及神经网络的设计简单可行、有效解决在窃电识别技术中因数据不平衡造成的影响,提高了基于神经网络的窃电识别模型的精度和泛化能力。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。此处所描述的具体实施例仅用于解释本发明技术方案,并不限于本发明。
本发明实施方式的一方面提供一种基于电网参数关键特征抽取的智能窃电判据方法,具体实施过程如下:
第一步,数据来源于爱尔兰电力供应局和可持续能源局于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=[x
1,x
2,...,x
12],x
m(m∈[1,12])表示用户的月用电量,每位用户均计算24个月的月用电量数据,计算每位用户年用电量
500名用户在一年中的月用电量和年用电量表1和表2所示:
表1 用户月用电量数据
表2 用户年用电量数据
第二步、计算所有用户同一年的年用电量平均值
定义用户i的d-距离
为用户i的年用电量,N为用户数。计算得出用户的d-距离,部分数据如下表所示:
表3 用户d-距离数值
计算用户i和用户j的距离
定义用户i的d-距离邻域是所有到i的距离不超过d-距离对象的集合,即:Q
d(i)={j∈D\{i}|p(i,j)≤d
i},其中D表示数据集,以|Q
d(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)和dof
d(i)以及用户月用电量做归一化处理,防止总误差中占份额小的输出分量相对误差较大的问题,计算公式为
其中x
min为数据变化的最小值,x
max为数据变化的最大值,x
m表示输入数据,得到的结果作为神经网络的输入向量X=[x
1,x
2,...,x
12,Δydr(i),dof
d(i)]
T,输出向量设为O=[0,1]
T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑。本方法使用BP神经网络进行窃电识别,采用三层网络,设置输入层节点数为14,隐含层节点数为11,输出层节点数为1。用W=(W
1,W
2,...,W
j,...,W
m)
T表示输入层与隐含层之间的权值矩阵,用b表示神经元阀值,通过求和单元完成对输入信号的加权求和,即
隐含层输出向量为隐含层的激活函数采用Sigmoid传递函数
进行转换,隐含层输出向量为Y=(y
1,y
2,...,y
i,...,y
m)
T,即y
j=f(net
j),即可得到一个神经元的输出y
j,用V=(V
1,V
2,...,V
k,...,V
l)
T表示隐含层与输出层的权值矩阵,输出层的激活函数采用线性函数g(x)=x,则对于输出层,有
从而得到输出o
k=g(net
k),其中o
k为1或0,期待输出向量为d=(d
1,d
2,...,d
k,...,d
l)
T,由于神经网络的输出值o
k和真实值d
k存在误差,因此本网络使用反向传播算法调整权值直到满足目标误差或达到最大迭代次数,调整权值矩阵的计算公式如下:
神经网络学习率η设置为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)=[x
1,x
2,...,x
12],以
表示用户i的月用电量数据,计算用户i的年用电量
步骤b.计算同一台区内所有用户年用电量的平均值
定义用户i用电量的d-距离
N为用户数;
步骤c.计算用户i的d-离群局部密度
其中|Q
d(i)|为用户i在其d-距离邻域内点的个数。
进一步的,所述用户的d-距离离群因子为:用户i在d-距离邻域内的d-距离离群因子
其中,pod
d(j)为用户i在其d-距离邻域内的其他用户的d-离群局部密度。
进一步的,所述网络参数训练模块用于:
步骤一,对月用电量、d-距离离群因子dof
d(i)和d-距离邻域变比因子Δydr(i)做归一化处理,计算公式为
其中x
min为数据变化的最小值,x
max为数据变化的最大值,x
m表示输入数据,得到的结果作为神经网络输入向量;
步骤二,搭建BP神经网络进行窃电识别,采用三层网络,输入层输入向量X=[x1,x2,...,x12,Δydr(i),dofd(i)]T,输出层输出向量O=[0,1]T,其中0表示用户不存在窃电嫌疑,1表示用户存在窃电嫌疑,根据神经网络计算的结果判定用户是否为窃电用户。
以上所述仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形、改进及替代,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。