冉 懿,王潤年,潘紅偉,俞海猛,袁培森
(1.國網新疆電力有限公司 營銷服務中心,烏魯木齊 830000;2.國電南瑞南京控制系統有限公司,南京 211106;3.南京農業大學 人工智能學院,南京 210095)
可靠的電力供應對于現代社會的發展至關重要,社會生產中的很多方面都依賴于電力建設,因此,電力設施被認為是現代社會中較為關鍵的基礎設施之一[1-2]。一旦停電,會嚴重影響人們的日常生活[3-4]以及其他關鍵基礎設施系統的運行,從而造成巨大的經濟損失。
為了更好地分析和管理電網系統所產生的電力數據,電網企業搭建了智慧電力大數據平臺。通過對平臺中的停電數據進行分析和挖掘,可以更好地了解電網停電的潛在規律[5-6]。通過分析歷史停電數據,根據分析所得的規律進行停電分類預測,能夠為依賴于電力設施的其他公司、公共事業單位等的停電規劃安排提供決策參考[7]。從短期看,電網停電的分類預測可以幫助企事業單位提前做好準備,平衡人力、材料成本以及加快電力恢復速度;從長期看,可以根據停電數據分析得到電力系統中需要加強的板塊,還能夠通過數據分析來設置合適的備用電源數目,以提高本地電網系統的供電可靠性[8]。
目前,國內外學者針對電力停電分類預測問題進行了大量研究,并且取得了一定成果。XIE 等[9]通過分析雷電天氣的停電數據,提出一種基于通用回歸神經網絡(GRNN)的方法,以預測雷電天氣下的停電情況。該方法對歷史雷電天氣的停電數據進行特征提取,并將提取的特征作為GRNN 的輸入以訓練模型,然后根據訓練的模型來預測停電情況。ZHAI 等[10]設計一種新模型,其通過使用公開可用的數據來準確估計各個建筑物級別的停電情況。該模型使用脆弱性函數模擬在危險負荷下單個建筑物級別的停電情況,能夠提供更多的本地化、建筑物級別的估計,以評估由于自然災害而造成的停電。侯慧等[11]采用隨機森林方法,結合氣象、地理數據來預測不同區域的停電情況,并通過對停電網格進行重要性評估來提高預測的準確性。
本文提出一種基于因子分解機(Factorization Machine,FM)的方法,以對停電數據進行分類預測。為了提取有效的特征來降低數據處理的復雜度,通過決策樹算法對停電數據進行特征選擇。為了獲取更多的有效特征,基于不同地區的空間位置,利用矩陣分解構造空間位置特征。通過梯度下降方法訓練因子分解機模型,為了防止模型過擬合,在優化目標中加入L2 正則化。在此基礎上,利用所訓練的模型進行停電數據分類預測,從而為電網公司的用電決策提供參考。
在特征選擇時,需要避免選擇太多或太少的特征:如果選擇的特征太少,則特征數據中蘊含的信息內容可能會很少;如果選擇的特征太多,則可能會存在一些不相關的特征,從而提高任務學習的難度。本文通過決策樹[12]進行特征選擇,具體地,計算得到不同特征在決策樹上所作的貢獻,通過貢獻度的大小來選擇特征。同時,采用基尼系數(Gini)來衡量不同特征的重要性。Gini 最早用于經濟學領域,主要用于衡量收入分配的公平性。在決策樹的構建過程中,Gini 通常用來測量數據的純度或不確定性。
假設樣本數據有C個特征X1,X2,…,XC,特征Xj的基尼系數表示決策樹中第j個特征節點分裂不純度的平均變化量。Gini 的計算方式如式(1)所示:

其中:K表示類別總數;pk表示第k個類別所占的比例。
特征Xi的某個取值x將樣本數據分成2 個部分D1、D2,則特征Xj的基尼系數的計算方式如式(2)所示:

其中:Gini(D1)表示D1的Gini;Gini(D2)表示D2的Gini。
利用決策樹算法計算部分特征的重要性分數,對計算出的不同特征的重要性分數進行排序,從中選擇對停電分類預測較為重要的特征用于模型訓練。
為了利用更多的有效特征,本文在已有停電數據的基礎上,根據不同地區的地理位置關系構造新的位置關聯特征。本文認為相鄰地區之間的停電情況具有相關性,如果2 個區域相鄰或有重疊的地理區域,則某地區停電,相鄰的區域也有很大的可能性停電。
假設共有n個區域p1,p2,…,pn,現構造一個關聯矩 陣An×n,如 果2 個區 域pi、pj相鄰或有重疊的地理區域,那么對應的矩陣元素值aij為1,其他非對角線元素值均為0。由不同地區構造出來的關聯矩陣An×n的形式如下:

其中:aii的值為1;aij表示地區pi和pj之間的停電關聯值,2 個區域相鄰或有重疊的地理區域,aij=1,否則aij=0。
顯然,矩陣A的值不能直接作為停電特征,需要對A進行矩陣分解,本文采用LU 分解的方式來完成。LU 分解[13]是將矩陣變成下三角矩陣與上三角矩陣的乘積,其形式如下:

其中:L為下三角矩陣,即當i>j時,lij=0;U為上三角矩陣,即當i<j時,uij=0。
對于停電樣本數據,每一行代表一個區域的停電情況,一共有n個區域p1,p2,…,pn。式(4)將矩陣A分解成n×n矩陣L與n×n矩陣U的乘積,假如樣本數據的第i行是區域pi的停電情況,那么該行對應的空間位置構造特征就是矩陣L的第i行數據。通過矩陣分解的方式構造不同區域的空間位置特征,可以為模型訓練提供更多的有效特征,從而提升模型的分類準確性。
FM 將支持向量機的優點與因子分解模型相結合[14],其可與任何實值特征向量一起使用,是一種通用預測模型。FM 的機制是使用分解參數對變量之間的交互進行建模,即使在具有稀疏性的問題中也可以估計交互,對于停電數據中存在的大量稀疏特征,如月份、年份等,FM 具有適用性。此外,由于FM的模型方程可以在其因子數量k和特征數量n方面都降為線性復雜度,因此FM 的計算效率很高,這也意味著FM 模型的預測時間是線性的,且減少了訓練階段要學習的參數量[15-16]。
假設X∈Rn表示維度為n的特征向量表示2個大小為k∈的向量的點積,向量的點積計算如下:

FM 能夠通過使用因子分解模型來對不同特征之間的交互進行建模,尤其是FM 模型通過分解交互特征以估計交互,從而打破交互特征之間的獨立性。FM 模型考慮到不同特征之間的關聯關系,引入交叉項,通過對特征兩兩相乘來找到一些組合特征。對于二階交叉,FM 模型方程如下:


將式(7)中的結果代入式(6),得到預測值的表達式為:

通過數學變換,FM 計算方程的時間復雜度降為Ο(kn),這也說明FM 模型的計算成本相對于潛在特征的維數和特征是線性的。
停電分類預測屬于二分類問題,本文采用logitloss 函數作為FM 模型的損失函數,其表達式如下:

由式(9)可以看出,模型的預測值和真實值越接近,則損失函數的值越小。
FM 模型的目標是總損失函數最小化,總損失函數計算如下:

由于本文損失函數選擇的是logitloss 函數,因此總損失函數被更新為:

針對FM 模型的優化,目標如下:

為防止FM 模型過擬合,本文引入一種L2-范數正則化優化技術[17],L2 范數正則化的基本思想是在原始成本函數中添加一個額外項,稱為正則項,其中僅包含L2 范數誤差項,并帶有一個用于控制正則化相對量的超參數。可以將這種技術視為在原始L2范數誤差項和L2 范數正則項之間的一種折衷方法,其能增強FM 模型的泛化能力。加入L2-范數正則項后的優化目標更新為:

其中:λ為L2 正則化的系數,λ的取值影響FM 模型的泛化能力。
本文通過隨機梯度下降[18]的方法訓練FM 模型。隨機梯度下降是不斷地沿著目標函數梯度的反方向去尋找損失函數值最小的參數。求損失函數y(x)關于θ的偏導,如下:

其中:σ(·)表示sigmoid 函數。
利用隨機梯度下降的方法訓練FM 模型的算法描述如算法1 所示。
算法1FM 模型訓練算法


算法1 通過隨機梯度下降算法訓練FM 模型:首先,對FM 模型中的參數進行初始化操作;接著,利用隨機梯度下降算法根據設置的學習率對FM 中的參數進行更新,每次更新后計算給定條件是否滿足,如果滿足,則停止迭代,如果不滿足,則繼續迭代更新直到滿足更新條件;最后,返回停止迭代后的模型參數值。
本文采用的實驗數據集一共包括23 768 條數據,記錄了14 個地區的停電情況,數據包括天氣、人口、停電時間等非稀疏特征,以及年份、月份、地區等稀疏特征。
本文采用基于混淆矩陣[19]的評估度量。混淆矩陣如表1 所示。

表1 混淆矩陣Table 1 Confusion matrix
TTP是真陽性,表示被分類器正確分類的正類數據;TTN是真陰性,表示被分類器正確分類的負類數據;FFP是假陽性,表示被分類器錯誤地標記成正類數據而實際是負類的樣本數據;FFN是假陰性,表示被分類器錯誤地標記為負類而實際為正類的樣本數據。根據混淆矩陣計算分類器的準確率(Accuracy)和F1 值(F1-score),以衡量模型的性能[20-21]。準確率和F1 值的計算公式如下:

其中:P表示精確率;R表示召回率。P和R的計算方式如下:

根據分類器混淆矩陣的值,即可計算最終的分類器分類準確率和F1 值。
本文利用決策樹算法計算城市停電數據非稀疏特征的重要性,根據計算出的不同特征的重要性和設定的閾值,篩選出對停電數據分類預測相對重要的特征以訓練FM 模型,從而提高FM 模型的分類預測性能。通過決策樹算法計算的非稀疏特征的重要性得分結果如圖1 所示,將重要性分數的閾值設置為0.1,本文選取重要性分數排在前4 位的非稀疏特征進行模型訓練。

圖1 非稀疏特征的重要性分數Fig.1 Importance score of non-sparse features
為了進一步說明特征提取的必要性以及根據決策樹算法提取特征的有效性,本文分別利用上述選取的特征以及全部的非稀疏特征進行實驗,比較2 種情況下的F1值、準確率以及運行時間,實驗結果如表2所示。從表2 可以看出:本文特征提取方法能夠有效提升FM模型的性能,在F1 和準確率2 項指標上均有提升;利用全部非稀疏特征訓練模型的時間大于特征提取后的模型訓練時間,這說明經過特征提取后再進行模型訓練,能夠節約訓練時間,節省CPU 資源。

表2 特征提取前后的實驗結果Table 2 Experimental results before and after feature extraction
本文利用篩選出的非稀疏特征和稀疏特征來訓練FM 模型,訓練次數設置為200 次。隨著訓練次數的增加,模型分類預測的準確率和F1 值如圖2 所示。從圖2 可以看出,隨著模型的不斷訓練,準確率和F1值都在提高,這說明FM 模型的分類預測效果越來越好,且當迭代次數較多時,對于停電數據能夠取得較好的預測效果。此外,當迭代次數達到一定數值時,指標值變化很小,基本趨于穩定,說明模型的分類性能保持穩定。

圖2 模型的準確率和F1 值變化曲線Fig.2 The accuracy and F1 value curve of the model
本文將FM 模型和線性分類(Linear)模型、深度神經網絡(DNN)模型、支持向量機(SVM)模型、樸素貝葉斯(Bayes)模型、XGBoost 模型[22]進行對比,比較不同模型的準確率和F1 值。對于不同的分類預測模型,訓練數據集和測試數據集的比例均為3∶1。
訓練數據集在不同模型下的準確率和F1 值結果如表3 所示。從表3 可以看出,FM 模型的分類效果均優于另外5 種模型。F1 值為分類模型召回率和精確率的綜合指標,也是衡量模型分類預測性能的綜合指標,其值越大,說明模型的分類預測效果越好。FM 模型在訓練數據集下的F1 值為0.90,比線性分類模型提高11%,比DNN 模型提高34%,比SVM 模型提高17%,比樸素貝葉斯模型提高23%,比XGBoost 模型提高8.4%。準確率是表示模型將正負樣例正確分類的能力,其值越大,說明模型分類正確的比例越大,模型性能越好。FM 模型在訓練數據集下的準確率為0.89,比線性分類模型提高11%,比DNN 模型提高30%,比SVM 模型提高17%,比樸素貝葉斯模型提高22%,比XGBoost 模型提高8.4%。根據準確率和F1 值可以看出,訓練數據集在FM 模型下效果較好,并且優于其他模型,這是因為在電力數據中存在大量的稀疏數據,而FM 針對稀疏性問題也可以估計交互,其借助因子分解技術打破了交叉項參數之間的獨立性,使得在稀疏性問題中具有更強的學習能力。

表3 訓練集中不同模型的評價指標結果Table 3 Evaluation index results of different models in the training set
測試數據集在不同模型下的準確率和F1 值結果如表4 所示。從表4 可以看出,FM 模型的分類性能評價指標均優于其他模型。FM 模型在測試集下的F1 值為0.90,F1 值越接近1,模型的分類預測效果越好。FM 模型的F1 值比線性分類模型提高12.5%,比DNN 模型提高43%,比SVM 模型提高18%,比樸素貝葉斯模型提高23%,比XGBoost 模型提高9.8%。測試集下FM 模型的準確率為0.89,說明有89%的樣本數據被正確分類。FM 模型的準確率值比線性分類模型提高11.3%,比DNN 模型提高38.5%,比SVM模型提高18.4%,比樸素貝葉斯模型提高21.6%,比XGBoost 模型提高8.5%。無論是準確率還是F1 值,測試數據集在FM 模型下的結果都較好,利用訓練集訓練出來的模型,用測試集去驗證其性能,得到的結果依舊較好,并且都優于另外5 種模型,這再次驗證了使用FM 模型對停電數據集進行分類預測具有有效性。

表4 測試集中不同模型的評價指標結果Table 4 Evaluation index results of different models in the test set
針對停電分類預測問題,本文提出一種基于隨機梯度優化的FM 分類預測模型。利用決策樹算法計算停電數據中不同特征的重要性得分,根據設定的閾值篩選出與停電預測關聯度較大的特征。利用不同地區的空間位置建立位置矩陣,通過矩陣分解構造空間特征。基于選擇的特征對應的樣本數據使用隨機梯度下降方法訓練FM 模型,并加入L2 正則化以防止模型過擬合,最終利用訓練好的FM 模型對停電數據進行分類預測。實驗結果驗證了FM 模型在停電數據分類預測任務中的有效性。下一步將對不同季節的停電數據進行分類,利用自編碼器模型對停電數據完成特征提取并對多維數據作降維處理,使用降維后的數據特征訓練FM 模型,從而提高模型的分類預測精度。