何壯壯
(國網(wǎng)太原供電公司,山西 太原 030012)
傳統(tǒng)的電力營銷分析方法著重于對營銷數(shù)據(jù)的管理和匯總,或通過簡單的方法對數(shù)據(jù)進行統(tǒng)計與分析。然而隨著電網(wǎng)數(shù)據(jù)量的急劇增加,現(xiàn)有平臺的存儲能力、處理能力、交換能力、展現(xiàn)能力以及互動能力都無法高效、深入地提取出對營銷決策有意義的信息[1],電力營銷大數(shù)據(jù)的分析面臨新的困難。
基于電力營銷數(shù)據(jù)的特殊性,本文將關(guān)聯(lián)規(guī)則挖掘技術(shù)引入其中。關(guān)聯(lián)規(guī)則挖掘是一種對選定數(shù)據(jù)集進行特征描述的挖掘算法,它搜集系統(tǒng)中的所有事務(wù),并找到這些數(shù)據(jù)項彼此之間聯(lián)系的規(guī)則,此種規(guī)則并非確定的關(guān)系,而是以置信度為準(zhǔn)則的可能值,即事件發(fā)生的概率。本文從宏觀角度把控電網(wǎng)數(shù)據(jù)元素間的關(guān)聯(lián)特性,分析電網(wǎng)數(shù)據(jù)中各分類屬性與決策屬性間的頻繁模式、相關(guān)性,探究各分類屬性對決策屬性產(chǎn)生的影響[2],從而制定出較傳統(tǒng)分析方案更具意義的營銷策略。
由于電力營銷數(shù)據(jù)的爆發(fā)式增長,傳統(tǒng)數(shù)據(jù)處理技術(shù)面對如此龐大的數(shù)據(jù)集時顯得捉襟見肘。本文采用MapReduce 編程框架,對大規(guī)模電力營銷數(shù)據(jù)集并行數(shù)據(jù)挖掘。MapReduce 提供了一種新的機制,將計算擴展到集群上進行,在此編程模型下,采用FP-growth 技術(shù)并行挖掘出頻繁項集,產(chǎn)生關(guān)聯(lián)規(guī)則。
關(guān)聯(lián)規(guī)則挖掘是一種從大量數(shù)據(jù)中提取潛在有用信息的有效分析技術(shù)。關(guān)聯(lián)規(guī)則挖掘最終得到一系列的關(guān)聯(lián)規(guī)則,幫助電力營銷工作決策人員從當(dāng)前數(shù)據(jù)的規(guī)律以及特征分析出有價值的決策信息。
MapReduce 是一種處理海量數(shù)據(jù)的并行分布式計算模型框架,定義了Map 和Reduce 兩個抽象的編程接口,處理過程如下。
a) 各Map 節(jié)點通過對不同的輸入數(shù)據(jù)進行并行化處理,從而產(chǎn)生相應(yīng)的中間結(jié)果輸出。
b) 各Reduce 節(jié)點均獨立地完成各自負(fù)責(zé)處理的中間結(jié)果數(shù)據(jù)集。
c) 在進入Reduce 前需要有一個同步障,即必須等待所有的Map 節(jié)點完成處理后,才能進入Reduce 節(jié)點;同步障對Map 階段的中間結(jié)果數(shù)據(jù)進行收集、整理及處理,以便Reduce 節(jié)點可以完全基于本節(jié)點上的數(shù)據(jù)計算最終結(jié)果[3]。
d) 將各個Reduce 的輸出結(jié)果進行整理,以獲得最終結(jié)果。
設(shè)有事務(wù)數(shù)據(jù)庫D= {T1,T2,…,TN},Tj(j=1,2,…,n) 稱為事務(wù)T,構(gòu)成T的元素Ik(k=1,2,…,p) 稱為項,設(shè)D中所有項的集合I= {I1,I2,…,Im}。關(guān)聯(lián)規(guī)則是形如X=>Y的蘊含式,其中X、Y是I的子集,并且X∩Y=0/。相關(guān)定義如下。
定義1:項集與頻繁項集。設(shè)A= {i1,i2,…,it} (1≤t≤m),則A稱為在D中的一個t項集。若A的支持度滿足最小支持度閾值,則稱A為D中的一個頻繁項集。
定義2:支持度。集A的支持度Support(A)==P(A)。關(guān)聯(lián)規(guī)則A=>B的支持度Support(A=>B)P(A∪B)。
定義3:置信度。關(guān)聯(lián)規(guī)則A=>B的置信度Confidence(A=>B)
定義4:強關(guān)聯(lián)規(guī)則。設(shè)min_sup 是最小支持度閾值,min_conf 是最小置信度閾值。如果事務(wù)集合D中的關(guān)聯(lián)規(guī)則A=>B滿足Support(A=>B)≥min_sup 且Confidence(A=>B) ≥min_conf,則稱A=>B為D中的強關(guān)聯(lián)規(guī)則[4]。
由于電力營銷數(shù)據(jù)中的分時用電量等都是具有連續(xù)性的數(shù)值數(shù)據(jù),不利于總結(jié)數(shù)據(jù)挖掘規(guī)律,因此需要將連續(xù)性數(shù)據(jù)進行離散化處理。本文引入了K-means 聚類技術(shù)實現(xiàn)離散化,同時作為關(guān)聯(lián)規(guī)則挖掘的一個預(yù)處理步驟。分析得知計算每個元素到質(zhì)心的距離都是獨立進行的,元素在計算過程中相互沒有聯(lián)系[5],故使用MapReduce 模型來實現(xiàn)并行化處理,過程如下。
a) 掃描原始數(shù)據(jù)集中所有點,從HDFS 文件中逐行讀取數(shù)據(jù)并隨機選取K個點作為初始的質(zhì)心。
b) 并行計算,將各個樣本歸類。各Map 節(jié)點先讀入質(zhì)心文件,再讀取存在本地的數(shù)據(jù)集,對任意一個樣本,求樣本到K個質(zhì)心的距離,將該樣本歸到距離最短的質(zhì)心所在的類,最后在Reduce 階段重新計算每個類類內(nèi)數(shù)據(jù)集的均值作為新的質(zhì)心[6]。同時,計算準(zhǔn)則函數(shù)E=i=1k∑ ∑p∈xi||p-mi||2(式中:E為誤差的平方和;mi為本地樣本點的值;p為mi所在簇的簇中心值) 的值,以供主函數(shù)判斷迭代是否結(jié)束。若質(zhì)心不收斂,重復(fù)第二階段的過程直到滿足結(jié)束條件,過程如圖1 所示。
c) 質(zhì)心收斂。根據(jù)最終生成的質(zhì)心對所有的數(shù)據(jù)集進行聚類工作。
圖1 第二階段的MapReduce 并化過程
1.4 電力營銷大數(shù)據(jù)中并行FP-growth 算法設(shè)計
FP-growth 作為Apriori 算法的改進,只進行兩次數(shù)據(jù)庫的掃描,不使用候選集而直接把數(shù)據(jù)庫壓縮成頻繁模式樹(FP-Tree),通過對FP-Tree挖掘生成關(guān)聯(lián)規(guī)則[7]。但是在目前海量數(shù)據(jù)的現(xiàn)狀下,F(xiàn)P-Tree 已經(jīng)大到無法駐留在計算機的內(nèi)存中,故并行化是唯一的選擇。
1.4.1 并行FP- growth 算法設(shè)計
將原始的數(shù)據(jù)庫劃分為幾個互相獨立的分區(qū),并且數(shù)據(jù)庫分區(qū)是完備的。將這幾個分區(qū)分別存放在不同的機器上,對不同數(shù)據(jù)分區(qū)并行進行FP-growth 挖掘,最后將不同機器上的結(jié)果結(jié)合起來得到最終的結(jié)果[8-9]。過程如圖2 所示。
圖2 FP-growth 算法的MapReduce 并行化過程
a) 數(shù)據(jù)庫分區(qū)。把數(shù)據(jù)庫分成連續(xù)的不同的分區(qū),每一個分區(qū)分布在不同的機器上。Hadoop框架會自動完成數(shù)據(jù)庫分區(qū),所劃分的數(shù)據(jù)庫分區(qū)會拷貝到HDFS 上。
b)統(tǒng)計頻繁1-項集。通過第一 對MapReduce 統(tǒng)計頻繁1-項集及其支持度計數(shù)。將頻繁1-項集按其支持度降序排序,排序后存入到F_list 表中。
c) 條目分組。將F_list 中的條目分成Q個組,形成了一個G_list 集合,G_list 里的每一個Group 都分配一個Group ID,每個Group 都包含一組item 集合。
d) 并行FP-growth。Map 用來構(gòu)造完備數(shù)據(jù)集。它分別處理第一步形成的數(shù)據(jù)庫分區(qū)中的每一條事務(wù)T,將事務(wù)T分成多個item,每一個item 根據(jù)G_list 映射到合適的Group 里去,這樣屬于同一個Group 的item 集合都被聚合到一臺機器上[10]。Reduce 基于Map 形成的完備數(shù)據(jù)集,進行本地的FP-growth 算法,原理與串行相同。
1.4.2 強關(guān)聯(lián)規(guī)則的生成
對于由FP-growth 算法得到的每個頻繁項集M,生成其所蘊含的強關(guān)聯(lián)規(guī)則步驟如圖3 所示。
在智能電網(wǎng)整個系統(tǒng)中,各個環(huán)節(jié)都有可能產(chǎn)生大數(shù)據(jù)。電網(wǎng)業(yè)務(wù)數(shù)據(jù)大致分為3 種類型:一是智能電網(wǎng)運行時,電網(wǎng)設(shè)備的檢測或監(jiān)測數(shù)據(jù);二是電力企業(yè)營銷數(shù)據(jù),如售電量、行業(yè)類別、交易電價等方面的數(shù)據(jù);三是電力企業(yè)管理產(chǎn)生的數(shù)據(jù)。本文重點分析電力營銷中的數(shù)據(jù)處理。自推行峰谷分時電價起,采用分時電價的用戶在逐漸增多,尤其是在大工業(yè)用戶中,采用分時電價的用戶占很大的比重。研究不同用戶的分時用電情況,可以幫助決策者及時發(fā)現(xiàn)不同用戶群的用電特征,并針對不同的用戶群進行具體的用電方案調(diào)整。本文將關(guān)聯(lián)規(guī)則技術(shù)應(yīng)用到電力市場營銷信息的分析中,旨在發(fā)現(xiàn)用戶的分類屬性(用戶自身屬性、市場屬性) 與決策屬性(所繳電費、分時用電量) 之間的關(guān)聯(lián)關(guān)系,以便從宏觀上把握不同用戶的用電特性,從而為電力營銷部門的決策提供理論支持。
關(guān)聯(lián)規(guī)則分析是一種對選定數(shù)據(jù)集進行特征描述的挖掘算法,它搜集系統(tǒng)中的所有事務(wù),從中找出所有組與組之間的數(shù)據(jù)項相聯(lián)系的規(guī)則,此規(guī)則并非確定的,而是具有置信度的可能值。
圖3 強關(guān)聯(lián)規(guī)則生成步驟
現(xiàn)在,關(guān)聯(lián)規(guī)則只能處理離散型的數(shù)據(jù)集,而電力營銷數(shù)據(jù)中的分時電量和電費等數(shù)據(jù)都是連續(xù)的,必須先采用K-Means 聚類算法對數(shù)據(jù)進行預(yù)處理,減少屬性值,提高屬性內(nèi)涵,這是進行關(guān)聯(lián)規(guī)則挖掘的必要前提。由于本文研究的是分時用電量,若是以總電量來評價用電水平是不合理的,峰電量、平電量和谷電量三者綜合起來才能評價用戶的用電水平。因此,需要以峰、平、谷3 個時段作為3 個維度對分時電量進行聚類得到不同等級的電量水平,對電費進行一維聚類得到不同等級的經(jīng)濟水平。
然而,在普通平臺的數(shù)據(jù)挖掘系統(tǒng)中,有的模塊需要很大的計算量,例如本系統(tǒng)中的數(shù)據(jù)預(yù)處理模塊和關(guān)聯(lián)規(guī)則挖掘模塊。而Hadoop 平臺利用HDFS 的分布式存儲,利用MapReduce 的并行編程模型可以將大量的數(shù)據(jù)分散到各個計算機進行分布式計算,從而大大提高了數(shù)據(jù)處理的效率。將關(guān)聯(lián)規(guī)則挖掘系統(tǒng)模型與Hadoop 系統(tǒng)結(jié)構(gòu)進行結(jié)合,采用分層的思想,使用Hadoop 的HDFS 實現(xiàn)文件分布式存儲,使用MapReduce 實現(xiàn)并行計算功能。對于系統(tǒng)的各個層次而言,系統(tǒng)各層之間是相互獨立的,這樣易于系統(tǒng)的擴展。上層會透明地調(diào)用下層接口,最頂層的交互層負(fù)責(zé)用戶和系統(tǒng)之間的交互。最底層為分布式計算層,Hadoop 框架會自動完成任務(wù)的并行執(zhí)行。
本文選取A 地區(qū)煤炭行業(yè)的大工業(yè)用戶的分時用電情況進行研究,抽取用戶1 月的分時用電總量來構(gòu)造數(shù)據(jù)模型進行關(guān)聯(lián)規(guī)則分析,將用戶基于月份的用電記錄作為用戶的一次用電行為。
此時若是以總電量來評價用電水平不合理。因此,以分時用電量為度量,以峰、平、谷3 個時段作為3 個維度,依據(jù)1.3 節(jié)并行K-means 聚類算法,對分時用電量進行三維聚類處理,得到不同等級的電量水平。每一個聚類都相當(dāng)于一種分時用電行為;對于電費數(shù)據(jù),采用一維K-means 聚類算法對其進行聚類,對得到的聚類進行大小排序,則聚類結(jié)果代表了不同用戶的經(jīng)濟水平。
本文預(yù)設(shè)K為5,同時結(jié)合營銷數(shù)據(jù)特征,取歐氏距離來度量兩點間的距離,對用電量進行三維的聚類,從而得到5 個簇以及簇的質(zhì)心。簇的質(zhì)心代表了聚成該簇的峰、平、谷電量的均值。就本文而言,E代表用電情況,1~5 代表聚類的ID。
結(jié)果分析:從聚類的結(jié)果中可以看出各個用戶群的用戶數(shù)以及用戶的分時用電情況,從峰、平、谷的差值可以看出用戶削峰填谷的潛力。
對電費進行一維的聚類,得到的聚類經(jīng)濟水平代表用戶的購電能力。就本文而言,E代表用電情況,1~5 代表聚類的ID,分別代表高水平、偏高水平、中等水平、偏低水平和低水平。
用戶的其他分類屬性(如電壓等級、工作類別) 自身就具有離散性,故不必聚類。
本文將運用1.4.1 節(jié)所介紹的并行FP-growth算法對事務(wù)數(shù)據(jù)庫進行頻繁項集的挖掘,然后運用1.4.2 節(jié)的方法從得到的所有頻繁項集中產(chǎn)生強關(guān)聯(lián)規(guī)則。篩選出以影響用戶分時用電行為的因素為條件,分時用電行為為結(jié)論的強關(guān)聯(lián)規(guī)則,并用支持度和置信度來量化這種關(guān)聯(lián)關(guān)系,以此作為電力營銷分析的依據(jù)。把支持度作為關(guān)聯(lián)規(guī)則重要性的衡量指標(biāo),把置信度作為關(guān)聯(lián)規(guī)則準(zhǔn)確度的衡量準(zhǔn)則。最小支持度和最小置信度的選取直接影響關(guān)聯(lián)規(guī)則的產(chǎn)生,最小支持度過小,會產(chǎn)生很多不必要的關(guān)聯(lián)規(guī)則,最小支持度過大,會錯過很多有意義的關(guān)聯(lián)規(guī)則。因此,系統(tǒng)中將這兩個值對外定義了接口,用戶可根據(jù)實際情況自行選擇。從生成的強關(guān)聯(lián)規(guī)則中抽取5 條進行說明,結(jié)果如表1 所示。
表1 強關(guān)聯(lián)規(guī)則
聚類結(jié)果分析:從聚類的結(jié)果中我們可以看出各個用戶群的分時用電情況,從峰、平、谷的差值可以看出用戶削峰填谷的潛力。上述聚類結(jié)果顯示,ID 為5 的用戶群的分時用電情況不同于其他4 組,第5 組的峰電量高于平電量和谷電量。下面我們重點分析以E5為結(jié)論的關(guān)聯(lián)規(guī)則,看看具有哪些特征的用戶的峰電量高于平電量和谷電量。
關(guān)聯(lián)規(guī)則挖掘結(jié)果分析:本文預(yù)設(shè)最小支持度閾值min_Support=15%,最小可信度閾值min_Confidence=40%。以上述的數(shù)據(jù)為例進行關(guān)聯(lián)規(guī)則挖掘,在得到的大量以售電量為結(jié)論的強關(guān)聯(lián)規(guī)則和與售電量相關(guān)的頻繁項集中,有如下結(jié)果對營銷分析具有一定的指導(dǎo)意義。
關(guān)聯(lián)規(guī)則1: {褐煤的開采和清洗,10 kV,I5}=> {E5} (support=15%,confidence=65%)
關(guān)聯(lián)規(guī)則2: {褐煤的開采和清洗,I4} =>{E4}(support=16%,confidence=55%)
由關(guān)聯(lián)規(guī)則1 看出,在A 地區(qū)的煤炭行業(yè)這個用電市場中,對于工作類別是褐煤的開采和清洗,所售電壓是10 kV,月均電費在I5(5 589元)這個低水平用電群體來說,他們的分時用電情況以65%的置信度處于E5(4 891 kW·h,4 770 kW·h,3 674 kW·h) 這個水平,由數(shù)據(jù)上得出,E5 的峰電量、平電量、谷電量相差較大,并且峰電量的均值比平電量的均值要大,說明該群體還有削峰填谷的潛力,分析人員應(yīng)根據(jù)實際情況,通過采用激勵手段等方法對該群體進行調(diào)整,使該用戶群的峰電量向谷電量轉(zhuǎn)移,進而使該用戶群的用電負(fù)荷達(dá)到局部最優(yōu)。
由關(guān)聯(lián)規(guī)則2 看出,在A 地區(qū)的煤炭行業(yè)這個用電市場中,對于工作類別是褐煤的開采和清洗,月均電費在I4(68 715 元) 這個中低水平用電群體來說,他們的分時用電情況以55%的置信度處于E4(41260kW·h,47619kW·h,36288kW·h)這個水平,由數(shù)據(jù)上得出,該用戶群的局部分時用電情況較為合理,但用電水平有待提高,分析人員應(yīng)根據(jù)實際情況對該用戶群進行調(diào)整,刺激該用戶群購電。
本文以數(shù)據(jù)挖掘事務(wù)之間強關(guān)聯(lián)規(guī)則為理論基礎(chǔ),結(jié)合電力營銷數(shù)據(jù)分析的實際需求,將大數(shù)據(jù)所需要的MapReduce 技術(shù)和適合電力營銷數(shù)據(jù)分析的關(guān)聯(lián)規(guī)則挖掘算法進行有機的結(jié)合,首先運用并行K-means 聚類技術(shù)對原始數(shù)據(jù)進行離散化的處理,進而構(gòu)建FP-growth 算法挖掘出行業(yè)、售電電壓、用電類別、用戶經(jīng)濟水平與分時用電量之間存在的強關(guān)聯(lián)規(guī)則,揭示出用傳統(tǒng)分析方法難以發(fā)現(xiàn)的售電規(guī)律性,使得傳統(tǒng)的業(yè)務(wù)效率不斷提高,最終實現(xiàn)資源的最佳配置。