陳宇娥 童瑩 郁清 蔡玉珍



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