李 彥 王 穎 廖一鳴 趙文碩
(華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院 北京 102206)
?
MapReduce框架下運(yùn)用K-modes聚類算法進(jìn)行日負(fù)荷曲線預(yù)測(cè)*
李彥王穎廖一鳴趙文碩
(華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院北京102206)
摘要提出一種MapReduce框架下運(yùn)用K-modes聚類算法,并基于電力大數(shù)據(jù)對(duì)日負(fù)荷曲線進(jìn)行預(yù)測(cè)的方法。將預(yù)測(cè)結(jié)果與傳統(tǒng)K-modes聚類算法的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,結(jié)果表明:K-modes聚類算法進(jìn)行分布式處理的方法是可行的,使用這種方法對(duì)日負(fù)荷曲線進(jìn)行預(yù)測(cè)效果更好,提高了預(yù)測(cè)的精確性,更好地指導(dǎo)電力生產(chǎn)。
關(guān)鍵詞大數(shù)據(jù); MapReduce; K-modes聚類算法; 日負(fù)荷曲線預(yù)測(cè)
Daily Load Curve Forecasting by Using K-modes Clustering Algorithm Under the Framework of MapReduce
LI YanWANG YingLIAO YimingZHAO Wenshuo
(School of Control and Computer Engineering, North China Electric Power University, Beijing102206)
AbstractA method using K-modes clustering algorithm under MapReduce framework, and forecasting daily load curve based on the method of power data is proposed. The prediction results is compared with the traditional K-modes clustering algorithm, and the results were analyzed. Results show that: the K-modes clustering algorithm for distributed processing method is feasible, and this method can predict daily load curve better, and improve the precision of the prediction, guide the electric power production better.
Key Wordsbigdata, MapReduce, K-modes clusteringal gorithm, dailyload forecasting
Class NumberTP181
1引言
國(guó)家電網(wǎng)是當(dāng)今世界上最大的自動(dòng)化電能計(jì)量系統(tǒng)。其收集并且保存的數(shù)據(jù)總量達(dá)10PB,國(guó)家電網(wǎng)即將迎來大數(shù)據(jù)時(shí)代[1]。對(duì)電網(wǎng)而言,根據(jù)所采集大量用戶的用電數(shù)據(jù),運(yùn)用大數(shù)據(jù)技術(shù)對(duì)日負(fù)荷曲線進(jìn)行精確地預(yù)測(cè)具有重要意義。
MapReduce是一種能處理大規(guī)模數(shù)據(jù)集的并行運(yùn)算問題的編程模型。MapReduce框架有一定的應(yīng)用范圍,可伸縮性便是對(duì)算法最重要的要求,即分到每個(gè)節(jié)點(diǎn)的任務(wù)一定是相同的、獨(dú)立的。K-modes聚類算法便具有可伸縮性,且利用這種算法對(duì)日負(fù)荷曲線進(jìn)行預(yù)測(cè)是一種常見的預(yù)測(cè)方法。國(guó)內(nèi)外針對(duì)這種預(yù)測(cè)方法進(jìn)行了大量的研究[4~7],因此可嘗試將其運(yùn)用于Mapreduce框架下對(duì)日負(fù)荷曲線進(jìn)行預(yù)測(cè)。
2MapReduce框架及K-modes算法
2.1MapReduce框架
MapReduce將存儲(chǔ)在HDFS中的大規(guī)模數(shù)據(jù)分解為小規(guī)模數(shù)據(jù)后分發(fā)給集群中的多個(gè)節(jié)點(diǎn)去協(xié)作完成。
一個(gè)MapReduce任務(wù)由四部分部分構(gòu)成:客戶端;JobTracker;TaskTracker;分布式文件系統(tǒng)。MapReduce任務(wù)分為兩個(gè)階段:Map階段和Reduce階段。Map階段執(zhí)行分解后的小任務(wù)并得到中間結(jié)果,Reduce階段負(fù)責(zé)把這些中間結(jié)果匯總。具體執(zhí)行過程如圖1所示。
圖1 MapReduce框架執(zhí)行過程
2.2K-modes算法
(1)
式中,n×k的隸屬度矩陣為U;對(duì)象集X中所包含元素的個(gè)數(shù)表示為n;所劃分類的個(gè)數(shù)表示為k:Z={z1,z2,…,zk}是k個(gè)對(duì)象構(gòu)成的非空有限集合;zl表示所劃分類的類中心。
d(xi,zl)為對(duì)象xi與類中心zl之間簡(jiǎn)單匹配的相異度量。Ui,l表示對(duì)象xi隸屬于第i類的程度。
為使目標(biāo)函數(shù)在滿足約束條件的情況下趨近極小化,K-modes算法利用基于頻率的方法交替更新隸屬度矩陣和聚類中心,直至目標(biāo)函數(shù)收斂。[8]
3K-modes聚類算法應(yīng)用MapReduce框架
3.1K-modes聚類算法應(yīng)用MapReduce框架的思路
聚類算法是一種迭代式算法,數(shù)據(jù)完成一遍后,由結(jié)束條件來決定是否需要進(jìn)行下一次迭代。
具體運(yùn)行步驟: 1) 假設(shè)數(shù)據(jù)集需要被分成k簇,隨機(jī)選出k個(gè)樣本作為初始中心點(diǎn)。 2) 計(jì)算出距各樣本差異最小的中心點(diǎn),將樣本劃入該中心點(diǎn)所在的簇,并算出各個(gè)屬性的眾數(shù)。 3) 這一輪結(jié)束,算出目標(biāo)函數(shù)的值,然后使用每簇中各個(gè)屬性的眾數(shù)替換中心點(diǎn)相應(yīng)屬性的值。 4) 重新計(jì)算每個(gè)樣本到新的簇中心的距離,若某個(gè)樣本與其他簇中心的差異相較于與本簇中心的差異小,那么將其劃分到差異較小的那一簇中,然后再次計(jì)算各個(gè)簇的屬性眾數(shù)。 5) 重復(fù)3)、4)步驟直到目標(biāo)函數(shù)的值不變。
3.2實(shí)例說明
以日負(fù)荷峰點(diǎn)的分為兩類的過程為例說明上述執(zhí)行過程,采用數(shù)據(jù)為北京地區(qū)相關(guān)數(shù)據(jù),如表1。
執(zhí)行步驟: 1) 1~6月分到節(jié)點(diǎn)Mapper1,7~12月分到節(jié)點(diǎn)Mapper2。然后由Reducer節(jié)點(diǎn)進(jìn)行匯總。 2) 選擇A、B兩中心點(diǎn)作為初始中心分別取值為:CenterA=(16:00~17:00=7,17:00~18:00=62,18:00~19:00=22,19:00~20:00=2);CenterB=(16:00~17:00=2,17:00~18:00=20,18:00~19:00=73,19:00~20:00=5)Mapper讀取數(shù)據(jù)并進(jìn)行對(duì)比。 3) 每個(gè)節(jié)點(diǎn)做兩個(gè)工作:(1)比較各月與兩個(gè)中心點(diǎn)的距離,將該月份歸到距離較小的那組。(2)計(jì)算眾數(shù)矩陣。結(jié)果如表2和表3所示。 4) Reduce節(jié)點(diǎn)得到臨時(shí)結(jié)果,并對(duì)其進(jìn)行匯總。
表1 北京地區(qū)2012~2013年16:00~20:00段
表2 Mapper節(jié)點(diǎn)1統(tǒng)計(jì)結(jié)果
表3 Mapper節(jié)點(diǎn)2統(tǒng)計(jì)結(jié)果
5) Main函數(shù)進(jìn)行代價(jià)的比較,若與前一次代價(jià)相同,程序結(jié)束,若比前一個(gè)代價(jià)小,則更新中心點(diǎn),直到代價(jià)不變或變大為止。
結(jié)果被分為兩類:第一類:11、12、1、2、3、4月;第二類:5、6、7、8、9、10月。經(jīng)查閱相關(guān)資料,第一類也被稱為早峰點(diǎn)負(fù)荷月,第二類也被稱為晚峰點(diǎn)負(fù)荷月。
4預(yù)測(cè)結(jié)果以及結(jié)果對(duì)比
日負(fù)荷曲線存在一定的周期性和規(guī)律性。相比于對(duì)日負(fù)荷曲線進(jìn)行獨(dú)立分析,對(duì)其歷史樣本進(jìn)行聚類,能夠更好反映日負(fù)荷曲線規(guī)律性。[9]
然而負(fù)荷歷史數(shù)據(jù)的絕對(duì)數(shù)據(jù)數(shù)量級(jí)不同,計(jì)量單位也不統(tǒng)一,應(yīng)先對(duì)數(shù)據(jù)進(jìn)行歸一化處理。[10]處理后的歷史數(shù)據(jù)聚類分類結(jié)束后,結(jié)合分類結(jié)果和待預(yù)測(cè)日相關(guān)數(shù)據(jù)預(yù)測(cè)出該日的日負(fù)荷曲線。
本文利用北京地區(qū)2012~2013年度日負(fù)荷曲線及氣象等歷史數(shù)據(jù)。預(yù)測(cè)了2013年四個(gè)季節(jié)的典型日負(fù)荷曲線。分別選取4月15日、夏季最高負(fù)荷日、10月15日和冬季最高負(fù)荷日分別作為春夏秋冬的典型日。預(yù)測(cè)結(jié)果如圖2~5所示。
圖2 春季典型日負(fù)荷曲線預(yù)測(cè)圖
圖3 夏季典型日負(fù)荷曲線預(yù)測(cè)圖
圖4 秋季典型日負(fù)荷曲線預(yù)測(cè)圖
圖5 冬季典型日負(fù)荷曲線預(yù)測(cè)圖
以冬季典型日負(fù)荷曲線為例,大數(shù)據(jù)方法測(cè)試值平均誤差是8.42,傳統(tǒng)方法測(cè)試值平均誤差是27.42。春季、夏季、秋季的典型日負(fù)荷曲線也有類似結(jié)論。從中可以看出使用大數(shù)據(jù)方法對(duì)日負(fù)荷曲線進(jìn)行預(yù)測(cè)具有更高的精確性。
5結(jié)語
本文所得結(jié)論: 1) 在MapReduce框架下使用K-modes聚類算法對(duì)電力大數(shù)據(jù)進(jìn)行處理的思路可行。 2) 與傳統(tǒng)方法的預(yù)測(cè)結(jié)果對(duì)比發(fā)現(xiàn)大數(shù)據(jù)方法預(yù)測(cè)結(jié)果具有更高的精確性。
發(fā)現(xiàn)的問題: 1) K-modes是迭代型算法,計(jì)算耗時(shí)長(zhǎng)。需優(yōu)化初始中心選擇、提升算法效率。 2) 大數(shù)據(jù)應(yīng)用于智能電網(wǎng)過程中,由于數(shù)據(jù)量大、數(shù)據(jù)質(zhì)量低、硬件設(shè)備缺乏等原因。大數(shù)據(jù)的很多構(gòu)想處于理論階段,距實(shí)際生產(chǎn)尚有一段時(shí)間。
參 考 文 獻(xiàn)
[1] 李偉,張爽.基于Hadoop的電網(wǎng)大數(shù)據(jù)處理探究[J].電子測(cè)試,2014(1):5-6.
LI Wei, ZHANG Shuang. Research on the large data processing of power network based on Hadoop[J]. Electronic Test,2014(1):5-6.
[2] 李偉衛(wèi).基于Hadoop平臺(tái)的數(shù)據(jù)挖掘技術(shù)研究[D].咸陽:西北農(nóng)林科技大學(xué),2013:24-27.
LI Weiwei. Research on data mining technology based on Hadoop platform[D]. Xianyang: Northwest Agriculture and Forestry University,2013:24-27.
[3] 羅軍舟.云計(jì)算:體系架構(gòu)與關(guān)鍵技術(shù)[J].通信學(xué)報(bào),2011(7):11-14.
LUO Junzhou. Cloud Computing: Architecture and key technologies[J]. Communications Journal,2011(7):11-14.
[4] 劉莉,王剛.K-means聚類算法在負(fù)荷曲線分類中的應(yīng)用[J].電力系統(tǒng)保護(hù)與控制,2011,39(23):2-3.
LIU Li, WANG Gang. K-means clustering algorithm in the load curve classification[J]. Power System of Protection and Control,2011,39(23):2-3.
[5] 李翔,顧潔.運(yùn)用聚類算法預(yù)測(cè)地區(qū)電網(wǎng)典型日負(fù)荷曲線[J].電力與能源,2013,1:47-50.
LI Xiang, GU Jie. The use of clustering algorithm to predict the regional power grid typical day load curve[J]. Power and Energy,2013,1:47-50.
[6] 陳柔伊,張堯,武志剛,等.改進(jìn)的模糊聚類算法在負(fù)荷預(yù)測(cè)中的應(yīng)用[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2005,3:3-5.
CHEN Rouyi, ZHANG Yao, WU Zhigang, et al. Application of improved fuzzy clustering algorithm in load forecasting[J]. Power System and Its Automation,2005,3:3-5.
[7] Huang Z X. Extensions to the K-means Algorithms for Clutering Large Data Sets with Categorical Values[J]. Data Mining and Knowledge Discovery,1998(2):225-227.
[8] 李飛.初始聚類中心優(yōu)化的K-means算法[J].計(jì)算機(jī)科學(xué),2002,29(7):22-25.
LI Fei. Initial clustering center optimization of K-means algorithm[J]. Computer Science,2002,29(7):22-25.
[9] 艾學(xué)勇.地區(qū)電網(wǎng)典型日負(fù)荷曲線預(yù)測(cè)方法研究[D].上海:上海交通大學(xué),2009,33.37.
AI Xueyong. Study on the typical daily load curve forecasting method of regional power network[D]. Shanghai: Shanghai JiaoTong University,2009,33.37.
[10] 張?jiān)虑?陳彩棠.基于新相異度量的模糊K-Modes聚類算法[J].電腦開發(fā)與應(yīng)用,2012,5:32-34.
ZHANG Yueqin, CHEN Caitang. The development and application of[J]. based on the new K-Modes clustering algorithm,2012,5:32-34.
中圖分類號(hào)TP181
DOI:10.3969/j.issn.1672-9722.2016.02.011
作者簡(jiǎn)介:李彥,女,碩士研究生,研究方向:軟件工程。王穎,女,教授,研究方向:數(shù)據(jù)庫應(yīng)用技術(shù)、軟件架構(gòu)設(shè)計(jì)、嵌入式系統(tǒng)、WebGIS研究。廖一鳴,男,碩士研究生,研究方向:軟件工程。趙文碩,女,碩士研究生,研究方向:軟件工程。
*收稿日期:2015年8月12日,修回日期:2015年9月22日