廖嘉煒 孫煜華 吳永歡 池燕清 徐炫東
(廣州供電局有限公司 廣州 510620)
隨著電力客戶用電量快速增加和外部壞境的不斷變化,供電公司面臨的電費回收風險和不確定性也在逐年加大[1]。市場上出現了預付費電表,可設置用戶先買電后用電的控制方式[2~3]。然而,為所有客戶安裝新型電表費用較大。因此,有效監測客戶用電行為特征,利用數據分析技術預測欠費行為,督促用戶從后付費模式向預付費模式轉化,是當前營銷工作的重要內容之一[4]。
目前電費回收相關分析技術尚未涉及到直接預測用戶會欠費時間、欠費金額以及未來欠費的可能性,這也是最直觀的預警方式[5]。由于指標難以選擇,缺乏有效的分析預測方法,目前電費回收常用兩類技術方法:一類是利用層次分析法[6]、主成分分析[7]、層次聚類[8]、灰色關聯分析[9]等算法分析用戶歷史用電行為和繳費記錄,建立風險模型[10]評估用戶預警級別;另一種是利用神經網絡[11]、SVM[12]等監督類算法學習用電特征預測用戶高危風險度[13]。上述兩種方法都不能直接預測用戶欠費相關信息,多結合自適應算法等,提高網絡的收斂時間[14~16]。
本文提出一種基于改進的深度信念網絡電費回收預測模型,并結合具體數據研究和驗證其實用性。該方法將欠費問題轉為更有針對性的預測變量,包括用戶欠費時間和欠費金額,并設計關聯指標用于訓練模型,得到較精準預測結果。
構建電費欠費預測模型,首先設計欠費時間和欠費金額的預測方式,建立相關指標體系,形成模型輸入特征;然后抽取指標對應的電力營銷數據,構建學習樣本;進而對比所構建深度信念網絡模型和BP-神經網絡預測結果,驗證欠費預測精度。模型流程如圖1所示。

圖1 電費回收預測模型流程圖
以現有信息系統預測能力,難以直接預測下次欠費發生的時間。由于不同月份可能具有不同的用電行為特征,且各個月份用電行為關聯較小,因此缺少直接有效的指標和特征參數。本文通過研究預測用戶下次欠費距離本次欠費的間隔時長來得到下次欠費時間,并利用欠費歷史數據來構造指標體系。利用用戶欠費記錄數據構建指標體系,基于欠費時間數據和基礎信息以及用電行為數據建立特征參數集用于預測模型的輸入。基于指標體系的特征參數可以更加精準地反映用戶用電行為與欠費時間之間的關系;最近一次欠費距今間隔時長作為欠費時間預測模型的檢驗指標。
結合經驗可以知道,下次可能欠費金額與歷史欠費金額有密切的關聯關系。用戶欠費金額預測是利用欠費歷史數據來構造指標體系,基于欠費金額數據和基礎信息以及用電行為數據建立特征參數集用于預測模型的輸入來預測用戶的欠費金額。基于指標體系的特征參數可以更加精準地反映用戶用電行為與欠費金額之間的關系,將欠費金額作為欠費金額預測模型的檢驗指標。
受限制玻爾茲曼機(Restricted Boltzmann Machine,RBM)是通過縮減玻爾茲曼機(Boltzmann Machine,BM)的網絡結構得到的,忽略可見層與隱含層的連接,如圖2 所示。可見層即對象的特征或指標;隱含層是抽象的可見層節點信息,沒有具體物理意義。

圖2 單層玻爾茲曼機
對于給定可見層和隱含層狀態(v,h),受限制玻爾茲曼機具有的能量計算如式(1)。

式中θ是RBM 的參數{W,a,b},均為實數;n是可見層節點數量;m是隱含層節點數量;vi是第i個可見單元的狀態;hj是第j個隱單元的狀態;ai是可見單元i的偏置;bj是隱單元j的偏置;Wij是可見層單元i與隱含層單元j的連接權重。
當網絡的連接權重W、可見層偏置a、隱含層偏置b等參數固定后,若固定可見層或隱含層節點取值后,另外一層節點之間的狀態符合條件獨立分布,可以利用能量函數E(v,h|θ)計算 (v,h)的出現機率。給定可見節點的狀態時,第j個隱含層節點的激活概率如式(2)和式(3)。

一般使用CD-k算法計算可見層取值與輸入數據進行比較產生重構計算誤差,調整參數。
1)算法初始化
給定訓練樣本集合S;模型訓練周期J,學習速率ω以及CD-k 算法參數k;設置算法可見層節點數量m和隱含層節點數量n;初始化可見層偏置向量a,隱含層偏置向量b和網絡權重W。
2)訓練階段
(1)對s∈S(對所有的訓練樣本),s(0)=s行k次采樣,依次計算當t=1,2,…,k時的可見層和隱含層的狀態,如式(4)和式(5)。

(2)分別在t=1,2,…,k 時計算梯度值,根據式(6)-(8)計算當i=1,2,…m,j=1,2,…,n時的 Δwi,j,Δai和 Δbj:

(3)直到最后t=k時據式(9)~(11)計算出w,a,b。

(4)使用訓練后得到參數重構樣本數據,并與實際值進行比較,如果它們之間的差值足夠小就可以認為訓練數據集與樣本數據是一致的,否則說明誤差太大。通常將最大次數設置在1000~5000 間,當計算次數滿足最大值時,無論參數訓練是否完成都退出迭代過程。
深度信念網絡由一個輸入層和輸出層,以及多個隱含層組成的網絡模型。每個隱含層可以從它前面的單元獲取相關的特征信息。
DBN由多層受限制玻爾茲曼機組成,可以看成是由多個RBM層的疊加而成,如圖3所示。第一層RBM 網絡隱含層的輸出,作為第二層RBM 網絡輸入層的輸入。

圖3 RBM疊加構成DBN
DBN 網絡可以看作多層RBM 網絡的疊加,逐層對RBM 進行訓練,然后調整DBN 模型的全部參數。DBN訓練主要分為兩個階段:
1)預訓練
首先把訓練數據si作為第一層RBM 可見層的輸入數據,使用對比散度算法對RBM 進行訓練,得到權值矩陣、偏置等參數;利用第一層RBM 訓練得到的權值計算,通過前向計算方法計算隱含層取值;將計算結果作為第二層RBM 的輸入層數據,然后對第二層RBM 進行訓練;最后,遞歸訓練后面網絡的模型參數。
2)微調
使用誤差反饋方式將預測的誤差從輸出層反饋傳遞到網絡輸入層,然后對網絡參數進行細微調整。設置預測值為模型標簽,對DBN 網絡進行有監督學習,微調網絡參數。經過多層RBM 訓練過程,預測模型得到數據的特征信息,這屬于無監督學習。
研究所采用的數據集來自于某省國家電網電力用戶營銷數據庫系統,由于用電特殊性,本研究利用大工業用戶的行為數據進行實驗研究;數據集共167553 條送電時間一年及以上,時間范圍為2017年1月至2017年12月的大工業用戶。

圖4 預測用戶欠費時間相關指標
依照上述欠費時間與金額的預測方法抽取數據進行數據預處理。預測用戶欠費時間和欠費金額使用的指標分別如圖4和圖5所示。對時間預測模型的數據集作初步分析,發現欠費間隔有大部分只欠費一次和沒有欠費過的用戶,將沒有欠費過的用戶的欠費間隔置為12,只欠費過一次的用戶的欠費間隔置為這次違約距2017 年12 月的月份差值。對欠費金額預測模型的數據集作初步分析,發現每次欠費金額分布在0~100萬,為便于DNB模型的收斂,將欠費金額以千元計,并保留一位小數。
數據預處理包括去除異常數據、特征量化、不同類型數據轉換、不同數據源整合以及特征工程等;并以1∶4的比例構建模型的測試和訓練樣本。

圖5 預測用戶欠費金額相關指標
電費回收預測DBN 模型訓練過程為:首先初始化DBN 網絡,根據樣本的特征設計輸入窗口的大小,根據預測窗口設置輸出窗口的大小;隨后設置最大訓練次數,初始化網絡參數;然后預訓練網絡模型,無監督地訓練網絡中每一層RBM 網絡,使RBM 網絡的特征映射最優;最后微調DBN 網絡模型參數。將預測值作為DBN 網絡的輸出層,有監督訓練整個網絡,對DBN 電費回收預測模型進行微調。
分別使用基于RBM 的BP 和DNB 神經網絡對兩套模型進行訓練和測試。通過實驗得到兩套預測模型網絡結構對比如表1所示。

表1 網絡結構設置
設置RBM 和BP 的迭代次數分別為1000 和500 時,基于DBN 的欠費時間間隔的預測混肴矩陣如表2 所示。混肴矩陣的行坐標為原違約間隔,縱坐標為預測出的違約間隔,可以看出大部分違約間隔被預測出來,在矩陣對角線上三角位置的不為0數值為被偏小預測的間隔,可以設想這部分用戶是否有更頻繁的欠費行為未被察覺,加大審查力度,用以電費回收預警。

表2 模型性能評價混淆矩陣表
由于欠費金額分布范圍較廣,設置可信區間為5%,在區間內小范圍的震蕩的預測值都可認為是正確預測了欠費金額。由于數據量較多,隨機取100 個數據作曲線對比,并對欠費時間和欠費金額的預測進行精度分析,如圖6 所示,可看出算法精度差異。

圖6 對不同算法準確率對比
從圖6 中可以發現疊加了RBM 訓練的DBN 算法比BP 神經網絡模型的準確率,不管在欠費金額預測還是欠費間隔預測模型上均有所提高。且隨著DBM 迭代次數的增加,收斂時間增大,當迭代次數由RBM 1000-BP 500增至RBM 2000-BP 1000時時間和金額模型的準確率分別由91.44%提升到91.94%和由90.56%提升到90.87%。同時,模型學習速度也有所犧牲。總體可以看出DBN 算法對電費回收時間和金額的預測均有比較好的效果,并且具有很好的實施性和實時性。
本研究針對電費回收預測方法,構建了基于DBM 的電費回收預測模型。將欠費問題轉為用戶欠費時間和金額的預測,利用歷史數據構建了訓練模型的動態和靜態指標體系。在構建指標時充分考慮用戶地域行業等基礎特征,并結合用電行為特征指標。同時,在構造訓練樣本集時,對不同用電級別的企業用電數據均進行特征工程和規范化處理,降低了指標變化對模型穩定性的干擾。采用DBM 建立電費回收時間和金額的預測模型,由于增加了RBM 特征提取算法,且采用最近一年的數據,可以更好地對樣本數據進行模式匹配,與BP神經網絡迭代結果對比,進一步表明提出的算法具有可行性、有效性和實用性。