廣東電網(wǎng)有限責(zé)任公司客戶服務(wù)中心 康 峰 冼文祥 伍廣斌 舒 暢
隨著供電企業(yè)智能電網(wǎng)的不斷建設(shè)發(fā)展,智能電網(wǎng)終端能夠采集海量用戶用電數(shù)據(jù),采集到的海量電力數(shù)據(jù)將存儲(chǔ)在供電企業(yè)內(nèi)部的電力營(yíng)銷系統(tǒng)的服務(wù)器中,供電企業(yè)通過結(jié)合電費(fèi)核算的人為經(jīng)驗(yàn),建立相應(yīng)的用戶電費(fèi)數(shù)據(jù)異常檢測(cè)數(shù)學(xué)模型,對(duì)大批量的用戶電費(fèi)數(shù)據(jù)進(jìn)行處理分析,設(shè)計(jì)出相關(guān)的電費(fèi)異常檢測(cè)規(guī)則。供電企業(yè)通過對(duì)用戶電費(fèi)數(shù)據(jù)異常檢測(cè)規(guī)則的配置與優(yōu)化,達(dá)到過濾排除絕大部分用電正常客戶,篩選出電費(fèi)數(shù)據(jù)異常的客戶進(jìn)行再次復(fù)核,從而縮小了電費(fèi)數(shù)據(jù)復(fù)核的范圍,提高電費(fèi)復(fù)核工作的效率。
據(jù)調(diào)研,廣東電網(wǎng)公司現(xiàn)有的用戶電費(fèi)數(shù)據(jù)異常檢測(cè)判斷規(guī)則達(dá)100多條,如果在電費(fèi)數(shù)據(jù)核查過程中每一條電費(fèi)數(shù)據(jù)都需要遍歷一次全部的規(guī)則,將會(huì)給電力營(yíng)銷部門帶來繁重的工作量,并且核查時(shí)間長(zhǎng),極大降低了電力營(yíng)銷部門的運(yùn)行效率,并且通過規(guī)則篩選出的異常電費(fèi)數(shù)據(jù)命中率低,加重了電費(fèi)復(fù)核工作的負(fù)擔(dān),急需引入智能化的用戶電費(fèi)數(shù)據(jù)異常檢測(cè)手段,提高檢出率和準(zhǔn)確性。近年來,隨著計(jì)算機(jī)智能化的機(jī)器學(xué)習(xí)技術(shù)的逐漸成熟,電網(wǎng)企業(yè)和高校的研究人員開始關(guān)注用戶用電數(shù)據(jù)計(jì)算機(jī)智能篩選的潛在價(jià)值,基于機(jī)器學(xué)習(xí)的用戶用電行為分析逐漸成為電力數(shù)據(jù)挖掘的一個(gè)熱門的應(yīng)用場(chǎng)景。
周李等[1]利用用電數(shù)據(jù)的時(shí)序特征,使用稀疏編碼的模型方法來挖掘用戶的原始用電數(shù)據(jù),通過各個(gè)特征的使用頻率來判斷用戶用電行為模式和異常行為。莊池杰等[2]提出局部離群因子檢測(cè)算法,計(jì)算不同類別的用戶的不同用電模式,按登記的用戶類型事先分類,然后對(duì)每一類用戶分別運(yùn)用離群因子檢測(cè)算法檢測(cè)用電異常。許剛等[3]建立用戶側(cè)行為模式信息簇,利用隨機(jī)權(quán)網(wǎng)絡(luò)的有監(jiān)督學(xué)習(xí)得到隨機(jī)森林模型,并對(duì)其進(jìn)行稀疏化處理,依據(jù)異常積累量指標(biāo)來判斷樣本是否存在異常。
隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,很多學(xué)者也在嘗試結(jié)合大數(shù)據(jù)平臺(tái)解決海量用電數(shù)據(jù)處理問題,取得了一定的成果。其中,趙莉等[4]在Hadoop 平臺(tái)上實(shí)現(xiàn)改進(jìn)k-means 算法的用電數(shù)據(jù)分析,提高了數(shù)據(jù)處理效率。張素香等[5]提出了基于k-means聚類算法的用戶用電行為分析模型在云平臺(tái)上的實(shí)現(xiàn)方法。ANGELOS 等[6]提出基于模糊集原理與聚類分析的用戶側(cè)異常行為檢測(cè)方法。DEPURU 等[7]利用歷史數(shù)據(jù)建立了用戶模式數(shù)據(jù)集,并對(duì)多用戶在線異常檢測(cè)技術(shù)進(jìn)行了研究。
本文的主要研究?jī)?nèi)容包括三方面:首先是對(duì)電費(fèi)數(shù)據(jù)進(jìn)行預(yù)處理;然后是選取深度森林等機(jī)器學(xué)習(xí)算法對(duì)電費(fèi)數(shù)據(jù)進(jìn)行檢測(cè),測(cè)試各機(jī)器學(xué)習(xí)算法的檢測(cè)性能;最后通過對(duì)深度森林等算法的集成學(xué)習(xí),測(cè)試集成學(xué)習(xí)的檢測(cè)性能。
基于集成學(xué)習(xí)的電費(fèi)數(shù)據(jù)異常檢測(cè)方法模型設(shè)計(jì)流程如圖1所示。在電費(fèi)數(shù)據(jù)異常檢測(cè)方法研究之前,需要對(duì)電費(fèi)數(shù)據(jù)進(jìn)行預(yù)處理,由于獲取的電費(fèi)數(shù)據(jù)當(dāng)中異常電費(fèi)數(shù)據(jù)占比極低,存在樣本不平衡的問題,若直接采用原始電費(fèi)數(shù)據(jù)樣本進(jìn)行實(shí)驗(yàn),將會(huì)降低電費(fèi)數(shù)據(jù)異常檢測(cè)的表現(xiàn)性能。
圖1 電費(fèi)數(shù)據(jù)異常檢測(cè)方法模型設(shè)計(jì)流程
為解決樣本不平衡的問題,本文采用了過采樣算法和欠采樣算法對(duì)電費(fèi)數(shù)據(jù)進(jìn)行處理。欠采樣處理采用了隨機(jī)欠采樣算法,隨機(jī)欠采樣算法通過隨機(jī)抽取多數(shù)類電費(fèi)數(shù)據(jù)樣本,在本文中為非異常電費(fèi)數(shù)據(jù),異常數(shù)據(jù)樣本保持不變,最終使得非異常數(shù)據(jù)與異常數(shù)據(jù)樣本的比例趨于平衡。過采樣處理采用了SMOTE 算法,它是基于隨機(jī)過采樣算法的一種改進(jìn)方案,解決了隨機(jī)過采樣容易產(chǎn)生模型過擬合的問題。經(jīng)過欠采樣和過采樣算法處理之后,得到了本文實(shí)驗(yàn)所用的某供電局的真實(shí)電費(fèi)數(shù)據(jù)集,通過對(duì)電費(fèi)數(shù)據(jù)集進(jìn)行缺失值補(bǔ)全和對(duì)文本類數(shù)據(jù)進(jìn)行標(biāo)簽編碼,進(jìn)一步使電費(fèi)數(shù)據(jù)符合機(jī)器學(xué)習(xí)算法訓(xùn)練的要求。
從上一步獲取到了經(jīng)過數(shù)據(jù)預(yù)處理的電費(fèi)數(shù)據(jù)集之后,通過實(shí)驗(yàn)選出了表現(xiàn)性能較好的深度森林(DF)、XGBoost、隨機(jī)森林(RF)、CatBoost、決策樹(DT)和GBDT 六種機(jī)器學(xué)習(xí)算法進(jìn)行電費(fèi)數(shù)據(jù)異常檢測(cè)。后五種機(jī)器學(xué)習(xí)算法在異常檢測(cè)分類領(lǐng)域應(yīng)用較為成熟,深度森林算法于2017年提出,這是一種集合了決策樹的機(jī)器學(xué)習(xí)方法,借鑒了深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),由多粒度掃描和級(jí)聯(lián)森林兩部分結(jié)構(gòu)組成,作為一種基于決策樹的算法,深度森林超參數(shù)較少,便于對(duì)參數(shù)進(jìn)行調(diào)節(jié),從而更易訓(xùn)練得到較好電費(fèi)數(shù)據(jù)異常檢測(cè)結(jié)果。
最后,通過對(duì)六種機(jī)器學(xué)習(xí)算法的預(yù)測(cè)結(jié)果進(jìn)行集成學(xué)習(xí),對(duì)不同機(jī)器學(xué)習(xí)模型進(jìn)行了融合,綜合了六種機(jī)器學(xué)習(xí)算法各自的優(yōu)點(diǎn)。本文設(shè)計(jì)了相或集成與相與集成的算法來集成多個(gè)機(jī)器學(xué)習(xí)分類器。相或集成算法指的是只要六個(gè)機(jī)器學(xué)習(xí)模型中有一個(gè)檢測(cè)到了電費(fèi)數(shù)據(jù)異常,集成學(xué)習(xí)模型就判斷該條電費(fèi)數(shù)據(jù)存在異常;相與集成算法指的是只有當(dāng)所有六個(gè)機(jī)器學(xué)習(xí)模型都檢測(cè)到了電費(fèi)數(shù)據(jù)異常時(shí),集成學(xué)習(xí)模型才判斷該條電費(fèi)數(shù)據(jù)存在異常。
本文選取的是廣東電網(wǎng)某供電局2020年9個(gè)月的真實(shí)電費(fèi)數(shù)據(jù),為了確保用電用戶隱私,獲取的電費(fèi)數(shù)據(jù)均經(jīng)過了脫敏處理,本文研究所用的電費(fèi)數(shù)據(jù)集僅用以學(xué)術(shù)研究。原始的電費(fèi)數(shù)據(jù)集共有1600余萬條,經(jīng)過數(shù)據(jù)欠采樣及過采樣算法處理之后,最終獲取了30萬條電費(fèi)數(shù)據(jù)用以實(shí)驗(yàn),其中包括1139條真實(shí)異常電費(fèi)數(shù)據(jù),其余均為非異常電費(fèi)數(shù)據(jù)。電費(fèi)數(shù)據(jù)集包括了88個(gè)原始字段,其中包括了一個(gè)人為添加的異常標(biāo)記字段。經(jīng)過分析發(fā)現(xiàn),這88個(gè)字段當(dāng)中部分字段存在一定的相關(guān)性,為了避免電費(fèi)數(shù)據(jù)的信息冗余以及模型過擬合,本文采用基尼重要性來對(duì)全部電費(fèi)數(shù)據(jù)字段進(jìn)行重要性排序,基尼重要性由隨機(jī)森林算法訓(xùn)練和計(jì)算得出。
根據(jù)特征重要性排序的結(jié)果以及人為經(jīng)驗(yàn)的分析,最終刪除了21個(gè)字段,保留了67個(gè)字段的電費(fèi)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。電費(fèi)數(shù)據(jù)異常檢測(cè)基于用戶分類的角度完成異常檢測(cè)工作,首先所有的電費(fèi)數(shù)據(jù)都是未知異常數(shù)據(jù),檢測(cè)出為異常數(shù)據(jù)標(biāo)記為1,其他非異常數(shù)據(jù)標(biāo)記為0。表1所示的誤差矩陣比較清晰的展示了機(jī)器學(xué)習(xí)模型的電費(fèi)數(shù)據(jù)異常檢測(cè)結(jié)果。
表1 誤差矩陣
本文中將電費(fèi)異常數(shù)據(jù)分為正類,電費(fèi)非異常數(shù)據(jù)分為負(fù)類,機(jī)器學(xué)習(xí)算法在測(cè)試集上預(yù)測(cè)異?;蛘叻钱惓?,最終是為了生成一個(gè)泛化程度高的機(jī)器學(xué)習(xí)模型。在誤差矩陣中TP 是正確預(yù)測(cè)異常電費(fèi)數(shù)據(jù)的數(shù)量,F(xiàn)N 是正確預(yù)測(cè)非異常電費(fèi)數(shù)據(jù)的數(shù)量,F(xiàn)P 和TN 是異常和非異常電費(fèi)數(shù)據(jù)錯(cuò)誤分類的數(shù)量。以下介紹本文選取的評(píng)估指標(biāo):
查準(zhǔn)率(Precision)本文中又稱命中率,表示所有預(yù)測(cè)為異常數(shù)據(jù)的結(jié)果中,真正的電費(fèi)數(shù)據(jù)異常的比例,其表達(dá)式為;查準(zhǔn)率(Recall)本文中又稱檢出率,表示測(cè)試集中所有真正的電費(fèi)異常數(shù)據(jù)中,被機(jī)器學(xué)習(xí)模型找出來的比例,其表達(dá)式為。
F值(F-Score),是命中率與檢出率的加權(quán)調(diào)和平均值,度量了命中率對(duì)檢出率的相對(duì)重要性,其表達(dá)式為,當(dāng)α 為1時(shí),就是常用的機(jī)器學(xué)習(xí)模型評(píng)估指標(biāo)F1值,F(xiàn)1值綜合考慮了電費(fèi)數(shù)據(jù)異常命中率與檢出率的影響,通常F1值越大說明機(jī)器學(xué)習(xí)模型的檢測(cè)效果越好,其表達(dá)式為。
將電費(fèi)數(shù)據(jù)集以8:2的比例隨機(jī)抽樣劃分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,并且進(jìn)行五折交叉驗(yàn)證,以避免因?yàn)殡娰M(fèi)數(shù)據(jù)集劃分引起的偶然誤差,保證所得電費(fèi)數(shù)據(jù)異常檢測(cè)結(jié)果的可靠性。首先使用全量數(shù)據(jù)集分別對(duì)深度森林、XGBoost、隨機(jī)森林、CatBoost、決策樹和GBDT 六種機(jī)器學(xué)習(xí)算法模型進(jìn)行實(shí)驗(yàn)驗(yàn)證,對(duì)比各個(gè)機(jī)器學(xué)習(xí)算法對(duì)電費(fèi)數(shù)據(jù)異常檢測(cè)的評(píng)估指標(biāo)并對(duì)結(jié)果進(jìn)行分析,其查準(zhǔn)率、查全率、F1值分別為0.889/0.692/0.778/0.778/0.5/0.583,0.8/0.9/0.7/0.7/0.9/0.7,0.842/0.783/0.737/0.737/0.643/0.636。
通過實(shí)驗(yàn)結(jié)果可以看出,深度森林的表現(xiàn)效果在六種機(jī)器學(xué)習(xí)算法中整體最優(yōu),GBDT 算法的電費(fèi)數(shù)據(jù)異常檢測(cè)效果較差。隨后使用相或集成與相與集成的算法來集成多個(gè)機(jī)器學(xué)習(xí)模型的電費(fèi)數(shù)據(jù)異常檢測(cè)結(jié)果,查準(zhǔn)率、查全率、F1值的相或集成與相與集成學(xué)習(xí)算法的實(shí)驗(yàn)結(jié)果分別為0.357/1、1/0.6、0.526/0.75,可看出二算法分別能夠最大化提高電費(fèi)數(shù)據(jù)異常檢測(cè)的查全率和查準(zhǔn)率,相比當(dāng)前供電企業(yè)采用傳統(tǒng)的規(guī)則篩選電費(fèi)異常數(shù)據(jù)的方法,雖然可以保證檢出的電費(fèi)異常數(shù)據(jù)數(shù)量最大化,但命中率低于10%,相或集成算法的實(shí)驗(yàn)結(jié)果展示了在測(cè)試集中查全率接近100%的情況之下,電費(fèi)數(shù)據(jù)異常的命中率能夠達(dá)到35%左右,已經(jīng)高于當(dāng)前供電企業(yè)規(guī)則篩選異常電費(fèi)數(shù)據(jù)的方法。
相與集成算法結(jié)果表明,在舍棄電費(fèi)數(shù)據(jù)異常查全率的前提下,電費(fèi)異常數(shù)據(jù)的命中率能夠達(dá)到將近100%的水平,相與集成算法能夠幫助供電企業(yè)發(fā)現(xiàn)部分難以發(fā)掘的異常電費(fèi)數(shù)據(jù),為供電企業(yè)后續(xù)電費(fèi)核算工作的完善提供支持。
綜上,集成學(xué)習(xí)的應(yīng)用能夠幫助供電企業(yè)在滿足電費(fèi)異常數(shù)據(jù)的檢出率最大化的同時(shí)提高電費(fèi)異常數(shù)據(jù)的命中率,與傳統(tǒng)規(guī)則篩選異常電費(fèi)數(shù)據(jù)的方法相比,具有更快的響應(yīng)時(shí)間和更高的命中率,能夠滿足當(dāng)前智能電網(wǎng)的發(fā)展要求,有利于減輕電費(fèi)數(shù)據(jù)復(fù)核部門的工作負(fù)擔(dān),為供電企業(yè)服務(wù)水平的提高提供了新的借鑒價(jià)值。