張思揚(yáng),匡芳君
(溫州商學(xué)院 信息工程學(xué)院,溫州 325035)
隨著電力企業(yè)服務(wù)意識(shí)增強(qiáng)和對(duì)智能電網(wǎng)的安全性和可靠性的提升,研究如何記錄和提取電力負(fù)荷特性信息以及用戶用電、漏電和竊電異常檢測(cè)等具有重要現(xiàn)實(shí)意義[1]。近年來(lái),國(guó)內(nèi)外學(xué)者結(jié)合機(jī)器學(xué)習(xí)算法和負(fù)荷模式對(duì)用電異常檢測(cè)進(jìn)行了有益研究,如莊池杰等[1]利用用戶平均月負(fù)荷表示用電模式,提出了用無(wú)監(jiān)督學(xué)習(xí)算法對(duì)用戶用電行為進(jìn)行異常檢測(cè);謝濤等[2]通過(guò)數(shù)學(xué)建模技術(shù)對(duì)非法用電行為構(gòu)建線性方程組模型,提出了基于智能電表的分布式用電行為檢測(cè)方法;簡(jiǎn)富俊等[3]提出了基于SVM的用電異常檢測(cè)方法,通過(guò)SVM分類(lèi)器檢測(cè)用戶用電異常,從而提高小樣本和樣本類(lèi)別不均衡情況下的檢測(cè)準(zhǔn)確率;Nagi等[4]利用專家模糊推理系統(tǒng),提出了基于改進(jìn)SVM的異常檢測(cè)方法;王桂蘭等[5]利用流式計(jì)算技術(shù),提出了大規(guī)模用電數(shù)據(jù)流的異常檢測(cè)方法;Cui等[6]融合高斯分布和多項(xiàng)式回歸模型,提出了學(xué)校用電異常檢測(cè)可視化系統(tǒng)。因此,本文將針對(duì)用戶用電異常檢測(cè)問(wèn)題,根據(jù)電力企業(yè)提供的電力數(shù)據(jù),根據(jù)用戶歷史負(fù)荷曲線、考察日標(biāo)準(zhǔn)用電曲線和考察日實(shí)際用電曲線提取特征分析,綜合考慮基于用戶歷史負(fù)荷數(shù)據(jù)的負(fù)荷模式和基于同地區(qū)同類(lèi)型用戶負(fù)荷數(shù)據(jù)的負(fù)荷模式方法預(yù)測(cè)用戶是否存在電器漏電和竊電,提出一種基于改進(jìn)人工蜂群的用電異常檢測(cè)方法,并分析其檢測(cè)結(jié)果。
人工蜂群(Artificial Bee Colony,ABC)算法是Karaboga在2005年提出的群智能優(yōu)化算法,因其控制參數(shù)少、全局探索能力強(qiáng)、魯棒性強(qiáng)和收斂速度快等優(yōu)勢(shì)而應(yīng)用廣泛[7]。研究成果主要集中在算法學(xué)習(xí)策略改進(jìn)、混合算法、算法機(jī)理及其應(yīng)用研究等。如:Ozturk等[7]提出了一種用于動(dòng)態(tài)聚類(lèi)的離散人工蜂群算法;田野等[8]通過(guò)交叉策略指導(dǎo)偵察蜂的覓食行為,提出了基于偵察蜂交叉覓食的人工蜂群算法;王志剛等[9]將符號(hào)函數(shù)引入到人工蜂群中,提出了基于符號(hào)函數(shù)的多搜索策略人工蜂群算法;匡芳君等[10]使用重組算子選擇最優(yōu)個(gè)體作為粒子群的全局極值和跟隨蜂鄰域蜜源,提出了基于Tent混沌的人工蜂群與粒子群混合算法;Mao等[11]提出了自適應(yīng)擴(kuò)展內(nèi)存的人工蜂群算法。如何均衡全局探索與局部開(kāi)采能力,如何提高算法收斂性時(shí)避免陷入局部最優(yōu)仍是ABC算法性能提升的關(guān)鍵問(wèn)題,本文將利用Tent混沌反向?qū)W習(xí)策略,增強(qiáng)局部鄰域搜索策略和錦標(biāo)賽選擇策略,提出了改進(jìn)人工蜂群算法(Improve ABC,簡(jiǎn)稱IABC)。
ABC算法蜂群包括引領(lǐng)蜂、跟隨蜂和偵察蜂三類(lèi)[7],用蜜源豐富程序表示可行解的質(zhì)量,最大適應(yīng)度的蜜源表示最優(yōu)解,通過(guò)式(1)隨機(jī)產(chǎn)生蜜源位置,即初始可行解:
其中,i=1,2,…,N,j=1,2,…,D,k=1,2,…,N是隨機(jī)選擇下標(biāo),且k≠i;Φ是[-1,1]隨機(jī)數(shù)。
如果蜜源處的引領(lǐng)蜂循環(huán)搜索限定次數(shù)Limit后仍不能更新,則此引領(lǐng)蜂變?yōu)閭刹旆洌掖藗刹旆浒词剑?)搜索策略生成新蜜源位置。
為使種群初始個(gè)體盡可能均勻分布和多樣化,且由于Tent混沌映射比Logistic映射具有收斂速度快和遍歷均勻的優(yōu)勢(shì),故本文擬采用Tent混沌反向?qū)W習(xí)策略[10]初始化種群,使初始種群既能提高多樣性,又能保留個(gè)體的隨機(jī)性。Tent映射通過(guò)貝努利移位變換表示為xt+1=(2xt)mod1,即在計(jì)算Tent映射小數(shù)部分時(shí),對(duì)二進(jìn)制數(shù)進(jìn)行無(wú)符號(hào)左移[10]。
基本ABC算法跟隨蜂是利用比例選擇策略,選擇蜜源位置,不能較好地更新較差蜜源,從而導(dǎo)致算法后期個(gè)體適應(yīng)度在種群進(jìn)化時(shí)常趨于一致,讓算法不易跳出局部最優(yōu)。因此,本文采用錦標(biāo)賽選擇策略[10]來(lái)選擇蜜源,該策略是基于局部競(jìng)爭(zhēng)機(jī)制的選擇過(guò)程,只須按適應(yīng)度的相對(duì)值選擇蜜源,以便盡可能避免個(gè)體影響算法的性能。錦標(biāo)賽選擇策略公式如下:
其中,ci為每個(gè)個(gè)體的得分。
在求解復(fù)雜優(yōu)化問(wèn)題時(shí),如何達(dá)到局部開(kāi)采與全局探索能力的平衡仍是人工蜂群算法提升性能的關(guān)鍵。由于ABC算法是通過(guò)引領(lǐng)蜂和跟隨蜂實(shí)現(xiàn)局部搜索,通過(guò)跟隨蜂和偵察蜂實(shí)現(xiàn)全局搜索,以平衡算法的全局探索與局部開(kāi)發(fā)能力。由式(2)可知蜜源鄰域搜索的新解具有較強(qiáng)的全局探索能力,但其局部開(kāi)采能力較弱。因此,本文將在搜索策略中引入自適應(yīng)步長(zhǎng),在搜索中考慮個(gè)體Xi和當(dāng)前最優(yōu)解Xbest的引領(lǐng)作用,提出一種新的搜索策略,以增強(qiáng)算法后期局部搜索能力,增強(qiáng)局部鄰域搜索公式如下:
本節(jié)擬利用用戶歷史負(fù)荷數(shù)據(jù),采用改進(jìn)人工蜂群算法提取用戶行業(yè)負(fù)荷模式曲線和用戶歷史數(shù)據(jù)負(fù)荷模式曲線,根據(jù)用戶考察日負(fù)荷曲線與人工蜂群算法提取的負(fù)荷模式曲線匹配的特征不同,使用不同的負(fù)荷數(shù)據(jù)預(yù)處理和模式匹配方法,分別計(jì)算考察日負(fù)荷曲線與同類(lèi)型用戶負(fù)荷模式、日負(fù)荷曲線與用戶負(fù)荷模式的匹配度;并根據(jù)電力部門(mén)的偏好,設(shè)定兩種負(fù)荷模式的匹配度權(quán)重,通過(guò)加權(quán)求和得到用戶用電正常度數(shù)。同時(shí),設(shè)置用戶竊電報(bào)警閾值和電器漏電報(bào)警閾值,以便做出相應(yīng)的用戶竊電報(bào)警和電器漏電提醒。
當(dāng)前各供電公司基本建成了智能采集終端,實(shí)現(xiàn)了居民用電遠(yuǎn)程抄表功能和電力營(yíng)銷(xiāo)業(yè)務(wù)應(yīng)用系統(tǒng),系統(tǒng)儲(chǔ)存有用戶每月的用電信息,能實(shí)時(shí)查詢用戶電量等信息??紤]到用戶的電力負(fù)荷隨季節(jié)變化,每月采集用戶負(fù)荷數(shù)據(jù)??紤]到用電負(fù)荷隨著季節(jié)變化而變化,因此,負(fù)荷數(shù)據(jù)按月收集。系統(tǒng)每15min測(cè)量1次用戶負(fù)荷,因此每天可以獲得每個(gè)用戶日用電負(fù)荷數(shù)據(jù)為24×4=96個(gè)數(shù)據(jù)點(diǎn)。所以本文需要收集同區(qū)域相似用戶正常用電負(fù)荷數(shù)據(jù)、被檢測(cè)用戶的正常歷史負(fù)荷數(shù)據(jù)和當(dāng)月的負(fù)荷數(shù)據(jù),即過(guò)去一年N個(gè)同區(qū)域同類(lèi)用戶對(duì)應(yīng)月正常用電負(fù)荷數(shù)據(jù)Xi,過(guò)去兩年用戶對(duì)應(yīng)月正常用電歷史負(fù)荷數(shù)據(jù)Yi和用戶當(dāng)月考察日的負(fù)荷數(shù)據(jù)Zi,三個(gè)負(fù)荷數(shù)據(jù)組表示如下:
其中:i=1,2,…,N,j=1,2,…,30;Xij表示第i個(gè)相似用戶的第j天的負(fù)荷數(shù)據(jù);Yij表示過(guò)去第i年該月第j天的負(fù)荷數(shù)據(jù);Zj表示當(dāng)月第j天的負(fù)荷數(shù)據(jù);每組負(fù)荷數(shù)據(jù)表示一條負(fù)荷曲線。
通常情況,同區(qū)域同類(lèi)型用戶的用電負(fù)荷變化相似性較大,但由于用戶用電設(shè)備數(shù)量和類(lèi)型的差異會(huì)導(dǎo)致負(fù)荷基數(shù)不同,同時(shí)考慮到同一用戶在相鄰年份相同月份自身負(fù)荷一般變化較小。因此,歸一化處理同區(qū)域同類(lèi)型用戶的用電負(fù)荷數(shù)據(jù),而保留用戶自身的歷史負(fù)荷數(shù)據(jù)。同區(qū)域同類(lèi)型用戶用電負(fù)荷數(shù)據(jù)預(yù)處理如下:
其中:k=1,2,…,96;ximax,ximin分別為第i個(gè)用戶的負(fù)荷數(shù)據(jù)最大值和最小值。
利用改進(jìn)人工蜂群提取負(fù)荷模式曲線時(shí),蜜源位置表示負(fù)荷數(shù)據(jù)曲線,即每個(gè)蜜蜂表示一個(gè)解,用負(fù)荷向量P=[p(1),p(2),…,p(96)]表示蜜源位置,向量中每個(gè)元素代表不同時(shí)刻的負(fù)荷。首先按照混沌反向?qū)W習(xí)方法初始化種群中的解,再按式(4)進(jìn)行引領(lǐng)蜂和跟隨蜂鄰域搜索,適應(yīng)度函數(shù)采用經(jīng)典聚類(lèi)方法的判定函數(shù),公式如下:
其中:M表示負(fù)荷曲線的條數(shù);xk(i)表示第k條負(fù)荷曲線第i時(shí)刻的負(fù)荷數(shù)據(jù)。
在上述編碼和優(yōu)化迭代操作的基礎(chǔ)上,經(jīng)過(guò)若干代更新迭代,得到了種群全局極值表達(dá)的負(fù)荷向量,即人工蜂群算法提取出來(lái)的負(fù)載模式曲線,包括歸一化的同區(qū)域同類(lèi)型用戶負(fù)荷模式曲線L=[l(1),l(2),…,l(96)]和用戶自身歷史負(fù)荷模式曲線H=[h(1),h(2),…,h(96)]。
進(jìn)行用電異常檢測(cè)之前,需要計(jì)算負(fù)荷模式匹配。首先根據(jù)用戶當(dāng)月實(shí)際負(fù)荷計(jì)算用戶當(dāng)月負(fù)荷模式,然后按照計(jì)算檢測(cè)用戶的當(dāng)月負(fù)荷模式曲線U=[u(1),u(2),…,u(96)]和歸一化后的用戶當(dāng)月負(fù)荷模式曲線U=[u(1),u(2),…,u(96)],考慮到用戶與同行業(yè)的負(fù)荷模式關(guān)聯(lián)性的一致性,定義L和U的匹配度m1公式如下:
本文使用基于平均相對(duì)距離度量計(jì)算H和U的匹配度m2,公式定義如下:
得到模式匹配后,根據(jù)實(shí)際情況確定對(duì)模式匹配度m1和m2的權(quán)重ω1和ω2,加權(quán)求和得到用戶用電正常度數(shù)η=ω1×m1+ω2×m2。
供電公司根據(jù)用戶信用狀況評(píng)估來(lái)設(shè)置用電正常的報(bào)警閾值。當(dāng)用戶用電正常度數(shù)η小于漏電報(bào)警閾值且大于竊電報(bào)警閾值時(shí),供電企業(yè)表示該用戶為正常用戶;否則,判斷該用戶用電正常度數(shù)η小于竊電報(bào)警閥值,則該用戶竊電異常用電次數(shù)Q=Q+1,如在指定時(shí)間內(nèi)竊電異常用電次數(shù)Q大于用戶異常用電報(bào)警次數(shù)(根據(jù)用戶信用狀況評(píng)估設(shè)置),則報(bào)警,提醒稽查人員現(xiàn)場(chǎng)檢查,并檢查結(jié)果來(lái)斷定用戶是否竊電;否則,漏電異常用電次數(shù)P=P+1,如在指定時(shí)間內(nèi)漏電異常用電次數(shù)P大于用戶異常電報(bào)警次數(shù),則提醒用戶自行檢查是否存在電器漏電情況?;诟倪M(jìn)人工蜂群算法的負(fù)荷模式異常用電檢測(cè)方法流程圖如圖1所示。
圖1 基于改進(jìn)人工蜂群算法的異常用電檢測(cè)流程圖
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于某電網(wǎng)350個(gè)用戶的日用電數(shù)據(jù),設(shè)置本文算法模式匹配權(quán)重ω1=0.3和ω2=0.7,竊電報(bào)警閥值為0.7,漏電報(bào)警閥值為0.9,連續(xù)兩周出現(xiàn)異常用電報(bào)警次數(shù)設(shè)置為3次。應(yīng)用算例在CPU為4.0GHZ,內(nèi)存為16GB的PC機(jī),MATLAB R2015b平臺(tái)編程實(shí)現(xiàn)算法仿真。
為更好地反映所提檢測(cè)算法對(duì)整個(gè)樣本的檢測(cè)能力,準(zhǔn)確率Accuracy公式定義如下:
其中:TP(True Positive)表示異常用戶被準(zhǔn)確檢測(cè)的人數(shù),TN(True Negative)表示正常用戶被準(zhǔn)確檢測(cè)的人數(shù),F(xiàn)P(False Positive)表示異常用戶被檢測(cè)錯(cuò)誤的人數(shù),F(xiàn)N(False Negative)表示正常用戶被檢測(cè)錯(cuò)誤的人數(shù)。
為了檢驗(yàn)本文所提算法的有效性和準(zhǔn)確性,將改進(jìn)人工蜂群算法直接應(yīng)用于某區(qū)域電網(wǎng)350個(gè)居民用戶(記為C1,C2,…,C750)用電分析,最后與標(biāo)準(zhǔn) ABC、改進(jìn) K-means[12]和 K-means算法進(jìn)行異常檢測(cè)對(duì)比實(shí)驗(yàn),最終檢測(cè)算法實(shí)驗(yàn)結(jié)果比較如表1所示。從表1看出,改進(jìn)ABC算法不僅用戶用電異常檢測(cè)準(zhǔn)確率和均方誤差優(yōu)于其它三種檢測(cè)方法,而且運(yùn)行時(shí)間也優(yōu)于其它三種檢測(cè)方法。因此,相對(duì)而言改進(jìn)ABC具有更好的異常用電檢測(cè)能力和適應(yīng)性也較強(qiáng),能有效提高用戶用電異常檢測(cè)準(zhǔn)確率,為用戶用電異常檢測(cè)和電力行為分析開(kāi)拓了新的思路和方法。
表1 各種檢測(cè)算法結(jié)果對(duì)比
本文針對(duì)同區(qū)域同類(lèi)型用戶的用電負(fù)荷變化相似性較大,但由于用戶用電設(shè)備數(shù)量和類(lèi)型的差異會(huì)導(dǎo)致負(fù)荷基數(shù)不同,同時(shí)考慮到同一用戶在相鄰年份相同月份自身負(fù)荷變化不大的規(guī)律,綜合考慮基于用戶歷史負(fù)荷數(shù)據(jù)的負(fù)荷模式和基于同地區(qū)同類(lèi)型用戶負(fù)荷數(shù)據(jù)的負(fù)荷模式方法預(yù)測(cè)用戶是否存在電器漏電和竊電,應(yīng)用改進(jìn)人工蜂群算法提取負(fù)荷模式曲線,提出了一種基于改進(jìn)人工蜂群的用電異常檢測(cè)方法。通過(guò)應(yīng)用實(shí)例分析實(shí)驗(yàn)驗(yàn)證了所提異常檢測(cè)方法的有效性和準(zhǔn)確性,為異常用電檢測(cè)提供了新的檢測(cè)思路和方法。