宮 帥,宋善坤
(1.國網(wǎng)安徽省電力有限公司信息通信分公司,安徽 合肥 230041; 2.安徽繼遠(yuǎn)軟件有限公司,安徽 合肥 230093)
分布式能源系統(tǒng)可以在較少的成本投入下,滿足較高的供電需求,還可以將輸電損耗量控制在最低。與傳統(tǒng)能源系統(tǒng)相比,分布式能源系統(tǒng)克服了損耗高的弱點(diǎn),能夠有效節(jié)約能源消耗、降低企業(yè)人力物力成本。因此,各國研究人員不斷進(jìn)行了更深層次的研究,通過提升相關(guān)配套設(shè)備開發(fā)速度,以期為新時(shí)代下能源產(chǎn)業(yè)與電力工業(yè)的發(fā)展提供重要的保障。
分布式能源系統(tǒng)具有分布存儲(chǔ)以及數(shù)據(jù)量大等特點(diǎn),工作人員難以全面掌握能源運(yùn)行規(guī)律,無法及時(shí)發(fā)現(xiàn)數(shù)據(jù)可能存在的異常點(diǎn)。為確保其穩(wěn)定運(yùn)行,需要對(duì)其運(yùn)行數(shù)據(jù)進(jìn)行挖掘。國內(nèi)相關(guān)學(xué)者對(duì)此進(jìn)行了深入分析,例如文獻(xiàn)[1]利用多層次模糊關(guān)聯(lián)規(guī)則對(duì)高頻項(xiàng)目集不斷進(jìn)行自上而下地挖掘,同時(shí)引入模糊集合理論和多層分類技術(shù),從事務(wù)數(shù)據(jù)集中找到合適的模糊關(guān)聯(lián)規(guī)則進(jìn)行挖掘。該方法可以在多層次的結(jié)構(gòu)中實(shí)現(xiàn)數(shù)據(jù)精準(zhǔn)挖掘,但在算法初期并未對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,可能存在多種類型信息,影響最終的挖掘結(jié)果;文獻(xiàn)[2]利用E-SLMCM和DE-SLMCM算法,將數(shù)據(jù)庫轉(zhuǎn)換為垂直格式,通過兩次遍歷數(shù)據(jù)庫,記錄下各個(gè)事件項(xiàng)的時(shí)間戳。利用新的求項(xiàng)集時(shí)間戳重復(fù)計(jì)算更高項(xiàng)集的時(shí)間戳,以達(dá)到理想的數(shù)據(jù)挖掘結(jié)果。該方法對(duì)于小規(guī)模數(shù)據(jù)挖掘效果很理想,但對(duì)于規(guī)模稍大的數(shù)據(jù)卻無法滿足挖掘需求。
為此,本文根據(jù)多維關(guān)聯(lián)規(guī)則獲取系統(tǒng)數(shù)據(jù)特性,保證在完全未知環(huán)境下,從海量數(shù)據(jù)中迅速找到所需內(nèi)容,即使存在較大的噪聲也不受影響,因此提出了一種多維關(guān)聯(lián)規(guī)則的分布式能源系統(tǒng)數(shù)據(jù)挖掘方法。
為了防止采集的數(shù)據(jù)出現(xiàn)重復(fù)和格式不統(tǒng)一的情況,在進(jìn)行數(shù)據(jù)挖掘之前將所有數(shù)據(jù)都進(jìn)行離散化處理,將具體的數(shù)據(jù)轉(zhuǎn)換為僅能出現(xiàn)一次的字母或者數(shù)字,以此來滿足實(shí)際的挖掘需求[3]。
關(guān)聯(lián)規(guī)則可以準(zhǔn)確反映各個(gè)事務(wù)之間存在的某種關(guān)聯(lián)或者依存關(guān)系。通常情況下,關(guān)聯(lián)規(guī)則可以描述分布式能源數(shù)據(jù)庫中各個(gè)數(shù)據(jù)屬性和變量之間的隱藏關(guān)系。
假設(shè)I={i1,i2,… ,im}表示項(xiàng)Item的集合,D代表的是事務(wù)集合,T是I中的一個(gè)子集,T?I,其中D={T1,T2,… ,Tn}。任意給定一個(gè)X和一個(gè)Y,假設(shè)二者都是T中的項(xiàng)或集[4],且滿足條件X∩Y=φ,那么關(guān)聯(lián)規(guī)則為X?Y(S%,C%)。其中S、C含義如下所示:
S代表的是支持度(Support),計(jì)算公式見式(1):
S%={T:X∪Y?T,T∈D}/|D|
(1)
C代表的是置信度(Confidence),計(jì)算公式見式(2):
C%=C(X?Y)
(2)
關(guān)聯(lián)分析的目的是挖掘強(qiáng)關(guān)聯(lián)規(guī)則,則需要滿足下列3個(gè)條件。
X∈I,Y∈I且X∩Y=?
(3)
S(X?Y)≥mins
(4)
C(X?Y)≥minc
(5)
通過上述公式說明,當(dāng)預(yù)先設(shè)定的閾值大于最小支持度mins和最小置信度minc時(shí),該規(guī)則就屬于強(qiáng)關(guān)聯(lián)規(guī)則[5]。
在數(shù)據(jù)庫內(nèi),數(shù)據(jù)通常以數(shù)據(jù)立方體的形式組織與存儲(chǔ)。維和事實(shí)共同構(gòu)成了數(shù)據(jù)立方體,維代表的是看數(shù)據(jù)的角度,維的取值被稱為維成員[6];事實(shí)中包含了大量與維相關(guān)的關(guān)鍵字和事實(shí)度量。
根據(jù)每個(gè)用戶實(shí)際的挖掘需求,在數(shù)據(jù)庫內(nèi)建立相應(yīng)的數(shù)據(jù)立方體,然后在這些立方體上進(jìn)行數(shù)據(jù)的挖掘。由于數(shù)據(jù)立方體一開始被全部或部分物化存儲(chǔ)[7],使得在后續(xù)的多維關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘中節(jié)省了一部分時(shí)間成本,在一定程度上提高了挖掘效率。
在多維關(guān)聯(lián)規(guī)則挖掘任務(wù)中,內(nèi)容包含了d1,d2,… ,dn維。首先需要明確維的層次數(shù)量,以此生成相應(yīng)的數(shù)據(jù)立方體。每個(gè)維中包含了|di|+1個(gè)數(shù)值,|di|代表了第i維中維成員的數(shù)量。di中最后一行被稱為“SUM”,它記錄了其所對(duì)應(yīng)所有維的總值。數(shù)據(jù)立方體中也包含了所有維成員的頻繁度量值[8],用count來表示。
以分布式能源系統(tǒng)中存儲(chǔ)的數(shù)據(jù)作為立方體的主要生成內(nèi)容。具體點(diǎn)說,就是將系統(tǒng)中的數(shù)據(jù)與各相關(guān)表進(jìn)行關(guān)聯(lián),統(tǒng)計(jì)各個(gè)維度組合后的總值[9]。將系統(tǒng)中的數(shù)據(jù)按照維度劃分為3類,分別是操作維、運(yùn)行維和執(zhí)行維。每個(gè)維度又由若干個(gè)子維度[10]構(gòu)成,操作維中包括了時(shí)間和操作記錄在內(nèi),運(yùn)行維中集合了正常/異常運(yùn)行狀態(tài)以及運(yùn)行時(shí)間,執(zhí)行維中主要是正常/異常執(zhí)行記錄和執(zhí)行時(shí)間。
在實(shí)際的應(yīng)用中,根據(jù)上述各個(gè)子維度作為數(shù)據(jù)立方體的維度,生成立方體的過程可以通過SYBASE IQ中的立方體生成功能來實(shí)現(xiàn),以確保高效、靈活地完成生成工作。SYBASE IQ是一種關(guān)系型數(shù)據(jù)庫[11],專門服務(wù)于大型數(shù)據(jù)庫,因其具有獨(dú)特的按列存儲(chǔ)機(jī)制和多樣化的索引機(jī)制[12],即使面對(duì)規(guī)模龐大的數(shù)據(jù),依然可以高效完成數(shù)據(jù)立方體的生成工作。
關(guān)聯(lián)規(guī)則分為單維關(guān)聯(lián)規(guī)則、維間關(guān)聯(lián)規(guī)則和多維關(guān)聯(lián)規(guī)則。顧名思義,單維關(guān)聯(lián)規(guī)則就是只含有一個(gè)關(guān)鍵謂詞,而多維關(guān)聯(lián)規(guī)則中則包含了如地點(diǎn)、人物、原因等多個(gè)謂詞[13],并且謂詞與謂詞之間可以通過兩兩組合的形式得到更多謂詞的有效規(guī)則,維間規(guī)則指含有一個(gè)關(guān)鍵謂詞,但是謂詞卻具有多種不同的屬性。
Apriori算法在挖掘關(guān)聯(lián)規(guī)則頻繁項(xiàng)集方面具有非常明顯的優(yōu)勢(shì),該算法利用逐層搜索的迭代方式,不斷探索生成項(xiàng)集。本文根據(jù)分布式能源系統(tǒng)的實(shí)際需要,對(duì)Apriori算法作出部分改進(jìn),利用不產(chǎn)生候選項(xiàng)[14]的FP-樹(Frequent Pattern-growth,頻繁模式樹)增長算法實(shí)現(xiàn)對(duì)分布式能源系統(tǒng)的數(shù)據(jù)挖掘。多維關(guān)聯(lián)規(guī)則算法流程如圖1所示。
圖1 多維關(guān)聯(lián)規(guī)則算法流程Fig.1 Flow chart of multidimensional association rule algorithm
(1)生成(1-項(xiàng)集)頻繁項(xiàng)集。將挖掘的對(duì)象看作是數(shù)據(jù)庫F,對(duì)F進(jìn)行第一次掃描并對(duì)所有維生成(1-項(xiàng)集)頻繁項(xiàng)集,得到每個(gè)維的支持度計(jì)數(shù)(頻繁性),根據(jù)置信度找出全部單個(gè)候選項(xiàng)集。此時(shí)由于數(shù)據(jù)維度較高,因此對(duì)置信度進(jìn)行改進(jìn),利用全置信度單個(gè)候選項(xiàng)集進(jìn)行查找,全置信度的計(jì)算公式如下:
(6)
對(duì)式(6)進(jìn)行簡化,結(jié)果表示為:
C′(X)=min{P(X|Y),P(Y|X)}
(7)
通過分析式(2)可知,其與關(guān)聯(lián)規(guī)則X?Y置信度的表達(dá)式是相關(guān)的,所以得到了關(guān)于規(guī)則的全置信度概念,其計(jì)算公式如下:
C″(X?Y)=min{C(X?Y),C(Y?X)}
(8)
根據(jù)全置信度以及維數(shù)的不同劃分頻繁項(xiàng)集[15],并根據(jù)每個(gè)組中支持度最大的項(xiàng),對(duì)組間按照從大到小的順序排列,組內(nèi)同樣按照從大到小的順序?qū)χС侄萚16]進(jìn)行排列,以此找出全部單個(gè)候選項(xiàng)集。排列結(jié)果集可用表格描述。表1展示的是一組多維事務(wù)表,假設(shè)最小事務(wù)的支持度計(jì)數(shù)為2(即),得到的結(jié)果集為L=[F1:5,F(xiàn)3:4,A2:4,A1:3,A3:3,B1:4,C1:4,]。
結(jié)合上述分析,將分布式能源系統(tǒng)的事件集合定義為{E1,E2,E3,E4,E5},其中,E1代表的是能源存儲(chǔ)異常波動(dòng)情況,E2代表的是溫區(qū)PID(Packet Identifier,數(shù)字控制顯示)異常,E3代表的是系統(tǒng)能源傳輸異常,E4代表的是能源分布調(diào)整,E5代表的是能源存儲(chǔ)調(diào)整。隨著分布式能源系統(tǒng)運(yùn)行,產(chǎn)生了9種狀態(tài)事務(wù),即|D|=9,具體內(nèi)容見表2,設(shè)定E1?E5規(guī)則出現(xiàn)了異常。
表2 分布式能源系統(tǒng)中的事務(wù)狀態(tài)Tab.2 Transaction status in distributed energy system
將每一種狀態(tài)信息用不同的Tid來表示,借助專家系統(tǒng)對(duì)運(yùn)行過程中頻繁項(xiàng)的動(dòng)態(tài)數(shù)據(jù)庫的字典序進(jìn)行存儲(chǔ),以及尋找D中的頻繁項(xiàng)集。
(2)FP-樹的構(gòu)建。第2次掃描數(shù)據(jù)庫F,并對(duì)事務(wù)中的項(xiàng)進(jìn)行排序操作。挖掘頻繁2項(xiàng)集(2-項(xiàng)集)時(shí),如果直接均分?jǐn)?shù)據(jù)然后分配到每個(gè)候選項(xiàng)集中,雖然操作簡單,但是每條事務(wù)的個(gè)數(shù)不同,查找2項(xiàng)集的運(yùn)算量不同,導(dǎo)致FP-樹構(gòu)建效率與質(zhì)量下降。所以利用ψi來表示在第i條事務(wù)中查找2項(xiàng)集所需要的運(yùn)算量,其中ti表示第i條事務(wù)中的項(xiàng)目個(gè)數(shù),則ψi計(jì)算公式如下:
(9)
由于不同的等價(jià)類在挖掘頻繁項(xiàng)集的運(yùn)算復(fù)雜度不同,將這些任務(wù)分配給不同的FP-樹節(jié)點(diǎn)進(jìn)行處理會(huì)導(dǎo)致負(fù)載不均衡,因此采用Wi表示頻繁2項(xiàng)集中第i個(gè)等價(jià)類的權(quán)重值,按權(quán)重值的降序排列,讓每個(gè)節(jié)點(diǎn)分配盡量相同的權(quán)重累加值的等價(jià)類,以此保證負(fù)載均衡性。Wi的計(jì)算公式如下:
(10)
結(jié)合上述分析,將候選項(xiàng)集中的非頻繁項(xiàng)刪除掉,單獨(dú)建立一個(gè)分枝[17]。本文構(gòu)建的FP-樹如圖2所示。
圖2 本文構(gòu)建的FP-樹Fig.2 FP-Tree constructed in this paper
(3)對(duì)構(gòu)建的FP-樹作出部分修正。計(jì)算圖2中所有葉子節(jié)點(diǎn)的支持度計(jì)數(shù)[18],如果存在某個(gè)節(jié)點(diǎn)所有孩子節(jié)點(diǎn)支持度計(jì)數(shù)總數(shù)、小于該節(jié)點(diǎn)的支持度計(jì)數(shù),那么就需要計(jì)算這個(gè)節(jié)點(diǎn)以及該節(jié)點(diǎn)所有雙親節(jié)點(diǎn)對(duì)應(yīng)的支持度計(jì)數(shù)。圖2中的灰色B1節(jié)點(diǎn),經(jīng)過復(fù)制后將得到新枝,從FP-樹中分離出來,重新構(gòu)建新的FP+樹,原始FP-樹節(jié)點(diǎn)的支持度計(jì)數(shù)在不斷減少,減少的支持度計(jì)數(shù)用FP′來表示,經(jīng)過修正處理后的FP-樹節(jié)點(diǎn)支持度計(jì)數(shù)可提高挖掘精度。
(4)剪枝處理。對(duì)于頻繁FP-樹,利用修正算法挖掘頻繁模式,并通過剪枝處理去除掉冗余數(shù)據(jù),使得最終挖掘結(jié)果更加準(zhǔn)確。對(duì)節(jié)點(diǎn)A1剪枝就是刪除節(jié)點(diǎn)A1,用該節(jié)點(diǎn)的所有雙親節(jié)點(diǎn)支持度計(jì)數(shù)與該節(jié)點(diǎn)原始支持度計(jì)數(shù)做減法處理[19]。經(jīng)過剪枝處理后,剩余的節(jié)點(diǎn)[20]信息即為最終的分布式能源系統(tǒng)數(shù)據(jù)挖掘結(jié)果。
將最小支持度的計(jì)數(shù)設(shè)置為3,即Smin=3,通過構(gòu)建FP-樹生成候選項(xiàng)集和頻繁項(xiàng)集,過程如下。
(1)對(duì)分布式能源系統(tǒng)進(jìn)行第1次掃描,得到D中所有候選項(xiàng)的計(jì)數(shù)。將頻繁l-項(xiàng)集的集合定義為L1,由多個(gè)支持度為最小值的候選l-項(xiàng)集組合在一起而形成。
(2)進(jìn)行第2次掃描,得到頻繁2項(xiàng)集的集合為L2,通過L1計(jì)算得到候選2項(xiàng)集的集合C2。在剪枝的過程中,如果發(fā)現(xiàn)對(duì)象子集為頻繁子集,則不需要進(jìn)行刪除操作。
(3)在第3次掃描中,計(jì)算L2得到候選3項(xiàng)集的集合為C3,直接對(duì)其進(jìn)行剪枝操作。頻繁項(xiàng)集下的非空子集同樣也是頻繁的。舉個(gè)例子說明,{E1,E3,E5}的2項(xiàng)子集是{E1,E3}、{E1,E5}和{E3,E5}。由于L2中不存在,所以{E3,E5}不是頻繁的。在C3中刪除{E1,E3,E5},得到的剪枝結(jié)果為C3={E1,E2,E3},{E1,E2,E5}。
(4)進(jìn)行最后一次掃描,計(jì)算L3得到候選4項(xiàng)集的集合為C4。L3={E1,E2,E3,E5},根據(jù)FP-樹的思想,由于它的子集{E2,E3,E5}不是頻繁的,所以直接剪枝刪除掉,由此可得C4=?,算法結(jié)束。通過上述四個(gè)步驟,本文方法將所有頻繁項(xiàng)集全部找出,根據(jù)最小可信度可得到以下幾種關(guān)聯(lián)規(guī)則。
E1?E2:支持度計(jì)數(shù)為3,置信度3/6=50%,大數(shù)據(jù)項(xiàng)集為L[2];
E1?E5:支持度計(jì)數(shù)為6,置信度6/6=100%,大數(shù)據(jù)項(xiàng)集為L[2];
E2?E3:支持度計(jì)數(shù)為2,置信度2/8=25%,大數(shù)據(jù)項(xiàng)集為L[2];
E3?E5:支持度計(jì)數(shù)為6,置信度6/8=75%,大數(shù)據(jù)項(xiàng)集為L[3];
E1、E2?E3:支持度計(jì)數(shù)為3,置信度3/6=50%,大數(shù)據(jù)項(xiàng)集為L[3];
E4、E5?E2:支持度計(jì)數(shù)為4,置信度4/5=80%,大數(shù)據(jù)項(xiàng)集為L[3]。
通過觀察以上幾種關(guān)聯(lián)規(guī)則,可以發(fā)現(xiàn)本文所采用多維關(guān)聯(lián)規(guī)則算法能夠準(zhǔn)確挖掘出E1?E5這個(gè)規(guī)則出現(xiàn)了異常,符合設(shè)定值,異常情況為能源存儲(chǔ)結(jié)構(gòu)異常波動(dòng)。工作人員可根據(jù)此結(jié)果及時(shí)進(jìn)行調(diào)整,適當(dāng)?shù)貏h減和添加,確保分布式能源系統(tǒng)長期穩(wěn)定地運(yùn)行。
選取了5個(gè)專門用來測(cè)試多維關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘算法的數(shù)據(jù)集作為測(cè)試數(shù)據(jù)庫,容量大小分別是334 KB(chess)、557 KB(mushroom)、3 970 KB(retail)、8 820 KB(connect)、15 900 KB(pumsb)。將最小支持度的閾值設(shè)置為0.2,計(jì)算到頻繁4項(xiàng)集為止。3種方法在上述環(huán)境下進(jìn)行數(shù)據(jù)挖掘,結(jié)果見表3。
表3 數(shù)據(jù)挖掘效率驗(yàn)證Tab.3 Data mining efficiency verification
5個(gè)數(shù)據(jù)庫生成頻繁1-項(xiàng)集的數(shù)量不相同且信息容量普遍較大,從表3中可以看出,無論面對(duì)哪種類型的數(shù)據(jù)庫,本文所使用的多維關(guān)聯(lián)規(guī)則算法的數(shù)據(jù)挖掘時(shí)間始終低于20 s,說明該方法具有較高的數(shù)據(jù)挖掘效率。
多維關(guān)聯(lián)規(guī)則可以從深層次挖掘到數(shù)據(jù)與數(shù)據(jù)之間的內(nèi)在關(guān)聯(lián),本文通過對(duì)Apriori算法進(jìn)行改進(jìn),構(gòu)建了FP-樹,將復(fù)雜的問題變得簡單化,具有理想的挖掘效率,為其他類似的數(shù)據(jù)挖掘提供了一種新的參考方法。但是本文方法具有一定的應(yīng)用局限,在以后的研究過程中,將此作為主要方向進(jìn)行更深層次的研究。