本发明涉及窃电疑似度分析方法,尤其涉及一种基于离群点算法的窃电辨识方法。
背景技术:
随着高科技窃电手段层出不穷,窃电问题越来越突出,全国每年因窃电导致的经济损失约几百亿人民币,已经严重危及到了经济秩序的正常运行。当前防窃电技术仅仅依靠用户每月电量变化、台区线损异常确定窃电嫌疑户,存在时效性差、准确率低,现场排查发现窃电行为又效率不高的问题。随着用电管理和用电信息采集系统的不断发展,通过技术手段开发更加高效实用的防窃电方法已经具备一定的条件。
基于电量波动的窃电辨识方法是为了更好地对用电量信息进行深入挖掘,以实现实时防窃电和协助现场工作人员对于窃电嫌疑用户的排查。根据大量的用电数据的深入挖掘分析,发现用户用电异常特征与用电量波动率之间存在一定的规律。现有的技术对于用电信息采集系采集的电力数据,特别是用电量不能挖掘分析正常用户与非正常用户的用电特征区别,仅能通过三相电压、电流以及线损率辅助判断窃电嫌疑用户,不能及时有效地进行窃电报警。
技术实现要素:
本发明要解决的技术问题和提出的技术任务是对现有技术方案进行完善与改进,提供一种基于离群点算法的窃电辨识方法,以达到准确分析窃电的目的。为此,本发明采取以下技术方案。
一种基于离群点算法的窃电辨识方法,其特征在于包括以下步骤:
1)获取用户日用电数据;
采用用电信息采集和远程抄表系统对若干个用电用户的用电数据进行采集,通过数据传输通道和数据接收系统,将数据存储于中心数据库,作为该发明方法进行防窃电辨识报警的数据来源。
每一天的日用电量是根据用户抄表系统采集的该天表计总正向有功减去前一天的表计总正向有功而得到。
2)对数据进行预处理;
采用线性函数法,即
3)计算样本波动率cv;
根据数据样本按照每月分别计算波动率,从波动率值cv>0.2的月份中找到最小的样本波动率cvm,并初步确定窃电可能发生的时间段;
4)确定质心以及参数p和d;
采用求两次均值的方法:第一次计算所有数据的均值,即
4)离群点算法进行窃电判别;
计算两两样本之间的欧氏距离,在调节参数p并计算参数d后,找到与其它至少p部分样本距离大于d的所有样本点,确定为离群点。
5)确定窃电样本点和设置窃电警报;
在上述的离群点集合,将高于样本平均水平的离群点去除;当连续n天出现异常后,第n天进行窃电报警。
本技术方案结合了电量波动率和基于距离的离群点挖掘算法,是一种针对用户用电量分析的新的窃电辨识方法。首先,提出了一种新的描述电量波动的指标:变异系数,根据电量波动率选取样本质心,然后依据该质心和离群点原理筛选出离群点,并经过处理找到窃电嫌疑点,并设置窃电报警的条件。该算法不同于以往离群点算法仅仅依靠离群点定义来筛选离群点,更不同于传统防窃电算法仅仅依靠线损和电压、电流异常以及计量异常情况来判断是否窃电。应用这种方法进行疑似窃电判别,大大降低了数据处理的复杂度,提高了判别的准确性,进而提高了防窃电工作的效率。此外,将电量和电压、电流等负荷数据判别相结合,可进一步提高窃电判断的准确性。
作为优选技术手段:若样本波动率cv大于0.6则进行聚类算法进行窃电判别;根据聚类算法得到的窃电判别结果计算窃电疑似度;窃电疑似度高于设定阈值并持续n2天,则报警并归档处理。
作为优选技术手段:在步骤3)计算样本波动率cv时,定义标准差和均值的比值作为样本波动率cv,即
作为优选技术手段:对于聚类算法,在计算样本的波动率以后,当样本波动率在0.6以上时,选择聚类算法将样本分成3类,考虑到样本分正常和异常两种,在聚类以后,根据聚类中心将样本从高到低分为标签1类、2类、3类。若标签2类的聚类中心更靠近标签1类,则只取标签3类样本作为窃电嫌疑类;若标签2类的聚类中心更靠近标签3类,则取标签2类和3类作为窃电嫌疑类进行报警处理;
对于离群点算法,当样本波动率在0.6以下时择离群点算法直接筛选出异常点,设置合适的离群点参数p,在得到窃电异常数据后,设置报警条件进行报警。
作为优选技术手段:根据设置窃电报警条件后的算法结果,根据离群点算法参数p以及窃电报警天数设置f,计算离群点算法窃电疑似度为q1=p×f1,其中,参数p代表了离群点的可信度,f代表了窃电可能性随着报警天数的增加而增大,用两者的乘积可以在一定程度表示根据算法得到的用户窃电嫌疑程度。
作为优选技术手段:进行聚类算法判别及疑似度计算时,根据聚类算法得到的报警时间设置参数f2,计算窃电嫌疑类占样本总体的比例系数j,最终计算窃电疑似度q2=j×f2。
在步骤7)进行聚类算法判别及疑似度计算时,根据聚类算法得到的报警时间设置参数f2,计算窃电嫌疑类占样本总体的比例系数j,最终计算窃电疑似度q2=j×f2。
有益效果:本技术方案结合了电量波动率和基于距离的离群点挖掘算法,是一种针对用户用电量分析的新的窃电辨识方法。首先,提出了一种新的描述电量波动的指标:变异系数,根据电量波动率选取样本质心,然后依据该质心和离群点原理筛选出离群点,并经过处理找到窃电嫌疑点,并设置窃电报警的条件。该算法不同于以往离群点算法仅仅依靠离群点定义来筛选离群点,更不同于传统防窃电算法仅仅依靠线损和电压、电流异常以及计量异常情况来判断是否窃电。应用这种方法进行疑似窃电判别,大大降低了数据处理的复杂度,提高了判别的准确性,进而提高了防窃电工作的效率。此外,将电量和电压、电流等负荷数据判别相结合,可进一步提高窃电判断的准确性。
本技术方案于分析对象是一维数据,处理复杂度低、准确度高,通过分析用户的历史用电量数据,挖掘出用户用电的行为特征,从而区别异常用电数据和正常用电数据,找到窃电嫌疑点。
附图说明
图1是本发明原理框图。
图2是本发明的防窃电处理具体实施流程图。
图3是本发明的离群点算法流程图。
图4是某化纤公司的日用电量数据图。
图5是未考虑窃电实际的离群点检测结果图。
图6是考虑窃电实际的离群点检测结果图。
图7是设置窃电报警条件下的结果图。
具体实施方式
以下结合说明书附图对本发明的技术方案做进一步的详细说明。
本发明主要包括新的描述电量波动率指标以及以此为基础的离群点数据挖掘算法,总的原理框图如图1所示,防窃电处理具体实施步骤如图2所示,离群点算法流程图如图3所示。用电信息采集系统和远程抄表系统采集若干用户的用电信息通过信息传输通道被数据接收系统存储于中心数据库,然后是利用该发明方法进行防窃电处理。为了减少数据处理的复杂度,首先对数据进行归一化处理。电量波动率计算主要用于初步判断窃电最可能发生的时间段,离群点算法判定和筛选主要是对日用电量信息进行深入挖掘,从原始数据中分离出窃电嫌疑的离群点。考虑到离群点挖掘效果可能会受到数据特征的影响,将波动率计算和离群点挖掘进行比较,可以提高离群点的可信度,所以用电量波动率来提高方法的准确性。
本发明包括以下步骤:
1、数据来源
采用用电信息采集和远程抄表系统对若干个用电用户的用电数据进行采集,通过数据传输通道和数据接收系统,将数据存储于中心数据库,作为该发明方法进行防窃电辨识报警的数据来源。
本方法分析的对象是用户日用电量,每一天的日用电量是根据用户抄表系统采集的该天表计总正向有功减去前一天的表计总正向有功而得到。
2、数据预处理
采用线性函数法,即
3、电量波动率计算
定义标准差和均值的比值作为变异系数,即
4、确定质心以及参数p和d
采用求两次均值的方法。第一次计算所有数据的均值,即
自定义参数p的设置方法为:考虑到0≤p<1,观察dist矩阵的数值分布,用发现dist矩阵中距离在0<dist(i)<d范围内的样本个数占样本总体比例的方式设置p。其中,d≤maxdist,maxdist为dist矩阵中的最大值。例如,dist矩阵的数值分布在[0,10]之间,设置d=6,因此p就是一个在0到1之间的数。需要注意的是,虽然p可以任意设定,但是每个样本所对应的p的取值范围都不一样,范围以外的p对应的没有输出结果。总结来说,自定义p的最终目标是找到p的合理取值范围,并在其取值范围内发现最优的p值,这样对应的输出结果也是最优的。
p设置好以后,p分位数d是根据函数求的,无需手动设置。
注:1.在上述描述中,异常偏高值dx定义为dx>k*avg1,(一般来说,k随着cvm的增大而增大,0≤cv≤0.2为允许波动范围。若0≤cvm<0.2,k取1;若0.2≤cvm≤0.5,一般k取1.2;若0.5<cvm<0.8,k一般取1.4;0.8≤cvm为严重波动范围,一般可直接进行排查);2.求avg2的各个样本值是去除dx后进行重新排序的结果,顺序和求avg1的样本值不完全一样;3.参数p为:
5、算法判定及离群点筛选
计算两两样本之间的欧氏距离,在调节参数p并计算参数d后,找到与其它至少p部分样本距离大于d的所有样本点,确定为离群点。例如,某个样本o与n个原始样本中至少num=p×n个样本的距离都大于d,则将样本o确定为离群点。找到所有像样本o的点,最终确定离群点集合outlier0。
6、确定窃电样本点和设置窃电警报
在上述的离群点集合outlier0中,将高于样本平均水平的离群点去除,因为根据窃电是不用电或少用电的原理来说,这些点不是窃电的样本点,于是排除这些样本点得到的离群点集合outlier为最终确定的窃电样本集合,outlier_time则是窃电样本集合所对应的时间集合,对应的是窃电异常开始发生到异常结束的时间。outlier_time需要设置连续3天出现异常,第3天开始报警得到alert_outlier_time(例如1月1日到10日出现异常,则报警时间是1月3日到10日)。需要注意的是,outlier_time可能是由一段连续的时间组成,不过一般可能是由多段连续的时间组成,
在实际的窃电分析中,一般满足连续三天或以上均出现异常进行窃电报警,本方法设置连续三天出现异常后,第三天进行窃电报警,窃电报警的样本集合为alert_outlier。
以下部分步骤和算例进行着重具体说明:
1离群点挖掘算法
离群点挖掘就是从大量的数据中自动或半自动地获得有用信息的过程,即给定一个有n个数据点或对象的数据集和期望的离群点个数k,找出与数据集中其余数据显著不同的、异常的或不一致的前k个对象。离群点挖掘问题可以被看作两个子问题:(1)准确定义离群点(2)找到离群点挖掘方法。
离群点挖掘方法主要分为基于分布(统计)的、基于深度的、基于聚类的、基于距离的和基于密度的五类。五种离群点检测方法在不同领域均有应用,但都存在不足。基于分布(统计)的方法要求数据集合服从某一种概率或分布方法,基于聚类的方法对离群点的挖掘效率较低且依赖于所有簇的个数,基于密度的方法多应用于在局部离群点检测中,基于深度的方法对高维数据处理效率低[10-11]。因此,基于距离的离群点检测方法应用于窃电的判定和算法实现中比较合适。而定义基于距离的离群点的方法主要有以下两种[12-13]。
定义1如果数据集中至少有p(p∈[0,1])部分对象与对象o的距离大于d,则对象o是一个基于距离的关于参数p和d的离群点。反过来说,就是不多于(1-p)部分对象与对象o的距离小于等于d。
定义2数据集中到其第k个最近邻居的距离dk最大的前n个对象就是离群点。
2电量波动方法
2.1电量波动描述
本方法分析的对象是用户的日用电量数据,从电量波动着手,找到电量波动率与用户异常用电特征之间的关系。以往描述数据波动情况,大多是用方差、标准差、极差等,采用最多的是样本标准差。但是,需要对同一样本不同时期的波动情况对比时,缺乏可比性。当样本平均水平不同,用标准差是无法实现两组数据离散程度大小对比的。由于在本算法的思路中,需要对一组电量数据按月(或一段时间内)分别计算波动率再进行比较,因此用标准差就不适合。因此,在本发明电量波动方法的研究中提出一种新的电量波动描述,即采用变异系数(或离散系数)cv来描述用电量数据的波动和离散情况,就很好地解决了上述的问题。
定义3变异系数cv定义如下:
其中,di为用户单日电量,
经过大量的研究分析得到:0≤cv<0.2时,为合理波动范围;0.2≤cv≤0.5时,为一般波动范围;0.5<cv≤0.8时,为严重波动范围;cv>0.8,说明样本波动过度严重,需直接进行现场排查。所以,电量的正常波动范围应在[0,0.2)。
2.2基于距离的离群点算法
基于距离的离群点算法是用距离来描述两个数据对象之间的相似程度,即两个数据对象的距离越大,说明两个数据对象相似度越小;反之,两个数据对象的距离越小,说明两个数据对象相似度越高。
由于算法分析的对象是用户电量,假设{x1,x2,…,xn}是由用电信息采集系统采集的一组用电量数组。描述两个数据对象之间的距离用欧氏距离来表示,对于两个二维空间样本g1(x1,y1)和g2(x2,y2),欧氏距离公式为:
对于n个样本,求两两样本之间的距离,可构成相似度矩阵来描述两两之间的相似度关系。本算法分析的用电量是一维数据,因此,本发明采用的是一维欧氏距离。
描述n个样本两两之间的相似度关系可以用相似度矩阵(即欧氏距离矩阵)来表示,相似度矩阵如下所示:
其中,dij表示对象i和j之间的相似度,满足正定性,即数据间的距离为非负,当且仅当i=j时,dij=0;比较对象i和对象j,当它们相近或者是更加“接近”时,dij→0;当它们的差异性越大,则该数值越大;并且满足对称性,即dij=dji。所以,相似度矩阵是一个以主对角线为轴的对称矩阵。
在完成了定义离群点的目标后,接下来更为重要的是如何进行离群点挖掘。以往算法中的离群点大多是作为负面的东西加以排除,而我们此处的离群点是用户是否存在窃电的有力判据,因此寻找一个有效且复杂度低的方法检测窃电嫌疑点就显得尤为重要了。本发明提出的电量波动方法通过将电量波动率和改进的离群点算法相结合,很好地满足了上述要求。
首先,在计算和比较电量波动率的基础上,通过选取更加准确的质心来代表样本整体水平,然后比较单个样本与质心的相似度,以此来筛选离群点。基于电量波动的离群点算法框图如图1所示。
数据预处理一般包括数据清洗和归一化两个部分。数据清洗的规则如下:
规则一:各字段任一数据缺失即定义为数据缺失。如用户编码、总正向有功等。
规则二:在抄表数据中,将与终端电表采集的总正向有功数据进行清洗。
规则三:将标注不明确的数据视为无效并剔除,如未标明终端还是表计。
规则四:将样本数据中特别离谱的假数据(即异常偏高和值为负的数据)剔除。
总之,清洗后要保证用电量数据和相应的用电时间要一一对应。
任意一天用电量的计算方法定义为:
di=pi-pi-1(4)
其中,pi代表第i天的表计总正向有功功率,pi-1代表第i-1天的表计总正向有功功率。
当样本数量庞大,需要对数据进行归一化处理,一般将所有样本化为介于0和1之间的数。一般的归一化方法如下所示。
其中,x(i)代表任意一个样本值,min(x(n))代表样本极小值,max(x(n))代表样本极大值。
定义4基于电量波动率的样本质心avg2定义如下:
其中,avg1为原始样本的平均值,avg2为去除所有dx>km×avg1的样本后的平均值。这样做的目的是排除异常偏高数据对窃电嫌疑点分析的影响。km为比例系数,根据定义3,按照单月(或一段时间内,具体时间长短可根据实际需求设定。)计算cv,且将cvmin定义为所有cv≥0.2中最小的波动率。
定义5比例系数km定义如下:
需要注意的是,当cvmin≥0.8时,说明样本波动率过度严重,一般可直接进行窃电现场排查。这就是如前文所说,基于电量波动率可大大提高离群点检测和防窃电工作的效率。
在确定质心以后,下面就是进行离群点算法检测了,图2是离群点算法流程图。
3算例分析
3.1matlab计算分析
为了验证该算法在实际防窃电工作的准确性,选取由用电信息采集系统采集并经过清洗规则进行清洗之后的某化纤公司2016年5~7月共92天实际用电数据如图4所示。该图显示的该公司总正向有功的真实数据。总正向有功是随着时间逐日进行累加的,当用户一直都是正常用电的话,总正向有功应该近似一条线性的直线,如果存在窃电导致表计功率减少,则这条近似直线的斜率会较小。显然,从原始的正向有功功率难以准确直观地判断出该公司在这三个月内是否存在窃电行为,以及在哪一天开始窃电。
因此,下面运用本算法对该组数据进行处理和窃电分析。
首先,根据定义6计算出对应的日用电量数据。如图5所示,圆圈内有星状“*”填充的数据是检测出的离群点,很明显,离群点相对样本总体来说是小部分数据,这也正验证了“离群”的定义,它们与大多数样本的距离都很大。
利用定义3的方法计算电量波动率可以得到:5月的电量波动率cv5=0.1872,cv6=0.2276,cv7=0.0243说明7月电量波动极小,数据较平稳。
再根据上文所述的定义8以及定义9,cvmin=0.2276,avg1=33.6603,km=1.2,avg2=31.5939,很显然,avg2更能代表样本总体的整体水平,说明质心选择的方法是可行的。
图5是单纯的离群点检测,并未考虑到窃电实际情况,因为窃电是不用电或少用电,所以用电量相较于正常情况应该是偏低的,所以应该是将高于质心的离群点去掉。
如图6所示是考虑到窃电实际的离群点检测结果。由图可知,所检测出的离群点符合了窃电原理,而且在三个月的波动率中,6月的波动率最大,说明该月出现窃电的可能性也最大,而算法检测的窃电嫌疑点正是出现在6月,证明了算法检测离群点的准确性,也进一步佐证了基于电量波动的离群点检测算法相对于以往的窃电判别方法来说有一定的优势。
在实际窃电判别中,仅仅出现一天或两天异常,其实并不能代表用户窃电,因为这种情况可能是由一些特殊的原因种情况可能是由一些特殊的原因造成的。因此,此处我们设置了如果连续三天出现异常,第三天进行窃电报警的条件。如图7所示,第一次窃电报警的时间为“2016/6/8”,而实际查证的该用户开始窃电的时间为“2016/6/6”,与设置的窃电报警条件相符,进一步证明了该算法的可靠性。
此外,需要说明的是,本次仿真实验中,离群点参数p设置为0.8049,说明了所检测出的离群点具有很高的可信度,因为所有的离群点都满足至少有k=0.8049×92≈74个样本与其本身之间的距离d>d=7.2507。
3.2算法分析结果与实际稽查结果比较
本算法的窃电分析结果是可以为一线员工的实际现场稽查提供理论依据的。依据算法分析结果,可以帮助稽查人员更有针对性地确定嫌疑用户的窃电时间,从而快速地实施窃电排查。
下面是利用本方法分析的一些案例结果与现场排查结果进行比较的情况,如表1所示。这一方面说明了本方法已经达到了比较理想的准确性。
在实际分析中,共对若干个案例进行计算分析,这些案例包括纺织厂、丝绸厂和酒店管理有限公司在内的采用高供高计或高供低计的大型用电用户和一些低压用户。此处选取了10个案例分析结果如表1所示。结果表明,在10个分析案例中,当算法疑似度高于60%或是低于50%时,判断是否窃电与实际稽查结果相符合,而只有一组算法疑似度在50%~60之间时,与稽查结果不符,准确度达到90%。当然,随着分析样本的增加,预计算法分析准确度还会增高,这说明了依据本算法,可以达到很好的窃电辨识效果,进而大大提高防窃电工作的效率。
表1算法分析与实际排查情况对比表
本发明在深入分析窃电与防窃电现状以及了解窃电原理和常见窃电手段的基础上,提出了一种用于疑似窃电判别的电量波动方法。该方法结合了电量波动率和基于距离的离群点挖掘算法,是一种针对用户用电量分析的新的窃电辨识方法。首先,提出了一种新的描述电量波动的指标:变异系数,根据电量波动率选取样本质心,然后依据该质心和离群点原理筛选出离群点,并经过处理找到窃电嫌疑点,并设置窃电报警的条件。该算法不同于以往离群点算法仅仅依靠离群点定义来筛选离群点,更不同于传统防窃电算法仅仅依靠线损和电压、电流异常以及计量异常情况来判断是否窃电。应用这种方法进行疑似窃电判别,大大降低了数据处理的复杂度,提高了判别的准确性,进而提高了防窃电工作的效率。此外,将电量和电压、电流等负荷数据判别相结合,可进一步提高窃电判断的准确性。
以上图1-3所示的一种基于离群点算法的窃电辨识方法是本发明的具体实施例,已经体现出本发明实质性特点和进步,可根据实际的使用需要,在本发明的启示下,对其进行等同修改,均在本方案的保护范围之列。