陳宇娥 童瑩 郁清 蔡玉珍



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