陳宇娥 童瑩 郁清 蔡玉珍
摘? 要: 如何從海量數(shù)據(jù)中挖掘出氣象信息和潛在的大氣規(guī)律,成為氣象挖掘研究的重點。為了提高數(shù)據(jù)挖掘 的準(zhǔn)確性和效率,在分析了MapReduce和貝葉斯分類的基礎(chǔ)上,提出了在Hadoop平臺上利用MapReduce編程模型與樸素貝葉斯算法相結(jié)合的方法來選取預(yù)測屬性,預(yù)測一天中的最高溫度。在Hadoop平臺上的實驗結(jié)果表明,該并行數(shù)據(jù)挖掘方法能夠有效的處理海量氣象數(shù)據(jù),提高了運算效率并具有良好的擴展性。
關(guān)鍵詞: Hadoop; MapReduce; 樸素貝葉斯; 數(shù)據(jù)挖掘; 氣象預(yù)測
中圖分類號:TP301.6? ? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ?文章編號:1006-8228(2019)04-09-05
Abstract: With the continuous improvement of meteorological informatization, how to excavate meteorological information and potential atmospheric laws from massive data has become the focus of meteorological mining research. In order to improve the accuracy and efficiency of data mining, by analyzing MapReduce and Bayesian classification, a method combining MapReduce programming model with Naive Bayesian algorithm is proposed to select prediction attributes and predict the highest temperature in a day. Experiments have been carried out on Hadoop platform, and the results show that the parallel data mining method can effectively process massive meteorological data, improve computing efficiency and has good scalability.
Key words: Hadoop; MapReduce; Naive Bayesian; data mining; weather forecast
0 引言
當(dāng)前氣象預(yù)測在社會經(jīng)濟發(fā)展及人們?nèi)粘Ia(chǎn)生活中所發(fā)揮的作用日益突出,社會大眾對氣象預(yù)測[2]的準(zhǔn)確性、時效性則提出了更高的要求[3]。
貝葉斯分類是一種基于貝葉斯決策理論的最優(yōu)分類器,具有錯誤率小、算法時間空間開銷小、算法較穩(wěn)定、健壯性好等優(yōu)點。樸素貝葉斯分類[2]假設(shè)屬性之間相互獨立,假設(shè)每個屬性獨立地對分類結(jié)果發(fā)生影響,使得從有限的訓(xùn)練樣本中直接估計而得。另一方面氣象數(shù)據(jù)規(guī)模急劇膨脹變大,傳統(tǒng)的處理數(shù)據(jù)的效率已不滿足適應(yīng)現(xiàn)代天氣預(yù)測的要求。
根據(jù)以上情況,本文提出了Hadoop[4]下基于樸素貝葉斯算法的氣象數(shù)據(jù)預(yù)測算法。該算法以樸素貝葉斯為理論依據(jù),在Hadoop[5]平臺下利用MapReduce[6]進(jìn)行數(shù)據(jù)預(yù)處理、模型訓(xùn)練、精度評估三個過程并行處理,使得海量數(shù)據(jù)得到充分利用,最終取得更好的預(yù)測效果。
1 樸素貝葉斯
1.1 樸素貝葉斯分類器
在眾多的分類算法中,樸素貝葉斯分類器[7]是最早應(yīng)用于實踐中的有效方法之一。一般情況下,基于貝葉斯定理可以衍生出來很多相關(guān)技術(shù),而貝葉斯分類就是基于這些技術(shù)對數(shù)據(jù)分類的方法,樸素貝葉斯分類器就是基于貝葉斯方法構(gòu)造的分類模型,雖然簡單,但其性能不遜色于其他分類算法,并且擁有自己的特點。由于貝葉斯公式是用先驗推算后驗的公式,所以樸素貝葉斯分類技術(shù)也多用于對未知可能性的預(yù)測。其基本原理:首先獲得對象的先驗概率,然后利用公式計算出其后驗概率,也就是該對象屬于某一類的概率,最后把具有最大后驗概率的類作為該對象的預(yù)測結(jié)果。
在貝葉斯分類器諸多的算法中,樸素貝葉斯分類器具有算法邏輯簡單,運算速度快,塑造分類模型精煉,穩(wěn)定性強,高效率和高精度等優(yōu)點,在實際生活中得到了廣泛的應(yīng)用,樸素貝葉斯的結(jié)構(gòu)圖如圖1所示。
1.2 樸素貝葉斯的拉普拉斯修正
在由樣本數(shù)據(jù)得出的先驗概率中,當(dāng)某個分量在總樣本某個分類中(觀察樣本庫或是訓(xùn)練集)從來沒出現(xiàn)過,會導(dǎo)致整個測試實例的計算結(jié)果為0。為了避免其他屬性攜帶的信息被訓(xùn)練集中未出現(xiàn)的屬性值“抹去”,在估計先驗概率時要進(jìn)行“平滑處理”常用“拉普拉斯修正”(Laplacian correction)。具體來說,令N表示訓(xùn)練集D中可能的類別數(shù),Ni表示第i個屬性可能的取值數(shù),則修正后的公式為:
2.1 數(shù)據(jù)預(yù)處理
2.1.1 氣象數(shù)據(jù)集準(zhǔn)備
原始?xì)庀髷?shù)據(jù)集是源于江蘇省南京國家基準(zhǔn)氣候站提供的氣候資料日值數(shù)據(jù)集,該數(shù)據(jù)集是自2013年以來的日值數(shù)據(jù)集,包括:最高氣壓、最低氣壓、海平面氣壓、平均溫度、最高溫度、最低溫度、濕球溫度、水汽壓、能見度、降水量、蒸發(fā)量、極大風(fēng)速、極大風(fēng)速風(fēng)向、淺層地溫、深層地溫、日照時數(shù)等21個特征屬性。
2.1.2 數(shù)據(jù)清洗
氣象數(shù)據(jù)質(zhì)量的好壞,直接影響氣象預(yù)測的精度,原始數(shù)據(jù)集中存在數(shù)據(jù)格式不一致、缺省漏測的數(shù)據(jù)值,這嚴(yán)重影響到數(shù)據(jù)挖掘算法的效率,也嚴(yán)重影響了數(shù)據(jù)挖掘的結(jié)果,所以對數(shù)據(jù)進(jìn)行清洗。
首先,據(jù)中國氣象數(shù)據(jù)網(wǎng)顯示,除了蒸發(fā)量和極大風(fēng)速這兩個屬性的可疑率在1%左右,其他屬性的可疑率都在0.1%以下,這些相對于數(shù)據(jù)總量可以忽略不計。
其次,基于MapReduce編程模型下,統(tǒng)計缺省的數(shù)據(jù)集,發(fā)現(xiàn)缺省數(shù)據(jù)集占總數(shù)據(jù)集的不到1%,所以直接將數(shù)據(jù)缺省的剔除總數(shù)據(jù)集;然后,基于MapReduce編程模型下,對數(shù)據(jù)格式不一致的數(shù)據(jù)進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,使得最終的數(shù)據(jù)集中每一條數(shù)據(jù)都是可靠且完整統(tǒng)一的。
2.1.3 預(yù)測屬性的選取
預(yù)測屬性的選取直接影響到分類器的訓(xùn)練結(jié)果,在訓(xùn)練之前依據(jù)特征屬性之間的相關(guān)性大小的選取預(yù)測屬性,直接影響到算法的效率?;贛apReduce編程下完成日最高溫度和其他氣象屬性間的相關(guān)性的分析,對于任意兩個氣象屬性X和Y,其相關(guān)系數(shù)rxy的計算公式為:
2.1.4 數(shù)據(jù)離散化處理
根據(jù)氣溫在一年中的分布情況,把日最高氣溫按照高低分為嚴(yán)寒(3℃以下),寒冷(3℃~9.6℃),溫涼(9.6℃~18.5℃), 暖和(18.5℃~30.4℃),炎熱(30.4℃以上)5個級別。
數(shù)據(jù)預(yù)處理分為兩個任務(wù),一個是離散化預(yù)測屬性[8],另一個是輸出整理數(shù)據(jù)與溫度等級標(biāo)識,這兩個任務(wù)是獨立的可以采用MapReduce并行處理,步驟1負(fù)責(zé)預(yù)測屬性的區(qū)間離散化,步驟2負(fù)責(zé)輸出數(shù)據(jù)的整理與溫度等級標(biāo)識。
2.2 模型訓(xùn)練
按照算法流程,把氣象數(shù)據(jù)集按照4:1的比例分成訓(xùn)練集和數(shù)據(jù)集,訓(xùn)練集用于樸素貝葉斯分類器的訓(xùn)練,測試集用于后期的精度評估。模型訓(xùn)練MapReduce過程中,需要統(tǒng)計預(yù)測屬性和決策屬性在各個離散區(qū)間的樣本數(shù),計算其先驗概率和聯(lián)合概率。
2.3 精度評估
精度評估是利用測試集驗證樸素貝葉斯分類器的合理性,在MapReduce過程中,將測試集數(shù)據(jù)通過分類模型對溫度級別預(yù)測,得出的預(yù)測結(jié)果與測試集中真實的情況進(jìn)行對比,對預(yù)測結(jié)果的正確與否進(jìn)行標(biāo)識,計算出正確率和預(yù)測率,計算公式如下:
3 實驗分析
3.1 實驗環(huán)境與數(shù)據(jù)
本文實驗環(huán)境是Hadoop云平臺[10],是具有計算機節(jié)點的偽分布式集群,其效果與完全分布式集群一樣。電腦配置為2.4G雙核CPU、8G內(nèi)存、100G磁盤、Linux CentOS7.0、Hadoop1.0.2版本。
實驗數(shù)據(jù)采自于江蘇省南京國家基準(zhǔn)氣候站從2013年以來的數(shù)據(jù)[11],包括日最高溫度、日最低溫度、降水量、蒸發(fā)量、海平面氣壓、相對濕度、日照時數(shù)、淺層地溫、深層地溫等21個因素。
3.2 實驗結(jié)果與分析
3.2.1 相關(guān)性系數(shù)
通過對數(shù)據(jù)的清除處理,將原數(shù)據(jù)缺省的,格式不正確的數(shù)據(jù)全部刪除于總數(shù)據(jù)集。然后計算各個預(yù)測屬性與日最高氣溫之間的相關(guān)系數(shù)。計算結(jié)果如表2所示。
3.2.2 精度評估
本文的實驗預(yù)測率與準(zhǔn)確率如表3所示,其中V0代表嚴(yán)寒,V1代表寒冷,V2溫涼,V3暖和,V4炎熱。
由表3可以看出,采用樸素貝葉斯分類器在預(yù)測寒冷、溫涼、暖和、炎熱四種級別時,預(yù)測率和正確率都達(dá)到不錯的效果,說明預(yù)測日最高氣溫的級別與真實情況相符;而在寒冷中的預(yù)測率和正確率都不是很高,這主要是因為數(shù)據(jù)集中寒冷的天氣太少,在一定程度上影響了測試的結(jié)果。
4 結(jié)束語
本文對Hadoop下基于樸素貝葉斯對氣象數(shù)據(jù)進(jìn)行挖掘研究,采用了將樸素貝葉斯與Hadoop相結(jié)合的處理數(shù)據(jù)的新方法,在預(yù)測日最高氣溫中具有較高的預(yù)測率和正確率。該方法具有以下特點:①可以充分利用海量數(shù)據(jù),有效地避免了信息的丟失;②在大量樣本下,用較為簡單的算法達(dá)到了不為遜色的結(jié)果;③能夠處理不完全、不精確的訓(xùn)練數(shù)據(jù)集;④對連續(xù)數(shù)據(jù)的離散化采用較為簡單的PKI算法,對氣象數(shù)據(jù)某些分布不是很均勻的屬性來說,離散效果還有待提高。在數(shù)據(jù)量海量增加的今天,此方法提供了在海量數(shù)據(jù)中挖掘有用的信息的新思路,可在移動互聯(lián)網(wǎng)、電子商務(wù)等諸多領(lǐng)域的應(yīng)用中進(jìn)一步去研究。
參考文獻(xiàn)(References):
[1] 喬梁.數(shù)據(jù)挖掘在氣象服務(wù)中的應(yīng)用研究[J].信息通信,2016.2:96-97
[2] 張碩.張永寧.大數(shù)據(jù)時代氣象數(shù)據(jù)新聞的探索與實踐—以中國天氣網(wǎng)為例[J].NEW MEDIA RESEARCH,2017.22:120-122
[3] 張晨陽,劉利民,馬志強.云計算下基于貝葉斯分類的氣象數(shù)據(jù)挖掘研究[D].內(nèi)蒙古工業(yè)大學(xué),2014.
[4] 苑立民,郝成亮,劉昶,徐峰,潘建宏,張凱.基于Hadoop生態(tài)環(huán)境的大數(shù)據(jù)平臺在電網(wǎng)公司海量數(shù)據(jù)準(zhǔn)實時處理中的應(yīng)用[J].大眾用電,2017增刊.1:38-41
[5] 李斌,張建平,劉學(xué)軍.基于Hadoop的不確定異常時間序列檢測[J].傳感技術(shù)學(xué)報,2015.28(7):1066-1072
[6] 陳堅釗.MapReduce的工作機理及其應(yīng)用研究[D].華僑大學(xué),2013.
[7] 趙力.基于貝葉斯壓縮感知的說話人識別方法[J].電子器件,2015.38(5):1135-1137
[8] 謝作將.面向樸素貝葉斯算法的離散化方法研究[D].北京交通大學(xué),2008.
[9] Yang Y,Webb G I.Proportional k-Interval Discretizationfor Bavie-Bayes Classifiers[J]. Proc.of the Twelfth European Conf.on Machine Learning,2001.2167:564
[10] 劉君.基于Hadoop技術(shù)的氣象數(shù)據(jù)采集及數(shù)據(jù)挖掘平臺的研究[D].天津理工大學(xué),2015.
[11] 閆永剛.基于Hadoop的KNN分類的氣象數(shù)據(jù)預(yù)測研究[D].南京信息工程大學(xué),2012.