文耀寬,侯慧娟,王 雍
(國網河南省電力公司營銷服務中心,河南 鄭州 450007)
智能電表作為建設泛在電力物聯網的核心邊緣計算裝置,承擔著電能計量信息采集、用戶電能信息儲存、雙向通信、多階梯費率統計、用戶側遠程調控等功能,是未來泛在電力物聯網用戶智能化終端的主要發展方向[1]。在我國重點建設泛在電力物聯網的背景下,用電狀況信息采集系統的建設已初具規模。智能電表在其中得到了廣泛的應用。然而,智能電表一旦發生故障,將影響用電信息采用的準確性。如未能及時解決智能電表故障,將可能為電力企業和用戶帶來嚴重的經濟損失[2-3]。
目前,一般使用檢測儀器進行現場測試,以獲得準確的電表故障信息。這會耗費大量的人力和物力,且存在無法準確發現智能電表故障的情況。此外,由于電能表的智能化應用程度的不斷提升,電表故障的通用性、突然性和復雜性等特點越發凸顯[4-6]。這些問題對智能電表故障狀態的準確性預測提出了巨大的挑戰。因此,依據國網信息化平臺采集到的海量智能電表故障狀態歷史數據[7],運用數據分析與挖掘技術對詳細的智能電表故障狀態數據進行深度挖掘,并通過提取關鍵性信息尋找故障數據與智能電表狀態的相關性,可實現智能電表故障狀態的準確性預測。
本文采用Apriori算法進行強關聯性因素特征挖掘;采用C5.0算法計算關聯性因素特性的信息增益率,建立智能電表故障預測模型實現智能電表故障的預測。研究結果表明,該模型能取得良好的預測效果。
決策樹在分類、預測和規則提取等數據分析領域具有廣泛應用。作為一種對數據實例進行分類的樹狀形結構模型[8-9],決策樹由有向邊和節點共同構成。決策樹的節點分為內部節點與葉節點:內部節點表示一個因素;葉節點表示一個不能再進行分類的類別。分類判斷決策的運算過程中,需以根節點為始端對實例數據的某個因素特征進行檢測,并依據檢測結果將實例分配到對應的內部子結點位置。此時,每個內部子節點對應著該因素特征的一個相對應取值。依據上述檢測方法進行遞推式下行搜索運算,直至到達決策樹末端的葉節點為止,可實現實例數據到葉節點類的分配[10]。
基于決策樹的智能電表故障預測流程如下。首先,對用戶信息采集系統中智能電表的故障狀態歷史數據進行缺失值插補、異常值剔除和數據標準化等預處理。然后,將智能電表的歷史數據劃分為預測訓練數據集和預測測試數據集,采用分類決策樹算法對預測訓練數據集進行數據分析,進而建立智能電表的故障狀態決策樹和待定預測規則。接著,利用測試數據集的數據信息對待定預測規則的準確性進行評估:如果精度滿足要求則建立預測規則;否則,返回訓練集重新訓練。最后,根據達到準確性要求的預測規則建立智能電表的故障狀態預測模型。
關聯規則數據挖掘是一種無指導的數據分析算法,用于揭示數據信息中未直接表示出來的隱含關聯特征因素[11]。Apriori算法是應用廣泛的關聯分析算法之一[12],以規則置信度和支持度作為規則有效性的測度指標。置信度和支持度的數學定義分別如式(1)和式(2)所示。
(1)
(2)
式中:X、Y分別為規則X→Y的前項和后項;CX→Y為X→Y的置信度;|T(X∩Y)|為同時包含X和Y的事務數;|T(X)|為包含X的事務數;SX→Y為X→Y的支持度;|T|為總事務數。
良好的強關聯規則應同時具備較高的置信度和支持度。假設最小的置信度與支持度閾值分別為Cmin和Smin,Apriori算法將關聯規則的發現過程分為頻繁項集搜索和最小置信度規則構造兩個環節[13]。
該算法根據數據項集性質對目標信息數據集進行逐次搜尋,完成所有頻繁項集的完整遍歷。將第一次搜尋獲得的頻繁1-項集記為L1,利用頻繁 1-項集L1自連接生成候選2-項集Q2。第k次信息數據集搜尋時,首先利用上一次搜尋結果生成候選k-項集Qk;然后計算每個元素的支持度;最終在第k次搜尋完成時候選k-項集Lk的計算。當項集Lk為空集時,停止計算。
Apriori算法執行流程如圖1所示。
圖1 Apriori算法執行流程
①信息數據集D進行搜尋,產生L1。
對信息數據集進行全面搜尋,并統計每一項的支持度計數,將支持度計數不小于信息數據集D中事務項目總數目與預先設定的最小支持度閾值乘積的項目合并到L1內。
②自身連接操作。
將Lk-1與其本身采取連接計算,并且相連接的兩個項集的前(k-2)項數值完全相等,前一個項集的第(k-1)項的值小于后一個項集的第(k-1)項的值,連接后生成候選項集Qk。
③ 剪枝操作。
Qk中包含Lk和非頻繁集~Lk。首先,根據頻繁項所有子集都是頻繁項集的特性,刪除Qk中不符合該特性的子集;然后,搜尋信息數據集合D,計算剪枝操作步后的Ck中剩余項集支持度計數;最后,依據設定的最小支持度閾值Smin找出所有Lk。
④搜尋終止條件判別。
重復步驟②、步驟③的操作運算。當Lk或Qk為空集時,結束搜尋。
⑤關聯規則生成。
分別計算每個Lk中所有非空子集合Lkj′的置信度值Ckj。若Ckj>Cmin,則生成強關聯規則Lkj′ →(Lk-Lkj′)。
將智能電表故障狀態作為規則的后項,以采集到的智能電表歷史故障數據作為規則的前項。設置合理的支持度和置信度,利用Apriori算法可獲得多個強關聯規則,并根據強關聯規則獲得評判智能電表故障的強影響特征因素。
C5.0算法是一種經典的分析決策樹算法,根據統計學上的置信區間計量概念進行評估,并基于信息熵進行最佳測試屬性選取[14-15]。假設數據集SD是智能電表故障歷史數據集合。將SD中的50%數據分配給預測訓練數據集S,另50%數據分配給預測測試數據集T,并采用C5.0算法對訓練數據集S進行數據分析。
C5.0算法的計算流程如下。將S分成n個子集S1,S2,…,Sn。其中,n是S中屬性X的個數。假設訓練集S的熵info(S)為:
(3)
式中:|S|為訓練集S中的樣本總數;freq(Ci,S)為訓練集S的中心決策因素類別Ci的樣本數(i=1,2,…,N),N為決策屬性的類別總數。
基于因素特征X,將訓練數據集S劃分為n個子集合,可計算得到各個子集合的信息熵為:
(4)
式中:iX(S)為屬性X的信息熵;|Si|為Si中的Ci的樣本總數i=1,2,…,m,m為屬性X中的類別總數。
增益標準gain(X)為:
gain(X)=info(S)-iX(Si)
(5)
屬性X產生的潛在信息s(X)為:
(6)
屬性X的信息增益比g(X)可以用以下公式表示:
(7)
將信息增益比的最大影響因素作為根節點,其余因素根據信息增益比的最大化進行遞歸計算,從而建立整個決策樹,并產生待定預測規則。
模型的精度可通過式(8)進行評估。對待定預測規則進行初步驗證,以確定其可靠性:
(8)
式中:P為預測測試數據集中能夠實現準確預測的樣本數;O為預測測試數據集中的樣本總個數。
假設Z′是評價模型的精度基準值。如果Z≥Z′,則可以確定分類規則;如果Z 為提高某區域內的電力公司所獲取的智能電表故障狀態原生歷史數據的整體質量,需采用缺失性數據插補、異常數據剔除、數據一致性檢測以及數據標準化處理等方法對原生數據進行預處理,以保障數據質量。 通過對智能電表故障歷史數據的啟發性分析,本文初步篩選了智能電表故障狀態的10個可能影響因素。智能電表故障的可能影響因素如表1所示。 表1 智能電表故障的可能影響因素 表1中,數值I、II、III標示了各個因素的屬性值。為了方便決策樹與關聯規則表示,分別用A,B,…,L的順序表示表1中各影響因素,并分別用I、II、III表示不同因素的屬性值。 以智能電表狀態作為規則后項,設定最小支持度閾值Smin為10%、最小置信度閾值Cmin為80%。采用Apriori算法進行關聯分析,共獲取873條關聯規則。其中:最小支持度為10.034%,最大支持度為88.67%;最小置信度為80%,最大置信度為98.23%。其中,擁有較高置信度和支持度的部分關聯規則提取結果如表2所示。 通過表2中高置信度與支持度的關聯規則分析提取結果,可知電能使用狀態、環境條件、運轉時長、 未檢測天數、可靠性和異常頻次這6個因素是智能電表故障的預測評判的強影響因素。智能電表的強影響因素如表3所示。 表3 智能電表的強影響因素 電能使用狀態因素中:輕微用電表示用戶的用電量較少;普通用電代表示用戶用電情況一般;重度用電表示戶用電量較大。3類用電情況分別劃分為I、II、III這3個等級。環境條件因素中:正常條件表示智能電表所處環境的平均溫度、濕度適宜;惡劣條件表示智能電表所處的平均溫度、濕度環境惡劣。這2類環境條件分別劃分成I、II這2個等級。運轉時長因素中的短、中等、長分別表示電表運轉時長,分別劃分為I、II、III這3個等級。未檢修天數因性中,短、長代表距離前次檢修節點的天數小于30天和大于等于30天,可分別劃分為I、II這2個等級??煽啃砸蛩刂?,高、低表示智能電表的出廠可靠性。異常頻次中,少、多表示智能電表在1年中發生異常的頻次小于2和大于等于2。 在Python中,采用C5.0算法對由50%的智能電表故障歷史數據形成的預測訓練數據集進行數據分析,并輸出dot格式的文本文件;同時,采用Graphviz繪圖工具將dot格式文件轉換為如圖2所示的智能電表故障決策樹。 圖2 智能電表故障決策樹 生成的決策樹模型共有6層。第一層分類屬性為異常頻次,其重要性程度為0.345;其余分類屬性分別為電能使用狀態、環境條件、運行時長、未檢修天數、可靠性,其重要性程度分別為0.215、0.196、0.164、0.174、0.129。 智能電表故障狀態決策樹的每個分支與相應的一條智能電表故障狀態預測規則相對應。依據智能電表故障狀態,決策樹可生成以下9條最終的電表故障狀態預測規則。 預測規則1:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“I”]THEN 電表狀態=“正?!?。 預測規則2:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“II”]AND 環境條件 IN [“I”]THEN 電表狀態=“正?!?。 預測規則3:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“II”]AND 環境條件 IN [“II”]AND 未檢修天數 IN [“I”]AND 運轉時長 IN [“I”or“II”]THEN 電表狀態=“正?!?。 預測規則4:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“II”]AND 環境條件 IN [“II”]AND 未檢修天數 IN [“I”]AND 運轉時長 IN [“III”]AND 可靠性 IN [“I”]THEN 電表狀態=“正?!?。 預測規則5:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“II”]AND 環境條件 IN [“II”]AND 未檢修天數 IN [“I”]AND 運轉時長 IN [“III”]AND 可靠性 IN [“II”]THEN 電表狀態=“故障”。 預測規則6:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“II”]AND 環境條件 IN [“II”]AND 未檢修天數 IN [“II”]THEN 電表狀態=“故障”。 預測規則7:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“III”]AND 環境條件 IN [“I”]AND 運轉時長 IN [“I”or“II”]THEN 電表狀態=“正?!?。 預測規則8:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“III”]AND 環境條件 IN [“I”]AND 運轉時長 IN [“III”]THEN 電表狀態=“故障”。 預測規則9:IF 異常頻次 IN [“I”]AND 電能使用狀態 IN [“III”]AND 環境條件 IN [“II”]THEN 電表狀態=“故障”。 表4 測試數據集預測結果 針對智能電表的故障預測問題,本文提出了基于Apriori算法獲取智能電表狀態的強影響因素。根據Apriori算法獲得的873條關聯規則,確定了電能使用狀態、環境條件、運轉時長、未檢修天數、可靠性和異常頻次作為智能電表狀態強影響因素。以此為基礎,采用C5.0算法建立了智能電表故障預測模型。該預測模型以9條預測規則作為智能電表故障預測方法,可實現智能電表狀態的快速準確預測?;谀车貐^智能電表故障狀態歷史數據的算例分析結果表明,本文提出的基于C5.0決策樹算法的智能電表故障狀態精準預測模型的準確率高達94.7%,預測效果良好。4 算例分析
4.1 強關聯因素挖掘
4.2 基于C5.0算法的決策樹的建立
4.3 模型評估
5 結論