傅少榮
(國(guó)網(wǎng)福建省電力有限公司泉州供電公司,福建 泉州 362000)
隨著電力系統(tǒng)智能化進(jìn)程的加快,需要對(duì)電力系統(tǒng)中大量的用戶數(shù)據(jù)信息進(jìn)行采集、處理和分析,其中包括用電行為數(shù)據(jù)和用戶特征數(shù)據(jù)等。從上述數(shù)據(jù)中挖掘出具有價(jià)值的信息并進(jìn)行異常診斷,已經(jīng)成為當(dāng)前電力系統(tǒng)的重點(diǎn)研究課題。通過挖掘用戶特征數(shù)據(jù),對(duì)用戶用電類別進(jìn)行分類,并對(duì)用電行為異常進(jìn)行診斷,從而提高電力系統(tǒng)的運(yùn)行效率和安全性。
K 均值(稱為K-means)是一種基于歐式距離的聚類算法,認(rèn)為2 個(gè)目標(biāo)的距離越近,相似度越大。作為一種硬聚類劃分,要求每個(gè)研究對(duì)象要么屬于這個(gè)類,要么不屬于這個(gè)類,即其聚類結(jié)果具有嚴(yán)格的邊界。
K-means 的算法步驟為:(1)選擇初始化的k個(gè)樣本作為初始聚類中心,即a=a1,a2,…,ak;(2)針對(duì)數(shù)據(jù)集中的每個(gè)樣本xi,計(jì)算它到k個(gè)聚類中心的距離,并將其分到距離最小的聚類中心所對(duì)應(yīng)的類別中;(3)針對(duì)每個(gè)類別aj,重新計(jì)算其聚類中心(即歸類于所有相同類別樣本的質(zhì)心);(4)重復(fù)上面的操作,直至達(dá)到中止條件[1]。
用電行為異常檢測(cè)采用基于統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)的方法,通過對(duì)用戶用電行為數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,提取一些具有代表性的用電行為特征,如用電量、用電時(shí)長(zhǎng)以及用電設(shè)備種類等,再利用機(jī)器學(xué)習(xí)算法對(duì)這些特征進(jìn)行分類模型的訓(xùn)練和預(yù)測(cè),以識(shí)別出與正常用電行為不符的異常行為。采用基于支持向量機(jī)(Support Vector Machine,SVM)和隨機(jī)森林的機(jī)器學(xué)習(xí)算法進(jìn)行實(shí)驗(yàn)分析,通過對(duì)實(shí)驗(yàn)結(jié)果的比較和分析,確定最優(yōu)的用電行為異常檢測(cè)算法[2]。
1.2.1 SVM 算法
SVM 是一種二分類模型,主要是定義在特征空間上最大間隔的線性分類器。間隔最大是其與感知機(jī)最大的區(qū)別。SVM 是一種用來解決二分類問題的機(jī)器學(xué)習(xí)算法,借助樣本空間,找到一個(gè)劃分超平面,將各類別樣本歸類區(qū)分,同時(shí)使兩個(gè)點(diǎn)集到此平面的距離最小,而使兩個(gè)點(diǎn)集中的邊緣點(diǎn)到此平面的距離最大。SVM 算法實(shí)現(xiàn)示意圖如圖1 所示。
圖1 SVM 算法實(shí)現(xiàn)示意圖
將樣本分為方形和圓形,SVM 算法的目標(biāo)就是找到一條直線將圓形和方形分開,同時(shí)使所有圓形和方形到這條直線的距離之和最大[3]。
1.2.2 隨機(jī)森林算法
隨機(jī)森林是一種機(jī)器學(xué)習(xí)算法,屬于機(jī)器學(xué)習(xí)范圍的一個(gè)分支。針對(duì)分類問題,每棵決策樹都是一個(gè)分類器,對(duì)于一個(gè)輸入樣本,N棵樹會(huì)有N個(gè)分類結(jié)果,最終的分類結(jié)果就是由這N個(gè)分類器投票產(chǎn)生。隨機(jī)森林算法在實(shí)際應(yīng)用中表現(xiàn)優(yōu)異,可以用于分類和回歸問題,具有較高的準(zhǔn)確性和魯棒性,是基于引導(dǎo)聚焦算法框架的決策樹模型。隨機(jī)森林算法模型中包含很多樹,每棵樹可以給出不同的分類結(jié)果。
每棵樹的生成規(guī)則為:(1)從訓(xùn)練集中隨機(jī)抽取N個(gè)訓(xùn)練樣本,并重復(fù)k次,生成k組訓(xùn)練樣本集,每組樣本集用于訓(xùn)練一棵決策樹。該過程使用有放回抽樣方法,即隨機(jī)抽取一個(gè)訓(xùn)練樣本后將其放回訓(xùn)練集中,使得該樣本有可能被多次選中,而有些樣本可能一次也沒有被選中;(2)對(duì)于每棵決策樹,從M個(gè)特征中隨機(jī)選取m個(gè)特征,使用這些特征訓(xùn)練該決策樹;(3)為了讓每棵決策樹能夠盡可能地生長(zhǎng),避免欠擬合問題的發(fā)生,隨機(jī)森林通常不會(huì)對(duì)決策樹進(jìn)行剪枝,即不會(huì)限制決策樹的最大深度;(4)對(duì)于新的輸入數(shù)據(jù),根據(jù)k個(gè)最優(yōu)學(xué)習(xí)模型,隨機(jī)森林中的每棵決策樹對(duì)輸入的數(shù)據(jù)進(jìn)行回歸或分類,最終的輸出結(jié)果為所有決策樹輸出結(jié)果的平均值(回歸問題)或投票結(jié)果(分類問題)。
綜上所述,基于統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)的方法,通過對(duì)用戶用電行為數(shù)據(jù)進(jìn)行分析和分類模型訓(xùn)練,識(shí)別與正常用電行為不符的異常行為。該方法具有數(shù)據(jù)整合度高、統(tǒng)計(jì)方便以及操作簡(jiǎn)單等優(yōu)點(diǎn),為電力系統(tǒng)的運(yùn)行和管理提供了有力的支持[4]。
用電類別異常診斷的實(shí)驗(yàn)流程如下。
第一步,數(shù)據(jù)收集。采用某供電公司提供的用戶用電行為數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)。該數(shù)據(jù)集包括用戶的用電量、用電時(shí)長(zhǎng)以及用電設(shè)備種類等信息,共有10 000 條數(shù)據(jù)。
第二步,數(shù)據(jù)預(yù)處理。在進(jìn)行數(shù)據(jù)分析前,需要對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,包括數(shù)據(jù)清洗、缺失值處理以及數(shù)據(jù)標(biāo)準(zhǔn)化等。本次實(shí)驗(yàn)采用Python 編程語言進(jìn)行數(shù)據(jù)處理。
第三步,特征提取。為了更好地進(jìn)行用電類別異常診斷,從用戶用電行為數(shù)據(jù)中提取有用的特征,采用統(tǒng)計(jì)分析和機(jī)器學(xué)習(xí)算法進(jìn)行特征提取,包括平均用電量、用電時(shí)長(zhǎng)方差以及用電設(shè)備種類數(shù)量等特征。
第四步,用電類別分類。在進(jìn)行用電類別異常診斷之前,需要采用基于隨機(jī)森林的機(jī)器學(xué)習(xí)算法對(duì)用戶的用電類別進(jìn)行分類。
第五步,異常檢測(cè)。在進(jìn)行用電類別異常診斷之后,需要對(duì)用戶的用電行為進(jìn)行異常檢測(cè)采用基于SVM 的機(jī)器學(xué)習(xí)算法。
第六步,實(shí)驗(yàn)結(jié)果分析。實(shí)驗(yàn)結(jié)果采用準(zhǔn)確率、召回率以及F1值等指標(biāo)進(jìn)行評(píng)估,并對(duì)數(shù)據(jù)進(jìn)行可視化分析。
實(shí)驗(yàn)的主要內(nèi)容包括用電類別分類和用電行為異常檢測(cè)。在用電類別分類方面,本實(shí)驗(yàn)采用隨機(jī)森林算法進(jìn)行訓(xùn)練和預(yù)測(cè)。在用電行為異常檢測(cè)方面,本實(shí)驗(yàn)采用支持向量機(jī)算法進(jìn)行訓(xùn)練和預(yù)測(cè)。最終,本實(shí)驗(yàn)得到了用電類別異常診斷的實(shí)驗(yàn)結(jié)果,并對(duì)結(jié)果進(jìn)行了分析和評(píng)估[5]。
實(shí)驗(yàn)采用隨機(jī)森林算法對(duì)用戶的用電行為數(shù)據(jù)進(jìn)行分類,通過構(gòu)建多個(gè)決策樹進(jìn)行分類,最終投票決定分類結(jié)果。將用戶的用電類別分為4 類,即家庭用電、商業(yè)用電、工業(yè)用電以及公共設(shè)施用電。該算法的分類結(jié)果如表1 所示。
表1 用電類別分類數(shù)據(jù)
從表1 可以看出,實(shí)驗(yàn)的用電類別分類結(jié)果較為準(zhǔn)確。在4 類用電中,對(duì)于家庭用電和商業(yè)用電的分類準(zhǔn)確率和F1值較高,對(duì)于工業(yè)用電和公共設(shè)施用電的分類準(zhǔn)確率和F1值較低。工業(yè)用電和公共設(shè)施用電分類結(jié)果可能受到訓(xùn)練數(shù)據(jù)集的影響,需要更多的數(shù)據(jù)進(jìn)行訓(xùn)練和調(diào)整。
采用K-means 算法對(duì)用戶的用電行為數(shù)據(jù)進(jìn)行聚類,然后基于馬氏距離,使用離群點(diǎn)檢測(cè)算法識(shí)別異常點(diǎn)。實(shí)驗(yàn)中,選擇100 個(gè)用戶的用電行為數(shù)據(jù)進(jìn)行異常檢測(cè),異常點(diǎn)的數(shù)量設(shè)定為10 個(gè)。各類用電異常檢測(cè)結(jié)果如表2 所示。
表2 各類用電異常檢測(cè)結(jié)果
從表2 可以看出,本實(shí)驗(yàn)采用的異常檢測(cè)方法能夠有效識(shí)別出用電行為中的異常點(diǎn)。同時(shí),可以通過查看每個(gè)用戶的異常樣本數(shù)量來深入分析異常檢測(cè)結(jié)果。例如,在家庭用電類別中,有2 個(gè)用戶的用電行為數(shù)據(jù)存在異常點(diǎn),可以進(jìn)一步對(duì)這2 個(gè)用戶的用電行為進(jìn)行深入分析和調(diào)整。
通過基于用戶特征數(shù)據(jù)挖掘的用電類別異常診斷實(shí)驗(yàn),分別進(jìn)行用電類別分類、用電行為異常檢測(cè)以及用電類別異常診斷效果的分析。在用電類別分類實(shí)驗(yàn)中,對(duì)所采集的用電數(shù)據(jù)進(jìn)行特征提取,并使用決策樹算法、K-means 算法以及SVM 算法進(jìn)行分類。不同算法的分類精度統(tǒng)計(jì)結(jié)果如表3 所示。
表3 不同算法的分類精度統(tǒng)計(jì)結(jié)果
從表3 可以看出,SVM 算法的分類精度最高,達(dá)到了98.5 %,決策樹算法和K-means 算法的分類精度分別達(dá)到97.8 %和96.5 %。
在用電行為異常檢測(cè)實(shí)驗(yàn)中,使用K-means 聚類算法來發(fā)現(xiàn)潛在的異常用電用戶,并使用孤立森林算法進(jìn)行異常檢測(cè)?;谟脩籼卣鲾?shù)據(jù)挖掘的用電類別異常診斷方法能夠更好地診斷用戶的異常用電行為,具有較高的實(shí)用性。
文章提出了一種基于用戶特征數(shù)據(jù)挖掘的用電類別異常診斷方法,通過用戶特征變量分析、用戶行為分析和用戶畫像建立,深入了解用戶用電行為。在用電類別分類和用電行為異常檢測(cè)環(huán)節(jié),設(shè)計(jì)了相應(yīng)實(shí)驗(yàn),并采用多種算法進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,所提方法可以有效地分類和檢測(cè)用戶的用電異常,能為電力設(shè)備運(yùn)行和用電成本的優(yōu)化提供有力支持,具有較好的應(yīng)用前景。未來將繼續(xù)改進(jìn)算法和實(shí)驗(yàn)設(shè)計(jì),以進(jìn)一步提高用電類別異常診斷方法的精度和可靠性。