张思扬,匡芳君
(温州商学院 信息工程学院,温州 325035)
随着电力企业服务意识增强和对智能电网的安全性和可靠性的提升,研究如何记录和提取电力负荷特性信息以及用户用电、漏电和窃电异常检测等具有重要现实意义[1]。近年来,国内外学者结合机器学习算法和负荷模式对用电异常检测进行了有益研究,如庄池杰等[1]利用用户平均月负荷表示用电模式,提出了用无监督学习算法对用户用电行为进行异常检测;谢涛等[2]通过数学建模技术对非法用电行为构建线性方程组模型,提出了基于智能电表的分布式用电行为检测方法;简富俊等[3]提出了基于SVM的用电异常检测方法,通过SVM分类器检测用户用电异常,从而提高小样本和样本类别不均衡情况下的检测准确率;Nagi等[4]利用专家模糊推理系统,提出了基于改进SVM的异常检测方法;王桂兰等[5]利用流式计算技术,提出了大规模用电数据流的异常检测方法;Cui等[6]融合高斯分布和多项式回归模型,提出了学校用电异常检测可视化系统。因此,本文将针对用户用电异常检测问题,根据电力企业提供的电力数据,根据用户历史负荷曲线、考察日标准用电曲线和考察日实际用电曲线提取特征分析,综合考虑基于用户历史负荷数据的负荷模式和基于同地区同类型用户负荷数据的负荷模式方法预测用户是否存在电器漏电和窃电,提出一种基于改进人工蜂群的用电异常检测方法,并分析其检测结果。
人工蜂群(Artificial Bee Colony,ABC)算法是Karaboga在2005年提出的群智能优化算法,因其控制参数少、全局探索能力强、鲁棒性强和收敛速度快等优势而应用广泛[7]。研究成果主要集中在算法学习策略改进、混合算法、算法机理及其应用研究等。如:Ozturk等[7]提出了一种用于动态聚类的离散人工蜂群算法;田野等[8]通过交叉策略指导侦察蜂的觅食行为,提出了基于侦察蜂交叉觅食的人工蜂群算法;王志刚等[9]将符号函数引入到人工蜂群中,提出了基于符号函数的多搜索策略人工蜂群算法;匡芳君等[10]使用重组算子选择最优个体作为粒子群的全局极值和跟随蜂邻域蜜源,提出了基于Tent混沌的人工蜂群与粒子群混合算法;Mao等[11]提出了自适应扩展内存的人工蜂群算法。如何均衡全局探索与局部开采能力,如何提高算法收敛性时避免陷入局部最优仍是ABC算法性能提升的关键问题,本文将利用Tent混沌反向学习策略,增强局部邻域搜索策略和锦标赛选择策略,提出了改进人工蜂群算法(Improve ABC,简称IABC)。
ABC算法蜂群包括引领蜂、跟随蜂和侦察蜂三类[7],用蜜源丰富程序表示可行解的质量,最大适应度的蜜源表示最优解,通过式(1)随机产生蜜源位置,即初始可行解:
其中,i=1,2,…,N,j=1,2,…,D,k=1,2,…,N是随机选择下标,且k≠i;Φ是[-1,1]随机数。
如果蜜源处的引领蜂循环搜索限定次数Limit后仍不能更新,则此引领蜂变为侦察蜂,且此侦察蜂按式(1)搜索策略生成新蜜源位置。
为使种群初始个体尽可能均匀分布和多样化,且由于Tent混沌映射比Logistic映射具有收敛速度快和遍历均匀的优势,故本文拟采用Tent混沌反向学习策略[10]初始化种群,使初始种群既能提高多样性,又能保留个体的随机性。Tent映射通过贝努利移位变换表示为xt+1=(2xt)mod1,即在计算Tent映射小数部分时,对二进制数进行无符号左移[10]。
基本ABC算法跟随蜂是利用比例选择策略,选择蜜源位置,不能较好地更新较差蜜源,从而导致算法后期个体适应度在种群进化时常趋于一致,让算法不易跳出局部最优。因此,本文采用锦标赛选择策略[10]来选择蜜源,该策略是基于局部竞争机制的选择过程,只须按适应度的相对值选择蜜源,以便尽可能避免个体影响算法的性能。锦标赛选择策略公式如下:
其中,ci为每个个体的得分。
在求解复杂优化问题时,如何达到局部开采与全局探索能力的平衡仍是人工蜂群算法提升性能的关键。由于ABC算法是通过引领蜂和跟随蜂实现局部搜索,通过跟随蜂和侦察蜂实现全局搜索,以平衡算法的全局探索与局部开发能力。由式(2)可知蜜源邻域搜索的新解具有较强的全局探索能力,但其局部开采能力较弱。因此,本文将在搜索策略中引入自适应步长,在搜索中考虑个体Xi和当前最优解Xbest的引领作用,提出一种新的搜索策略,以增强算法后期局部搜索能力,增强局部邻域搜索公式如下:
本节拟利用用户历史负荷数据,采用改进人工蜂群算法提取用户行业负荷模式曲线和用户历史数据负荷模式曲线,根据用户考察日负荷曲线与人工蜂群算法提取的负荷模式曲线匹配的特征不同,使用不同的负荷数据预处理和模式匹配方法,分别计算考察日负荷曲线与同类型用户负荷模式、日负荷曲线与用户负荷模式的匹配度;并根据电力部门的偏好,设定两种负荷模式的匹配度权重,通过加权求和得到用户用电正常度数。同时,设置用户窃电报警阈值和电器漏电报警阈值,以便做出相应的用户窃电报警和电器漏电提醒。
当前各供电公司基本建成了智能采集终端,实现了居民用电远程抄表功能和电力营销业务应用系统,系统储存有用户每月的用电信息,能实时查询用户电量等信息。考虑到用户的电力负荷随季节变化,每月采集用户负荷数据。考虑到用电负荷随着季节变化而变化,因此,负荷数据按月收集。系统每15min测量1次用户负荷,因此每天可以获得每个用户日用电负荷数据为24×4=96个数据点。所以本文需要收集同区域相似用户正常用电负荷数据、被检测用户的正常历史负荷数据和当月的负荷数据,即过去一年N个同区域同类用户对应月正常用电负荷数据Xi,过去两年用户对应月正常用电历史负荷数据Yi和用户当月考察日的负荷数据Zi,三个负荷数据组表示如下:
其中:i=1,2,…,N,j=1,2,…,30;Xij表示第i个相似用户的第j天的负荷数据;Yij表示过去第i年该月第j天的负荷数据;Zj表示当月第j天的负荷数据;每组负荷数据表示一条负荷曲线。
通常情况,同区域同类型用户的用电负荷变化相似性较大,但由于用户用电设备数量和类型的差异会导致负荷基数不同,同时考虑到同一用户在相邻年份相同月份自身负荷一般变化较小。因此,归一化处理同区域同类型用户的用电负荷数据,而保留用户自身的历史负荷数据。同区域同类型用户用电负荷数据预处理如下:
其中:k=1,2,…,96;ximax,ximin分别为第i个用户的负荷数据最大值和最小值。
利用改进人工蜂群提取负荷模式曲线时,蜜源位置表示负荷数据曲线,即每个蜜蜂表示一个解,用负荷向量P=[p(1),p(2),…,p(96)]表示蜜源位置,向量中每个元素代表不同时刻的负荷。首先按照混沌反向学习方法初始化种群中的解,再按式(4)进行引领蜂和跟随蜂邻域搜索,适应度函数采用经典聚类方法的判定函数,公式如下:
其中:M表示负荷曲线的条数;xk(i)表示第k条负荷曲线第i时刻的负荷数据。
在上述编码和优化迭代操作的基础上,经过若干代更新迭代,得到了种群全局极值表达的负荷向量,即人工蜂群算法提取出来的负载模式曲线,包括归一化的同区域同类型用户负荷模式曲线L=[l(1),l(2),…,l(96)]和用户自身历史负荷模式曲线H=[h(1),h(2),…,h(96)]。
进行用电异常检测之前,需要计算负荷模式匹配。首先根据用户当月实际负荷计算用户当月负荷模式,然后按照计算检测用户的当月负荷模式曲线U=[u(1),u(2),…,u(96)]和归一化后的用户当月负荷模式曲线U=[u(1),u(2),…,u(96)],考虑到用户与同行业的负荷模式关联性的一致性,定义L和U的匹配度m1公式如下:
本文使用基于平均相对距离度量计算H和U的匹配度m2,公式定义如下:
得到模式匹配后,根据实际情况确定对模式匹配度m1和m2的权重ω1和ω2,加权求和得到用户用电正常度数η=ω1×m1+ω2×m2。
供电公司根据用户信用状况评估来设置用电正常的报警阈值。当用户用电正常度数η小于漏电报警阈值且大于窃电报警阈值时,供电企业表示该用户为正常用户;否则,判断该用户用电正常度数η小于窃电报警阀值,则该用户窃电异常用电次数Q=Q+1,如在指定时间内窃电异常用电次数Q大于用户异常用电报警次数(根据用户信用状况评估设置),则报警,提醒稽查人员现场检查,并检查结果来断定用户是否窃电;否则,漏电异常用电次数P=P+1,如在指定时间内漏电异常用电次数P大于用户异常电报警次数,则提醒用户自行检查是否存在电器漏电情况。基于改进人工蜂群算法的负荷模式异常用电检测方法流程图如图1所示。
图1 基于改进人工蜂群算法的异常用电检测流程图
实验数据来源于某电网350个用户的日用电数据,设置本文算法模式匹配权重ω1=0.3和ω2=0.7,窃电报警阀值为0.7,漏电报警阀值为0.9,连续两周出现异常用电报警次数设置为3次。应用算例在CPU为4.0GHZ,内存为16GB的PC机,MATLAB R2015b平台编程实现算法仿真。
为更好地反映所提检测算法对整个样本的检测能力,准确率Accuracy公式定义如下:
其中:TP(True Positive)表示异常用户被准确检测的人数,TN(True Negative)表示正常用户被准确检测的人数,FP(False Positive)表示异常用户被检测错误的人数,FN(False Negative)表示正常用户被检测错误的人数。
为了检验本文所提算法的有效性和准确性,将改进人工蜂群算法直接应用于某区域电网350个居民用户(记为C1,C2,…,C750)用电分析,最后与标准 ABC、改进 K-means[12]和 K-means算法进行异常检测对比实验,最终检测算法实验结果比较如表1所示。从表1看出,改进ABC算法不仅用户用电异常检测准确率和均方误差优于其它三种检测方法,而且运行时间也优于其它三种检测方法。因此,相对而言改进ABC具有更好的异常用电检测能力和适应性也较强,能有效提高用户用电异常检测准确率,为用户用电异常检测和电力行为分析开拓了新的思路和方法。
表1 各种检测算法结果对比
本文针对同区域同类型用户的用电负荷变化相似性较大,但由于用户用电设备数量和类型的差异会导致负荷基数不同,同时考虑到同一用户在相邻年份相同月份自身负荷变化不大的规律,综合考虑基于用户历史负荷数据的负荷模式和基于同地区同类型用户负荷数据的负荷模式方法预测用户是否存在电器漏电和窃电,应用改进人工蜂群算法提取负荷模式曲线,提出了一种基于改进人工蜂群的用电异常检测方法。通过应用实例分析实验验证了所提异常检测方法的有效性和准确性,为异常用电检测提供了新的检测思路和方法。