劉中強(qiáng),鄒維維
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)
國(guó)家電網(wǎng)公司通過(guò)十多年的信息化建設(shè),積累了海量生產(chǎn)運(yùn)行和經(jīng)營(yíng)管理數(shù)據(jù).隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,數(shù)據(jù)量還會(huì)繼續(xù)增大.按照十四五規(guī)劃,智能化和數(shù)字化必將是下一階段的重點(diǎn)發(fā)展方向.用電信息采集系統(tǒng)的發(fā)展和推廣,為電力大數(shù)據(jù)分析提供了數(shù)據(jù)基礎(chǔ),可以用來(lái)做用戶用電異常行為分析.所謂異常用電數(shù)據(jù),就是由于環(huán)境、系統(tǒng)或人為的因素導(dǎo)致的計(jì)量設(shè)備故障、異常及違規(guī)用電等行為,可以通過(guò)電能表所反應(yīng)的電壓、電流、功率及線損率等指標(biāo)進(jìn)行反應(yīng).但是目前大多數(shù)電力部門僅使用傳統(tǒng)的統(tǒng)計(jì)方法進(jìn)行異常分析,費(fèi)時(shí)費(fèi)力且成效低.本文將基于用戶用電數(shù)據(jù)采集記錄,利用過(guò)采樣技術(shù)對(duì)數(shù)量較少的異常類樣本數(shù)據(jù)進(jìn)行增多,這樣就可以把用戶用電異常檢測(cè)的問(wèn)題看作是一個(gè)是否異常的二分類問(wèn)題,然后使用當(dāng)前流行的機(jī)器學(xué)習(xí)模型,對(duì)用戶用電是否異常進(jìn)行分類.訓(xùn)練該模型的目的是幫助檢測(cè)系統(tǒng)更加快速、準(zhǔn)確地識(shí)別異常用電行為.
基于機(jī)器學(xué)習(xí)的用戶用電異常檢測(cè)已經(jīng)有很多研究成果:張榮昌[1]選擇孤立森林算法應(yīng)用到用戶用電異常檢測(cè)問(wèn)題,該方法使用隨機(jī)切分的辦法劃分?jǐn)?shù)據(jù)集來(lái)得到一組決策樹(shù)從而構(gòu)成孤立森林,根據(jù)葉子結(jié)點(diǎn)距離根節(jié)點(diǎn)的距離判斷該葉子結(jié)點(diǎn)上的樣本是否為異常樣本,該方法規(guī)則簡(jiǎn)單易于實(shí)現(xiàn)并且速度非???但是檢測(cè)精度并不夠高;張小秋等人[2]提出了一種基于邏輯回歸的增量式異常用電行為檢測(cè)方法,該方法把每天的用戶用電數(shù)據(jù)的序列都看作一個(gè)單獨(dú)的數(shù)據(jù)集來(lái)訓(xùn)練邏輯回歸模型,然后利用所有的邏輯回歸模型完成增量式的學(xué)習(xí);張穎等人[3]采用最小二乘法和聚類算法來(lái)對(duì)用戶用電數(shù)據(jù)進(jìn)行分析,由于正常用戶的用電數(shù)據(jù)曲線基本符合正態(tài)分布,所以該算法使用最小二乘法近似逼近正態(tài)分布來(lái)求出每個(gè)用戶用電數(shù)據(jù) 曲線,再用K-means 聚類算法找出異常用電數(shù)據(jù);郝方舟等人[4]提出基于高維隨機(jī)矩陣的用電行為分析方法,該方法將用戶用電數(shù)據(jù)做歸一化后看作高維隨機(jī)矩陣,利用隨機(jī)矩陣的一些特性和原理對(duì)用電是否異常做判定,但是該方法在處理完數(shù)據(jù)之后需要人工對(duì)數(shù)據(jù)的統(tǒng)計(jì)特征進(jìn)行分析,效率不夠高;林女貴等人[5]通過(guò)改進(jìn)深度自編碼網(wǎng)絡(luò)的方式進(jìn)行用電異常檢測(cè),在自編碼網(wǎng)絡(luò)中引入稀疏約束和噪聲編碼,提高了計(jì)算效率和模型的魯棒性,該方法準(zhǔn)確率較高但由于神經(jīng)網(wǎng)絡(luò)層數(shù)較深,所以運(yùn)行速度較慢.針對(duì)上述現(xiàn)階段算法存在的問(wèn)題,本文采用了魏志強(qiáng)等人[6]在解決Web異常檢測(cè)問(wèn)題時(shí)使用的LightGBM 模型,該模型結(jié)合SMOTE和Tomeklinks 采樣算法將異常檢測(cè)問(wèn)題轉(zhuǎn)化為了一個(gè)分類問(wèn)題.與Web 異常檢測(cè)問(wèn)題相比,用戶用電異常檢測(cè)問(wèn)題同樣存在數(shù)據(jù)量大、正負(fù)樣本不平衡等問(wèn)題,所以使用該模型可以保證訓(xùn)練速度較快的同時(shí)提高了異常用電用戶檢測(cè)的準(zhǔn)確率.
類別不平衡問(wèn)題往往會(huì)導(dǎo)致模型訓(xùn)練結(jié)果出現(xiàn)較大的偏差,所以對(duì)于正、負(fù)類別樣本數(shù)量差距比較大的情況一般會(huì)使用采樣技術(shù)對(duì)原始數(shù)據(jù)進(jìn)行增加或刪減來(lái)構(gòu)建新的數(shù)據(jù)集,這樣做可以使模型的訓(xùn)練結(jié)果更加穩(wěn)定.
SMOTE是過(guò)采樣算法,通過(guò)對(duì)少數(shù)類樣本數(shù)量增多來(lái)達(dá)到樣本平衡的目的.圖1是SMOTE 過(guò)采樣算法的做法:隨機(jī)取出一個(gè)少數(shù)類樣本的k近鄰樣本,然后與原始樣本做線性組合來(lái)生成新的樣本.
圖1 SMOTE 過(guò)采樣算法
SMOTE 過(guò)采樣算法的流程如算法1.
算法1.SMOTE 過(guò)采樣算法1) 輸入數(shù)據(jù)集,其中正樣本為多數(shù)類,負(fù)樣本為少數(shù)類,設(shè)置k 近鄰的k 值;2) 利用歐氏距離,計(jì)算出每個(gè)負(fù)樣本的k 近鄰,這里可以使用KD 樹(shù)等方法降低求兩個(gè)樣本之間距離的計(jì)算量;3)對(duì)于每一個(gè)負(fù)樣本X,從它的k 近鄰中隨機(jī)取出一個(gè)樣本O;4)利用原來(lái)的樣本X和隨機(jī)取出的樣本O,可以通過(guò)如下公式構(gòu)建出新的樣本Y,其中rand是生成隨機(jī)數(shù)的函數(shù):5)輸出一個(gè)新的負(fù)樣本Y;6)重復(fù)3)~5)的操作,直至正負(fù)樣本比例平衡;Y=X+rand(0,1)|O-X|
TomekLinks是欠采樣算法,對(duì)于任意的兩個(gè)樣本X和Y,如果X和Y互為最近鄰樣本,那么這兩個(gè)樣本則稱為TomekLink.對(duì)于任意的TomekLink,它們都應(yīng)該屬于同一個(gè)類別,如果不是這樣,那么這兩個(gè)樣本就至少有一個(gè)劃分到了錯(cuò)誤類別,刪除錯(cuò)誤分類樣本就可以達(dá)到欠采樣的目的.
由于SMOTE 過(guò)采樣算法是隨機(jī)的選取少數(shù)類樣本周圍的近鄰樣本進(jìn)行線性組合得到新的樣本,所以有可能從負(fù)樣本的區(qū)域擴(kuò)散到正樣本的區(qū)域,所以在對(duì)原始數(shù)據(jù)進(jìn)行過(guò)采樣之后,可以配合使用TomekLinks算法刪除這種正負(fù)樣本重疊的區(qū)域.
梯度提升樹(shù)(GBDT)算法是基于分類回歸樹(shù)(CART)的加法模型.每一輪訓(xùn)練擬合上一輪產(chǎn)生的殘差來(lái)生成一棵CART 樹(shù),經(jīng)過(guò)多輪迭代,得到最終的模型.這里擬合殘差的思路類似梯度下降,將每一輪的目標(biāo)函數(shù)f看作梯度下降的參數(shù)來(lái)優(yōu)化,公式為:
設(shè)總體目標(biāo)函數(shù)為L(zhǎng),對(duì)于一個(gè)樣本x,它的標(biāo)簽為y,那么Δf的計(jì)算公式如下:
由于fn的部分已經(jīng)固定,所以每次只迭代只需要學(xué)習(xí)Δf這部分,這就是擬合梯度的殘差.
LightGBM是基于GBDT 實(shí)現(xiàn)的一個(gè)具體模型,在原始的GBDT 基礎(chǔ)上做了一些優(yōu)化.LightGBM的目標(biāo)函數(shù)改進(jìn)為二階泰勒展開(kāi)并加入了正則化項(xiàng).LightGBM的目標(biāo)函數(shù)公式如下所示:
其中,xi表示第i個(gè)樣本,yi表示它的標(biāo)簽,l表示原始的目標(biāo)函數(shù),Ln表示添加正則化項(xiàng)后第n次迭代的目標(biāo)函數(shù),fn是第n次迭代的模型,γ和λ是參數(shù),T是葉子結(jié)點(diǎn)數(shù)量,wi表示第j個(gè)葉子結(jié)點(diǎn)的輸出值.
LightGBM的分割點(diǎn)選擇是基于直方圖的算法,大大提高了選擇分割點(diǎn)的速度.對(duì)于決策樹(shù)的增長(zhǎng)策略,LightGBM是使用leaf-wise的策略,每次分裂選擇收益最大的點(diǎn)分裂,可以提高模型的精度.此外,LightGBM在特征的處理上和并行計(jì)算上都做了很多的優(yōu)化,是當(dāng)前流行的機(jī)器學(xué)習(xí)模型,相對(duì)于深度神經(jīng)網(wǎng)絡(luò)模型擁有速度快的優(yōu)勢(shì),相對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí)模型又有著精度高的優(yōu)勢(shì),所以本文選擇LightGBM 模型進(jìn)行分類.
實(shí)驗(yàn)首先對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,然后提取特征構(gòu)建訓(xùn)練集,在得到訓(xùn)練集之后對(duì)數(shù)據(jù)進(jìn)行過(guò)采樣使得正負(fù)樣本數(shù)量平衡,接下來(lái)使用欠采樣算法過(guò)濾掉訓(xùn)練集中正負(fù)樣本重合的部分,最后將處理好的訓(xùn)練集輸入到LightGBM 模型中進(jìn)行分類,圖2是實(shí)驗(yàn)的整體流程.
圖2 實(shí)驗(yàn)的整體流程
本文數(shù)據(jù)采用某地區(qū)采集到的用戶用電數(shù)據(jù),數(shù)據(jù)每隔15 分鐘采集一次,采集的數(shù)據(jù)有電壓、電流、電量等信息.每一條數(shù)據(jù)表示一個(gè)用戶一天24 小時(shí)的用電情況,這樣每條數(shù)據(jù)就有96 個(gè)數(shù)據(jù)點(diǎn).該數(shù)據(jù)集已經(jīng)標(biāo)注好了用電是否異常的標(biāo)簽,其中異常數(shù)據(jù)占比約1.5%.
首先對(duì)數(shù)據(jù)缺失值和數(shù)據(jù)冗余情況進(jìn)行處理,經(jīng)過(guò)預(yù)處理的數(shù)據(jù)再提取特征.對(duì)于每條用戶用電數(shù)據(jù)主要提取用電的統(tǒng)計(jì)特征.本文從全天、峰期(用電高峰時(shí)間段)、谷期(用電低谷時(shí)間段)、平期這4 個(gè)時(shí)間段的特征來(lái)反應(yīng)用戶全天的用電特征,對(duì)于每一個(gè)時(shí)段單獨(dú)計(jì)算一組如下特征.
平均負(fù)荷類特征,計(jì)算電壓、電流或功率在該時(shí)段的平均值除以最大值,用來(lái)反應(yīng)整個(gè)時(shí)段用電數(shù)據(jù)變化情況.
差值類特征,計(jì)算電壓、電流或功率在該時(shí)段的最大值與最小值的差值除以最大值,用來(lái)反應(yīng)用電峰值與谷值的差異程度.
TOP 值類特征,計(jì)算該時(shí)段用電數(shù)據(jù)前三的時(shí)間點(diǎn)的平均值,用以反應(yīng)用電高峰時(shí)期一段時(shí)間內(nèi)的統(tǒng)計(jì)信息.
計(jì)算好每一個(gè)用戶的多組統(tǒng)計(jì)信息作為這個(gè)用戶的全部特征,然后將計(jì)算好的特征數(shù)據(jù)作為模型的訓(xùn)練集.
由于數(shù)據(jù)的正負(fù)樣本極度不平衡.所以使用SMOTE算法對(duì)數(shù)量較少的負(fù)樣本進(jìn)行過(guò)采樣,采樣之后的數(shù)據(jù)正負(fù)樣本數(shù)量相等.由于SMOTE 過(guò)采樣算法生成的負(fù)樣本會(huì)與原來(lái)的正樣本區(qū)域產(chǎn)生重疊,所以使用TomekLinks 算法將所處區(qū)域極度接近但是不屬于同一類別的樣本刪除,這樣既可以減少訓(xùn)練數(shù)據(jù)的規(guī)模也可以去除掉難以判斷的樣本,提高訓(xùn)練速度和準(zhǔn)確度.經(jīng)過(guò)兩個(gè)算法對(duì)數(shù)據(jù)的處理之后采樣結(jié)果如表1所示.
表1 采樣結(jié)果
評(píng)價(jià)分類結(jié)果的4 個(gè)基本指標(biāo)是:TP(真正例)、FP(假正例)、TN(真負(fù)例)、FN(假負(fù)例).這4 個(gè)基本指標(biāo)主要用于度量預(yù)測(cè)結(jié)果中正、負(fù)樣本分類正確與錯(cuò)誤的數(shù)量.本文主要使用3 個(gè)評(píng)價(jià)指標(biāo):準(zhǔn)確率、F1_score、AUC 值,這些評(píng)價(jià)指標(biāo)的公式如下:
其中,Precision是準(zhǔn)確率,Recall是召回率,而AUC 值是ROC 曲線下面積,將預(yù)測(cè)樣本根據(jù)概率大小依次作為閾值劃分正、負(fù)樣本,然后計(jì)算每組閾值下的TPR和FPR.將TPR作為縱坐標(biāo),FPR作為橫坐標(biāo),就可以畫出一條ROC 曲線,計(jì)算這條曲線下面積就能得到AUC 值.
由于使用SMOTE 算法需要尋找k近鄰,所以k就是一個(gè)超參數(shù),我們首先對(duì)參數(shù)k進(jìn)行實(shí)驗(yàn),結(jié)果如圖3所示,當(dāng)k等于5的時(shí)候模型準(zhǔn)確率最高.
圖3 不同k 值下的準(zhǔn)確率
模型的最終實(shí)驗(yàn)結(jié)果對(duì)比如表2所示.單一的LightGBM 模型在準(zhǔn)確率上優(yōu)于其他模型,但是由于數(shù)據(jù)不平衡問(wèn)題,AUC 值和F1 值表現(xiàn)不佳.而使用了采樣技術(shù)的LightGBM 模型3 個(gè)指標(biāo)都高于其他模型,在模型精度上最優(yōu).
表2 實(shí)驗(yàn)結(jié)果
在本文中,我們應(yīng)用了一種基于采樣技術(shù)和Light-GBM的模型來(lái)解決用戶用電異常檢測(cè)問(wèn)題 該模型首先使用SMOTE 算法對(duì)少數(shù)類樣本進(jìn)行過(guò)采樣,從而使得正負(fù)樣本數(shù)量平衡,然后使用TomekLinks 算法刪除掉不同類別距離十分接近的樣本,把采樣好的數(shù)據(jù)輸入到LightGBM 模型中進(jìn)行二分類訓(xùn)練,最終輸出的預(yù)測(cè)結(jié)果采用不同的評(píng)價(jià)指標(biāo)進(jìn)行評(píng)估.本文采用的模型在用戶用電異常檢測(cè)問(wèn)題上,具有高精確率和速度快的優(yōu)勢(shì).由于模型中使用的特征沒(méi)有進(jìn)行詳細(xì)的篩選,所以模型還有很大的提升空間,下一步我們將根據(jù)不同特征對(duì)模型的重要性進(jìn)行模型優(yōu)化,對(duì)特征空間進(jìn)行更加細(xì)致的處理,進(jìn)一步提升模型的準(zhǔn)確率.并且目前模型主要是檢測(cè)用電數(shù)據(jù)是否異常,沒(méi)有分析產(chǎn)生異常的原因,所以下一步工作還將對(duì)異常用電數(shù)據(jù)進(jìn)行分類,確定產(chǎn)生異常的原因.