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