戶艷琴,李海明,劉念,傅皆愷,黃天翔,李承霖,李珂舟,胡志強,范志夫,鄔小可
(1.國網(wǎng)江西綜合能源服務(wù)有限公司,南昌市330096;2.新能源電力系統(tǒng)國家重點實驗室(華北電力大學(xué)),北京市 102206;3.國網(wǎng)江西省電力有限公司,南昌市330077;4.國網(wǎng)江西省電力有限公司鷹潭供電分公司,江西省鷹潭市335000)
隨著互聯(lián)網(wǎng)理念的不斷深化,一種新型能源體系架構(gòu)——“能源互聯(lián)網(wǎng)”應(yīng)運而生[1]。能源互聯(lián)網(wǎng)結(jié)合互聯(lián)網(wǎng)信息技術(shù)與能源利用技術(shù),為終端用戶提供靈活多樣的能源共享服務(wù)[2-3]。此外,能源互聯(lián)網(wǎng)的發(fā)展,增加了能源系統(tǒng)中的數(shù)據(jù)采集量,提高了其信息共享程度,為基于大數(shù)據(jù)分析技術(shù)解決能源系統(tǒng)中的問題提供了數(shù)據(jù)基礎(chǔ)。若能源互聯(lián)網(wǎng)終端發(fā)生用電異常情況,將會增大系統(tǒng)的電能損耗,降低能源利用效率,因此需要對終端用戶進行異常用電模式檢測,從而便于電網(wǎng)公司及時發(fā)現(xiàn)用電異常的情況,減少電網(wǎng)的經(jīng)濟損失,降低竊電行為的發(fā)生率[4]。
傳統(tǒng)的終端用戶異常用電模式檢測方法是現(xiàn)場人員定期巡檢線路、定期校驗電表、用戶舉報等,但這些手段對人的依賴性較大,需要投入大量的人力成本,同時,用電模式的檢測耗時較長、效率較低[5]。此外,用戶的竊電手段多種多樣,傳統(tǒng)的異常用電模式檢測方法難以準(zhǔn)確地判斷用戶用電是否正常,亟需檢測精度較高、耗時較少的輕量化的異常用電模式檢測方法。
目前,對于異常用電模式檢測的研究主要分為基于系統(tǒng)狀態(tài)和基于人工智能2類方法?;谙到y(tǒng)狀態(tài)的分析方法是通過實時比較配電網(wǎng)的功率、電壓、電流等大量數(shù)據(jù)的變化來檢測異常用電模式[6]。文獻[7]通過對用戶日用電量和日線損電量數(shù)據(jù)進行批量處理及相關(guān)度分析識別臺區(qū)用戶竊電行為,從而實現(xiàn)用戶異常用電模式的檢測。文獻[8]中綜合對比分析同期線損、用電負(fù)荷、日用電量、電流及有功功率等電量信息,實現(xiàn)用戶異常用電模式的精準(zhǔn)檢測。然而用戶側(cè)具有海量且多元的用電數(shù)據(jù),異常用電模式也多種多樣,基于系統(tǒng)狀態(tài)的檢測方法需要較長的檢測時間。為了縮短檢測時間并提高檢測精度,逐漸出現(xiàn)了基于人工智能的異常用電模式檢測模型,該模型首先通過數(shù)據(jù)分析提取可以反映異常用電模式的指標(biāo),再借助人工智能的方法訓(xùn)練指標(biāo)與用電模式檢測結(jié)果之間的映射關(guān)系,完成異常用電模式檢測模型的構(gòu)建。例如,借助主成分分析實現(xiàn)大量負(fù)荷數(shù)據(jù)的可視化,構(gòu)建了無監(jiān)督學(xué)習(xí)的異常用電模式檢測模型[9];以正常用戶用電數(shù)據(jù)為訓(xùn)練樣本,采用自編碼網(wǎng)絡(luò)學(xué)習(xí)數(shù)據(jù)特征,重構(gòu)輸入數(shù)據(jù)以計算檢測閾值,基于此建立了對比誤差與檢測閾值的異常用電行為辨識模型[10];利用時間窗函數(shù)與Bootstrap重采樣建立用戶側(cè)行為模式信息簇的隨機森林模型[11]。文獻[12-13]采用極端梯度提升(extreme gradient boosting,XGBoost)算法對異常用戶進行識別,從用電用戶基本屬性特征、不同時間尺度用電特征和不同時間尺度上用電相似性3個方面進行特征提取,但未采取特征重新構(gòu)造的方法對數(shù)據(jù)進行加工處理,因此這種粗顆粒度的原始數(shù)據(jù)會限制模型檢測精度的提升。為了進一步提高檢測精度,2種或2種以上算法形成的組合算法被提出[14]。此外,基于圖論的方法[15]、加權(quán)算法[16]、神經(jīng)網(wǎng)絡(luò)算法[17]、支持向量機[18]等也應(yīng)用于用電模式檢測問題中。上述方法均在特定情況下取得了不錯的檢測結(jié)果,但是在評價指標(biāo)的選擇、檢測時間和效率的優(yōu)化方面仍存在較大的提升空間。
為此,本文首先綜合考慮終端用戶用能負(fù)荷、用能損耗及告警信息等數(shù)據(jù)對用戶異常用電模式的影響,構(gòu)建由負(fù)荷曲線斜率指標(biāo)、線損指標(biāo)和告警類指標(biāo)組成的異常用電模式檢測評估指標(biāo)體系,提出基于XGBoost的能源互聯(lián)網(wǎng)終端用戶模式檢測模型。此外,為了消除無關(guān)數(shù)據(jù)及缺失數(shù)據(jù)對模型精確度的影響,在模型訓(xùn)練前進行數(shù)據(jù)預(yù)處理。最后通過與決策樹、隨機森林及Adaboost算法進行對比分析驗證方法的有效性。
能源互聯(lián)網(wǎng)終端用戶發(fā)生異常用電時,配電網(wǎng)的電氣參數(shù)會發(fā)生變化,如電壓、電流、線損等,根據(jù)變化的電氣參數(shù)可以構(gòu)建異常用電模式評價指標(biāo)體系,從而便于檢測異常用電的終端用戶?;诓杉到y(tǒng)中的數(shù)據(jù),選擇用戶用電量、線損、終端告警情況建立如圖1所示的評價指標(biāo)體系。
圖1 異常用電模式評價指標(biāo)體系Fig.1 Evaluation index system of abnormal electricity consumption pattern
由于用戶的用電行為存在慣性,每天的用電負(fù)荷基本一致,一般情況下正常用戶的用電量斜率接近于0,然而處于異常用電模式的用戶的用電量曲線較為特殊,在異常初期其用電量持續(xù)下降,斜率隨時間而減小,下降到某一較低值后,長期處于這一穩(wěn)定狀態(tài)。因此將用戶在某一個時間段內(nèi)用電量是否持續(xù)下降作為識別其是否發(fā)生異常用電行為的特征之一。計算公式如式(1)—(3)所示[5]。
(1)
(2)
(3)
式中:Kα為第α天的負(fù)荷曲線斜率;Lt為第t天的負(fù)荷,以m天為統(tǒng)計周期,計算包括該天在內(nèi)的共(2m+1)天的負(fù)荷曲線斜率。
如果負(fù)荷曲線的斜率持續(xù)減小,則該用戶具有異常用電嫌疑。對于該類用戶,統(tǒng)計(2m+1)天中當(dāng)天負(fù)荷曲線斜率比前一天小的天數(shù),并且定義(2m+1)天的負(fù)荷曲線斜率指標(biāo)為:
(4)
(5)
式中:IS為負(fù)荷曲線斜率指標(biāo);D(t)為負(fù)荷曲線斜率變化的標(biāo)志,若負(fù)荷曲線斜率變小,則D(t)=1,否則D(t)=0。
較多的可靠特征會提高基于數(shù)據(jù)的學(xué)習(xí)類算法的準(zhǔn)確性,降低誤判率,增強實際應(yīng)用過程中對數(shù)據(jù)集的適應(yīng)性,因此增加線損指標(biāo)作為檢測異常用電模式的一個關(guān)鍵特征。線損為電網(wǎng)供電量與售電量的差值,當(dāng)用戶側(cè)出現(xiàn)異常用電時,電網(wǎng)供電量不變,售電量降低,導(dǎo)致電網(wǎng)的線損會出現(xiàn)明顯增大??紤]到用電量數(shù)值差異,定義線損率為線損指標(biāo),其計算公式如式(6)所示[19]。
(6)
當(dāng)用戶側(cè)出現(xiàn)異常用電模式時,線路的線損率增大。然而用戶每天的用電量存在一定的波動,僅以當(dāng)天線損率的增大作為異常用電特征會導(dǎo)致較大的誤差,因此將m天的線損率平均值作為評估指標(biāo),并分別計算當(dāng)天的前m天和后m天的平均線損率。定義線損指標(biāo)如式(7)所示。
(7)
(8)
(9)
與異常用電模式有關(guān)的終端告警信息主要包括電壓斷相、電流不平衡及電能表異常等[20]。將與異常用電模式有關(guān)的終端告警次數(shù)的總和作為告警信息指標(biāo),可以有效地減少單一告警信息帶來的誤差。告警類指標(biāo)的計算公式如式(10)所示。
(10)
(11)
式中:wt為報警的總次數(shù);Q為終端告警信號類別總數(shù);sq是警告信號的狀態(tài),如果有報警信息,則sq=1,否則sq=0;Iw是告警類指標(biāo);b是警告次數(shù)參考值。
從用電采集系統(tǒng)和能量管理系統(tǒng)獲取的數(shù)據(jù)存在部分?jǐn)?shù)據(jù)缺失的問題,無法直接進行特征挖掘。為了提高數(shù)據(jù)質(zhì)量,并使數(shù)據(jù)更好地適應(yīng)挖掘方法,對原始數(shù)據(jù)進行數(shù)據(jù)預(yù)處理,包括數(shù)據(jù)清洗、缺失值處理及數(shù)據(jù)變換等。
1)數(shù)據(jù)清洗。
數(shù)據(jù)清洗是基于建模需要,篩選出所需要的數(shù)據(jù)。原始數(shù)據(jù)中的冗余、無關(guān)數(shù)據(jù)會影響特征挖掘過程,因此需要刪除此類數(shù)據(jù),平滑數(shù)據(jù)噪聲。
公用事業(yè)等非居民用電一般不會存在異常用電模式,因此刪除非居民用電類別的用電數(shù)據(jù)。對于居民用戶而言,節(jié)假日與工作日的用電存在較大差異,為減小用電量差異對檢測模型的影響,刪除節(jié)假日的用電數(shù)據(jù),即令m=5。
2)缺失值處理。
用電采集系統(tǒng)記錄的數(shù)據(jù)會由于采集設(shè)備故障、傳輸丟包等原因存在部分缺失,若直接忽略缺失樣本,會導(dǎo)致日線損率數(shù)據(jù)誤差較大,從而降低異常用電模式檢測模型的精確度。為了避免這種影響,采用拉格朗日插值法[21]對缺失值進行處理。具體方法如下:首先從原始數(shù)據(jù)集中確定因變量和自變量,取出缺失值前后的5個數(shù)據(jù)(若遇到數(shù)據(jù)不存在或者為空,直接將數(shù)據(jù)舍去,將僅有的數(shù)據(jù)組成一組),將取出來的10個數(shù)據(jù)組成一組。然后采用拉格朗日多項式插值公式進行處理,如式(12)—(13)所示。對全部缺失數(shù)據(jù)依次進行插補,直到不存在缺失值為止。
(12)
(13)
式中:v為缺失值對應(yīng)的節(jié)點序號;Ф(v)為缺失值的插值結(jié)果;φh(v)為插值基函數(shù);vβ、vh為非缺失值Vh對應(yīng)的不同節(jié)點序號;N是缺失值前后取出數(shù)據(jù)樣本的總數(shù)。
3)數(shù)據(jù)變換。
數(shù)據(jù)變換是指對數(shù)據(jù)進行規(guī)范化處理,即轉(zhuǎn)換數(shù)據(jù)格式使之適用于特征挖掘算法。根據(jù)數(shù)據(jù)特點,可以從規(guī)范化處理和屬性構(gòu)造2個方面進行數(shù)據(jù)變換。規(guī)范化處理是將具有不同量綱的數(shù)據(jù)轉(zhuǎn)換到同一量綱,將數(shù)據(jù)規(guī)定到一個較小的特定范圍。數(shù)據(jù)規(guī)范化的方法有3種:最小-最大規(guī)范化、z-score規(guī)范化和小數(shù)定標(biāo)規(guī)范化[22],這里采用操作簡單的最小-最大規(guī)范化處理方法。
XGBoost能夠進行多線程并行計算,在計算速度和學(xué)習(xí)能力方面都大幅提升[23]。并且XGBoost算法的損失函數(shù)根據(jù)二階泰勒展開,具有高準(zhǔn)確度、不易過擬合、可擴展性等特點。XGBoost還可以分布式處理高維度稀疏特征,因此,XGBoost算法優(yōu)于同類算法。
1)模型輸入。
將給定的包含c個屬性,n個樣本的數(shù)據(jù)集作為XGBoost算法的輸入數(shù)據(jù),記為:
D={(xi,yi):xi∈Rc,|D|=n}
(14)
式中:xi表示樣本的特征向量,i=1,2,…,n,n為樣本總數(shù);yi表示樣本的類別標(biāo)簽;Rc為c維特征實數(shù)空間。
2)構(gòu)建提升樹。
提升樹是一種集成方法,XGBoost算法基于數(shù)據(jù)集D進行樹的累加,每次迭代訓(xùn)練一棵樹,并且采用CART回歸樹作為該模型的子樹模型,一棵回歸樹的集合記為:
F={f?(x)=ωq(x),q:Rc→T,ω∈RT}
(15)
式中:q代表樣本映射到相應(yīng)的葉子節(jié)點的規(guī)則;T代表一棵樹的葉子節(jié)點數(shù)量;ω表示葉子節(jié)點的權(quán)重;f?(·)代表CART樹。
當(dāng)完成θ棵樹的訓(xùn)練時,基于XGBoost模型的預(yù)測值表示為:
(16)
對樹的訓(xùn)練迭代過程是相互獨立的,即原來的模型保持不變,將一個新的函數(shù)添加到模型中。一個函數(shù)對應(yīng)一棵樹,新生成的樹擬合上次預(yù)測的殘差,迭代過程如公式(17)所示。
(17)
3)正則化目標(biāo)函數(shù)。
XGBoost的目標(biāo)函數(shù)如式(18)、(19)所示:
(18)
(19)
式中:l(·)是誤差函數(shù),用來衡量預(yù)測值與真實值之間的偏差;Ω(f?)是正則化項,用來衡量模型的復(fù)雜度,防止模型訓(xùn)練過擬合;γ、λ為參數(shù),分別用來控制葉子結(jié)點的個數(shù)和控制葉子節(jié)點的權(quán)重大小。對式(18)第一項進行泰勒展開,并聯(lián)立式(19),最終的目標(biāo)函數(shù)只依賴于每個數(shù)據(jù)點在誤差函數(shù)上的一階導(dǎo)數(shù)和二階導(dǎo)數(shù),如式(20)所示。
(20)
(21)
(22)
(23)
(24)
式中:Lobj(t)為第t次迭代的目標(biāo)函數(shù);Ij={i|q(xi)=j}為節(jié)點j上的樣本集合;gi、hi分別為訓(xùn)練誤差的一階和二階梯度統(tǒng)計量。
4)節(jié)點切分算法。
XGBoost算法采用貪心算法從根節(jié)點開始,每次分裂一個節(jié)點,計算分裂后的增益并選擇最大增益對應(yīng)的節(jié)點。IL和IR分別是分割點左邊和右邊的樣本集,根據(jù)XGBoost損失函數(shù)計算其信息增益:
(25)
式中:I=IL∪IR;加和的3項分別為左子樹、右子樹和不分割時的增益分?jǐn)?shù),當(dāng)增益Gain<0時,放棄分割。
訓(xùn)練過程中,模型不斷計算節(jié)點損失以選擇增益損失最大的葉子節(jié)點。模型損失計算過程見表1。
表1 XGBoost節(jié)點切分算法Table 1 Node segmentation algorithm for XGBoost
1)終端用戶異常用電模式檢測流程。
根據(jù)基學(xué)習(xí)器為樹的XGBoost算法建立終端用戶異常用電模式檢測模型,其流程如圖2所示,具體步驟如下所示:
圖2 基于XGBoost的異常用電模式檢測流程Fig.2 Flow chart of detection of abnormal electricity consumption pattern based on XGBoost
步驟1:導(dǎo)入預(yù)處理后的用戶數(shù)據(jù),并將其分為訓(xùn)練集和測試集,訓(xùn)練集用來訓(xùn)練XGBoost異常用電模式檢測模型,測試集用來評價模型的泛化性能。
步驟2:通過繪制弱學(xué)習(xí)器個數(shù)-準(zhǔn)確率曲線,確定弱學(xué)習(xí)器個數(shù)M(迭代次數(shù))及學(xué)習(xí)率參數(shù)。在弱學(xué)習(xí)器個數(shù)和學(xué)習(xí)率確定的條件下,通過網(wǎng)格搜索法來確定XGBoost子樹的最大深度、樣本的采樣比和樣本屬性采樣比等其他模型參數(shù)。最終得到最優(yōu)的基于XGBoost的異常用電模式檢測模型。
步驟3:將步驟1中的測試集輸入到步驟2得到的檢測模型中,輸出終端用戶異常用電模式檢測結(jié)果,并通過繪制受試者工作特征(receiver operating characteristic,ROC)曲線來評價模型的性能。
2)準(zhǔn)確率檢驗。
終端用戶異常用電模式檢測的本質(zhì)是基于用電數(shù)據(jù)進行用戶正常和異常用電行為的檢測。
對于二分類檢測問題,可將樣例根據(jù)其真假類別與學(xué)習(xí)器預(yù)測類別的組合劃分為:真正例 (true positive,TP)、假正例 (false positive,F(xiàn)P)、真反例 (true negative,TN)、假反例 (false negative,F(xiàn)N),分別用TP、FP、TN、FN表示上述4種情形。分類結(jié)果的“混淆矩陣”如表2所示。
表2 混淆矩陣Table 2 Confusion matrix
定義準(zhǔn)確率為正確分類的測試樣本的個數(shù)占測試樣本總數(shù)的比例Accurary:
(26)
式中:nTP、nFP、nFN、nTN分別為TP、FP、FN、TN的數(shù)量。
由于準(zhǔn)確率指標(biāo)無法體現(xiàn)正例和負(fù)例的覆蓋率,在一些有特殊要求的場景下,單一的準(zhǔn)確率指標(biāo)并不能夠全面地表現(xiàn)模型的分類效果。在實際的數(shù)據(jù)集中經(jīng)常會出現(xiàn)類不平衡(class imbalance)現(xiàn)象,即負(fù)樣本比正樣本多很多(或者相反),而且測試數(shù)據(jù)中的正負(fù)樣本的分布也可能隨著時間變化。而ROC曲線則不受這種變化的影響,更能反映模型的檢測效果。ROC曲線的橫坐標(biāo)為FPR,縱坐標(biāo)為TPR。其中,TPR表示正常用電的樣本被正確地判斷為正常的比率,如式(27)所示;FPR 表示異常用電的樣本被錯誤地判斷為正常用電的比率,如式(28)所示。
(27)
(28)
ROC曲線覆蓋下的面積 (area under curve,AUC)介于0.1和1.0之間,AUC的值越大則模型的準(zhǔn)確率越高。
本算例基于如圖3所示的配電系統(tǒng)結(jié)構(gòu),208個用戶在5年內(nèi)的相關(guān)數(shù)據(jù)[24]驗證所提模型的有效性。該系統(tǒng)包括用戶層及能量管理層,首先借助用戶層終端智能電表獲取用戶的負(fù)荷數(shù)據(jù)、線損數(shù)據(jù)及終端報警次數(shù)等信息,再將采集信息傳輸?shù)侥芰抗芾韺拥臄?shù)據(jù)接收單元,在用電異常模式檢測單元訓(xùn)練檢測模型并分析用戶的用能特征,若用戶用電異常,則借助用戶側(cè)開關(guān)控制單元斷開該用戶的接入開關(guān),減少電網(wǎng)損失。
圖3 配電系統(tǒng)結(jié)構(gòu)Fig.3 The structure of distribution network
在數(shù)據(jù)預(yù)處理后的數(shù)據(jù)樣本中隨機抽取70%作為訓(xùn)練集,30%作為測試集,并且訓(xùn)練集與測試集中正負(fù)樣本的比例均為1∶1?;赬GBoost算法的異常用電模式檢測模型包含多種參數(shù),如學(xué)習(xí)率、樹的最大深度、迭代次數(shù)、樣本采樣比、樣本屬性采樣比及正則化項權(quán)重比等,其中迭代次數(shù)、樹的最大深度和學(xué)習(xí)率3個參數(shù)直接影響模型的準(zhǔn)確率,因此需要調(diào)節(jié)參數(shù)以達到模型的最優(yōu)效果。
為了確定檢測模型的最佳學(xué)習(xí)率及迭代次數(shù),分別令學(xué)習(xí)率為0.1、0.3、0.5、0.8和1.0,并基于訓(xùn)練集得到各自的準(zhǔn)確率曲線,如圖4所示。
圖4 迭代次數(shù)-準(zhǔn)確率曲線Fig.4 Iteration times -accuracy curve
由圖4可知,學(xué)習(xí)率為0.5時,模型的準(zhǔn)確率最高,因此確定學(xué)習(xí)率取值范圍為0.1~0.5。根據(jù)學(xué)習(xí)率為0.1、0.3和0.5的曲線可以得到,迭代次數(shù)為48時的準(zhǔn)確率效果較好,且曲線相對穩(wěn)定,考慮到訓(xùn)練時間與迭代次數(shù)的近似正比關(guān)系,將模型的迭代次數(shù)設(shè)定為48。
XGBoost算法在迭代每一棵樹的過程中,樹的最大深度是防止模型過擬合的重要參數(shù),樹的最大深度較大時會使模型更為復(fù)雜,并容易導(dǎo)致過擬合,延長訓(xùn)練時間。為了減輕調(diào)參的工作量,采用網(wǎng)格搜索法確定樹的最大深度和其他參數(shù)的最佳值。依據(jù)訓(xùn)練結(jié)果得知,樹的最大深度為5、樣本的采樣比為0.9、樣本屬性的采樣比為1.0、正則化項權(quán)重比為5,其余參數(shù)值選擇默認(rèn)時,模型表現(xiàn)出更優(yōu)的綜合性能。
為了排除訓(xùn)練得到的模型產(chǎn)生過擬合現(xiàn)象,分別基于訓(xùn)練集與測試集得到異常用電模式檢測模型的準(zhǔn)確率曲線,如圖5所示,訓(xùn)練集與測試集的準(zhǔn)確率比較接近,從而說明異常用電模式檢測模型沒有被過擬合。
圖5 XGBoost的準(zhǔn)確度曲線Fig.5 Accuracy curve of XGBoost algorithm
通過調(diào)參過程,確定終端用戶異常用電模式檢測模型的最優(yōu)訓(xùn)練參數(shù),然后基于測試集得到檢測模型檢測結(jié)果及準(zhǔn)確率。如圖6所示,該模型的訓(xùn)練時間為8.971 ms,在測試集上的準(zhǔn)確率達到94.915%,說明該模型具有較好的檢測效果。從模型的評估報告中可以看出,模型的精確度、召回率和F1都有較高的得分。
圖6 訓(xùn)練效果Fig.6 Training effect
XGBoost算法根據(jù)結(jié)構(gòu)分?jǐn)?shù)的增益計算得到作為分割點的特征,并且某個特征的重要性就是它在所有樹中出現(xiàn)的次數(shù)之和,即出現(xiàn)次數(shù)越多,重要性就越高。負(fù)荷曲線斜率指標(biāo)、線損指標(biāo)和告警類指標(biāo)三類指標(biāo)對異常用電模式檢測的重要性如圖7所示,從圖7可以得出,負(fù)荷曲線斜率指標(biāo)的重要性最高,其次為線損指標(biāo),告警類指標(biāo)的重要程度相對較低。
圖7 特征貢獻度Fig.7 The contribution of features
數(shù)據(jù)質(zhì)量的好壞會給模型的訓(xùn)練效果帶來一定程度的影響,而獲取的原始數(shù)據(jù)存在缺失、冗余和無關(guān)數(shù)據(jù),因此需要對其進行一定的數(shù)據(jù)清洗工作。對于大數(shù)據(jù)分析而言,數(shù)據(jù)清洗是數(shù)據(jù)挖掘的關(guān)鍵環(huán)節(jié)。本文通過缺失值處理、屬性構(gòu)造等技術(shù)對原始數(shù)據(jù)進行必要的數(shù)據(jù)預(yù)處理,并且通過比較數(shù)據(jù)清洗前后XGBoost檢測模型的訓(xùn)練效果,來驗證數(shù)據(jù)清洗工作對模型訓(xùn)練產(chǎn)生的影響。
如表3所示,經(jīng)過清洗后的數(shù)據(jù)在XGBoost模型上有更好的訓(xùn)練效果,其檢測準(zhǔn)確度明顯高于原始數(shù)據(jù)。由于清洗前后的數(shù)據(jù)樣本量會發(fā)生略微改變,所以在訓(xùn)練時間上,經(jīng)過數(shù)據(jù)清洗的模型訓(xùn)練時間也會低于直接使用原始數(shù)據(jù)訓(xùn)練的時間。
表3 數(shù)據(jù)清洗前后的測試結(jié)果Table 3 Test results before and after data cleaning
為了驗證模型的有效性,選擇決策樹、隨機森林、Adaboost、文獻[12]中的檢測模型與本文XGBoost模型進行對比分析。文獻[12]也采用XGBoost算法進行用戶異常用電檢測,但是本文對原始數(shù)據(jù)做了新的特征構(gòu)造,使得離線數(shù)據(jù)在XGBoost模型上有更出色的檢測效果。各算法檢測結(jié)果的準(zhǔn)確率和訓(xùn)練時間如表4所示,本文所提方法在測試集上的準(zhǔn)確率為94.915%,明顯高于其他4種算法;其訓(xùn)練時間也短于隨機森林算法和Adaboost算法。雖然決策樹算法的訓(xùn)練時間比本文所提算法短,但是其分類準(zhǔn)確率較低。此外,本文對訓(xùn)練數(shù)據(jù)進行了新的特征構(gòu)造,通過與文獻[12]對比可以看出,本文經(jīng)過新特征構(gòu)造的數(shù)據(jù)在XGBoost模型上有更好的檢測精度。由于文獻[12]的數(shù)據(jù)樣本容量較大,兩者數(shù)據(jù)集存在一定差異,因此,在訓(xùn)練時間方面不具有比較性。通過以上對比,可以看出本文通過數(shù)據(jù)清洗和新特征構(gòu)建的XGBoost異常用電模模型具有更優(yōu)的檢測性能。
表4 5種算法的測試結(jié)果Table 4 Test results of the five algorithms
為了全面評價上述算法的檢測效果,分別繪制其ROC曲線并計算AUC面積,如圖8所示。由圖8可知,基于XGBoost算法的異常用電模式檢測模型的ROC曲線明顯包住了Adaboost算法和決策樹的曲線,而隨機森林算法的ROC曲線和XGBoost、Adaboost算法都存在部分交叉;計算各自ROC曲線下的面積AUC值,可以得出XGBoost(0.97)>隨機森林算法(0.96)>Adaboost算法(0.94)>決策樹(0.87)。以上比較可以說明基于XGBoost的異常用電模式檢測模型的準(zhǔn)確性明顯優(yōu)于決策樹、隨機森林和Adaboost算法。
首先基于能源互聯(lián)網(wǎng)系統(tǒng)采集到的大量且多元的終端數(shù)據(jù),篩選出用電量、線損及告警次數(shù)3個特征,并建立了包含負(fù)荷曲線斜率指標(biāo)、線損指標(biāo)與告警類指標(biāo)的終端用戶異常用電模式評價指標(biāo)體系,提出了基于XGBoost的異常用電模式檢測模型。針對原始數(shù)據(jù)中存在壞數(shù)據(jù)、數(shù)據(jù)缺失及量綱影響等問題,提出數(shù)據(jù)清洗方法、基于拉格朗日插值法的缺失值處理方法和數(shù)據(jù)變換方法,提高了數(shù)據(jù)質(zhì)量并使之適用于異常用電模式檢測模型。最后,通過案例分析,驗證了異常用電模式檢測模型的有效性,基于與決策樹、隨機森林及Adaboost算法的對比,所提檢測模型具有更好的檢測性能、較強的泛化能力。未來將進一步挖掘影響異常用電模式檢測的因素,借助多核服務(wù)器、云邊結(jié)合的計算平臺提高檢測模型對大數(shù)據(jù)的訓(xùn)練速度,實現(xiàn)所采集數(shù)據(jù)的最大化利用。