王立俊,杜建華,劉驥超,王雙雙,謝寒生,趙 冰
(1.海南省氣象信息中心,???570203; 2.海南省南海氣象防災減災重點實驗室,???570203)
氣象數(shù)據(jù)為一類典型的時序數(shù)據(jù),在防災減災以及服務農(nóng)業(yè)、交通、旅游等領域都有重要意義,氣象數(shù)據(jù)的處理與分析準確高效直接關系到預報服務的質量[1-5]。《“十四五”氣象信息網(wǎng)絡業(yè)務發(fā)展規(guī)劃》明確我國未來氣象業(yè)務的發(fā)展方向,主要是優(yōu)化結構流程,提高氣象數(shù)據(jù)的標準化和統(tǒng)一化水平,促進信息網(wǎng)絡的智能化發(fā)展,建立起高效協(xié)同的數(shù)字氣象業(yè)務體系[6]。對于氣象數(shù)據(jù)來說,其在生產(chǎn)過程中秒級數(shù)據(jù)流量達到6萬次/秒,大數(shù)據(jù)、云計算技術在大量氣象數(shù)據(jù)的分析領域的應用,為解決上述問題提供支持[7-9]。
Bilgin等[10]針對土耳其的氣象數(shù)據(jù)進行特征提取,確定出相關溫度特性,基于這些特性劃分出土耳其的氣候區(qū)。Reikard[11]基于頻域算法對復雜的氣象數(shù)據(jù)進行處理,且引入了神經(jīng)網(wǎng)絡工具,在此基礎上建立起基于時頻域的BP網(wǎng)絡氣象預測模型。根據(jù)仿真分析結果表明這種模型的預測準確率達到較高水平。邱聲春等[12]提出一種數(shù)據(jù)挖掘和數(shù)據(jù)融合相結合的預測方法,并將其運用到天氣預報領域。Nui等[13]提出距離度量學習方法用于氣象數(shù)據(jù)挖掘,將其應用于2016年在肯尼迪等機場收集的天氣數(shù)據(jù)集,與其他傳統(tǒng)方法相比,在分類精度上顯示出非常有潛力的優(yōu)勢。Farouk等[14]運用決策樹、KNN和Naive Bayes算法研究了數(shù)據(jù)挖掘技術在預測不同的大氣現(xiàn)象中的應用,并對每個模型進行評估。王丹妮等[15]通過對廣東省氣象觀測數(shù)據(jù)挖掘分析,以廣東省農(nóng)業(yè)氣象災害中的高溫為例,預測可能存在的災害及其等級。陳凱等[16]在進行降雨預測時,引入了加權最近鄰算法,基于這種算法進行預測時,設置降雨量作為類,氣象因素設置為分類因子,計算分析確定出二者的相關系數(shù),將所得結果賦予因子的權重,據(jù)此建立起相關區(qū)域的降雨預報模型??滦阄腫17]建立起海洋氣象災害預測系統(tǒng),并對這種系統(tǒng)的預測性能做了仿真研究。胡冬梅[18]研究了城市空氣污染問題,并引入了氣象、交通相關的因素建立起城市空氣污染預測模型,對變量之間相關性進行分析,根據(jù)仿真分析結果表明,這種系統(tǒng)表現(xiàn)出較高的應用價值。王春政等[19]在對氣象數(shù)據(jù)挖掘處理時,引入了貝葉斯算法、模糊K鄰近算法,通過這些算法對一定時段內全美歷史航班和氣象數(shù)據(jù)進行分析,其所得結果表明節(jié)點預測誤差小于5分鐘,很好地滿足航空氣象預測要求。還有少部分學者為提高處理海量氣象數(shù)據(jù)的效率,將其與Hadoop平臺結合。張晨陽等[20]在一定簡化處理基礎上建立起基于MapReduce的數(shù)據(jù)約簡算法與樸素貝葉斯分類算法,對這種算法的性能進行研究,發(fā)現(xiàn)其在處理海量氣象數(shù)據(jù)方面的優(yōu)勢很顯著,且可以根據(jù)應用要求進行適當?shù)臄U展。王昊等[21]為了提高傳統(tǒng)樸素貝葉斯分類器對氣象數(shù)據(jù)挖掘的精度,擁有更高的處理海量數(shù)據(jù)的效率,建立起基于離散貝葉斯網(wǎng)絡的數(shù)據(jù)挖掘模型,且進行了實證分析。
人工智能、大數(shù)據(jù)、云平臺、物聯(lián)網(wǎng)技術在氣象數(shù)據(jù)處理中的應用,極大地提升了氣象業(yè)務能力和服務水平。傳統(tǒng)的氣象數(shù)據(jù)挖掘大部分為單機模式,在數(shù)據(jù)量不斷增加和算法更復雜形勢下,氣象預測的實時性明顯降低,同時也會出現(xiàn)硬件故障等相關的損失[22]。因此,本文基于主流的開源云架構Apache Hadoop,建立氣象大數(shù)據(jù)云平臺,在此基礎上結合決策樹(CART,classification and regression trees)數(shù)據(jù)挖掘算法,并行創(chuàng)建隨機森林模型,對處理海量氣象數(shù)據(jù)提供支持,為相關研究起到參考作用。
在數(shù)據(jù)挖掘領域CART算法被大量應用,其可以高效的進行分類預測,適應性較強,對離散和連續(xù)數(shù)據(jù)都可以高效的分類。CART算法主要是進行數(shù)據(jù)類型差異實現(xiàn)分類作用。設置判定指標時主要是基于如下方法:
1)離散型數(shù)據(jù)——選擇GINI值作為分類依據(jù)。
GINI值和分類后的“純凈度”存在正相關關系,其數(shù)值大則可判斷選擇的特征更優(yōu)。 一般條件下對于樣本集S,可通過如下公式計算出GINI:
(1)
在上式當中,S代表的為樣本數(shù)據(jù)集;Pi代表的為分類結果中第i個種類對應頻率。
對含N個數(shù)據(jù)的集S,基于A的第i個屬性值進行劃分而分為兩部分,劃分后GINI的表達式為:
(2)
在上式當中,n1,n2各自代表的是樣本子集S1,S2對應樣本數(shù)。
對于屬性A,先帶入數(shù)據(jù)確定出GINI系數(shù),然后進行排序確定出其中的最小值,設置為此特征條件下的最優(yōu)二分方案:
mini∈A(GINIA,i(S))
(3)
對集合S,帶入數(shù)據(jù)計算出全部特征的最好二分方案,進行排序后得到最小值,將其設置為集合S的此種方案:
minA∈Attributemini∈A(GINIA,i(S))
(4)
2)連續(xù)型數(shù)據(jù)——選擇σ值,進行分類預測。
回歸樹方法在進行預測分析時,設置σ來評價分類效果,確定出σ最小的特征及值,對應于最佳的分類特征和值。一般條件下σ值大則可判斷出分類后子集的“差異性”大,相反情況下則可判斷出此特征下,可取得更優(yōu)分類結果。
對連續(xù)型集合S,總方差表達式為:
(5)
在上式當中:μ代表的為樣本集針對S中預測結果之下的均值;yk代表的為第k個樣本對應預測結果。
集合S中含有N個樣本條件下,基于特征A的第i個特征值,對其進行二分處理,劃分后可通過如下方法計算出σ:
σA,i(S)=σ(S1)+σ(S2)
(6)
接著對特征A,帶入數(shù)據(jù)進行分析確定出任意特征進行劃分條件下的σ,然后排序得到最小值,這樣可確定出A下的最優(yōu)分類方案:
mini∈A(σA,i(S))
(7)
對集合S,帶入數(shù)據(jù)進行處理確定出全部特征的最優(yōu)分裂方案,確定出其中最小者作為集合S的此類方案:
minA∈Attributemini∈A(σA,i(S))
(8)
這樣處理后得到的特征A及值,就表示為集合S的最優(yōu)二分屬性和相關的屬性值。
氣象數(shù)據(jù)云平臺存儲的數(shù)據(jù)種類不斷增加,且數(shù)據(jù)類型也日益復雜,涉及到雷達、衛(wèi)星、地面、高空、海洋等相關的氣象數(shù)據(jù),基于組織形式不同對這些數(shù)據(jù)進行劃分,可分為結構化和非結構化數(shù)據(jù)。分析氣象數(shù)據(jù)特征,設計對應的大數(shù)據(jù)云平臺整體解決方案,用于對天氣狀況進行預測、分類,使其應用到農(nóng)業(yè)、交通、旅游等領域。氣象資料和服務數(shù)據(jù)大部分為視頻、音頻、文本,在長時間運行后對應的數(shù)據(jù)量急劇增長,符合大數(shù)據(jù)的4 V特點。
在大數(shù)據(jù)領域中,Hadoop是最著名的大數(shù)據(jù)處理框架之一,它以可靠、高效、可伸縮的方式進行大數(shù)據(jù)的存儲、處理和分析。在經(jīng)濟社會發(fā)展過程中,隨著信息化水平不斷提高,數(shù)據(jù)量與日俱増,在對這些數(shù)據(jù)進行處理時,傳統(tǒng)的隨機森林模型開始不滿足應用要求,這樣就需要引入新的數(shù)據(jù)分析技術。如為提高算法的處理性能,可引入并行化的決策樹算法,這樣可以綜合利用更多的資源進行同步處理。對并行化相關的算法,其并行化時可選擇的模式主要有三類,其一為數(shù)據(jù)間并行,后兩種則為屬性間、節(jié)點間的并行方式,其各有一定的適用范圍。運用決策樹算法,基于MapReduce并行創(chuàng)建CART樹形成隨機森林模型,建立氣象業(yè)務預測以及各領域服務功能模塊。
基于隨機森林算法的特征和MapReduce性能,考慮到研究要求,采用下述的并行化策略:對原始數(shù)據(jù)的隨機采樣的方式選取,建立相關決策樹模型過程中,隨機篩選對應的屬性,對應的樣本集保持獨立。因而建立的單棵決策樹間不存在相關性。這種模型在進行并行化操作時,主要應用MapReduce編程實現(xiàn),相關的工作流程可劃分為,設置決策樹、確定出森林模型、結果投票。在MapReduce中并行創(chuàng)建CART樹,構建隨機森林模型并行化過程如圖1所示。
圖1 并行創(chuàng)建CART樹構建隨機森林模型
具體分析圖1進而可發(fā)現(xiàn),這種模型建立過程中主要是并行化單棵樹的建立過程。首先基于Map方法切片處理HDFS中數(shù)據(jù),接著通過Bagging隨機抽樣,將抽取后的數(shù)據(jù)劃分為訓練集和屬性集,然后分布到集群的各節(jié)點上,在此基礎上利用并行化Map任務進行分析,而得到其中各屬性的Gini值,將所得結果輸出到Reduce中,利用Reduce功能進行處理,而得到最優(yōu)的屬性、節(jié)點的編號,這樣既可以獲得所需要的單棵決策樹,對樹的參數(shù)進行輸出后,對多棵CART樹進行一定的集群映射而得到隨機森林。在一定投票基礎上匯總多棵樹的結果,在此處理時可調用Map、Reduce函數(shù)。
在氣象大數(shù)據(jù)云平臺下,在完成收集氣象相關數(shù)據(jù)處理后,創(chuàng)建相應的預報預警。此時將相關樣本集經(jīng)由MapReduce并行創(chuàng)建CART樹形成隨機森林,訓練模型,根據(jù)相關氣象數(shù)據(jù)進行預測天氣預測或分類,并由控制器將新生成的氣象情況以及其它相關附加信息等一并傳輸至各個功能模塊中,使得氣象大數(shù)據(jù)云平臺中應用層功能模塊能夠實現(xiàn)動態(tài)數(shù)據(jù)更新,更好的為農(nóng)業(yè)、交通、旅游等領域服務。
Hadoop是谷歌公司研發(fā)的高性能云計算平臺,在分布式計算領域被廣泛應用。HDFS是Hadoop的分布式文件系統(tǒng),也是Hadoop系統(tǒng)的最重要組成單元,HDFS集群中包含了大量的服務器,這樣可以通過并行模式來高效的處理海量氣象數(shù)據(jù)。在MapReduce模型下,程序可以高效快速的處理大量集群上的海量數(shù)據(jù)。
Hadoop云平臺在不斷發(fā)展改進基礎上其性能水平明顯提升,功能組件也日益豐富,滿足各領域的分析要求。其中的模塊主要包括固定模塊以及特定功能模塊,根據(jù)相關資料可知其中的核心模塊主要如下。
1)Hadoop Common:為其中的基礎模塊,可為其他單元的功能實現(xiàn)提供支持,這種模塊中設置了很多公用API接口,與HTTP認證功能密切相關。
2)HDFS:主要是對海量數(shù)據(jù)進行分布式存儲和處理,在數(shù)據(jù)處理時依據(jù)一次寫入多次讀取相關原則,此外還可提供流式數(shù)據(jù)訪問。
3)YARN:為一種全新框架,發(fā)展初期的MapReduce功能繁雜,對系統(tǒng)運行可靠性產(chǎn)生很不利影響,因而此后分布的版本中獨立的處理數(shù)據(jù)和資源,這樣就通過YARN模塊進行資源管理,且可實現(xiàn)一定調度功能
4)MapReduce:為一種高性能的分布式計算框架,在進行編程過程中不需要考慮到數(shù)據(jù)存儲相關因素,從而大幅度簡化了編程過程。主要是編寫Map()、Reduce()方法就可滿足要求。此種平臺的系統(tǒng)結構如圖2。
圖2 Hadoop生態(tài)系統(tǒng)架構
Hadoop中的組件主要如下。
1)ZooKeeper:主要是提供集群相關的協(xié)調服務,主要是改進YARN形成的,在應用過程中可實現(xiàn)的功能主要包括集群管理、分布式鎖等,可據(jù)此實現(xiàn)特定的功能。
2)Flume:主要的作用是進行日志采集和傳輸,對應的采集模式有兩種,分別為在單服務器和集群上采集,對獲得的日志進行匯總,然后在一定統(tǒng)一格式基礎上發(fā)送到HDFS中。
3)Spark:為一種高性能的計算系統(tǒng),其功能強大,可實現(xiàn)機器學習、圖形計算相關的功能。此外也有很強的支持性,對Java、SQL等相關的語言都支持。可以運行在EC2、YARN框架之上而滿足應用要求。
4)HBase:這種模塊主要是基于“Bigtable”思想建立的,可以看作為一種特殊的分布式數(shù)據(jù)庫,可以為集群的協(xié)調提供支持。
5)Hive:在其支持下,用戶可對HDFS上的數(shù)據(jù)通過SQL相關的語言進行讀寫和查詢處理,對降低編程難度有重要意義,使得用戶對Hadoop上手更容易。
MapReduce在進行數(shù)據(jù)處理時的操作主要包括Map、Shuffle、Reduce階段,如圖3。以下對這三個階段的工作內容和特征進行說明:
1)Map階段。在此階段處理過程中,應用程序基于輸入的數(shù)據(jù)進行分片處理,建立起一定量的Map任務,接著對分片數(shù)據(jù)依據(jù)相關的規(guī)則映射形成一定量鍵值對,然后通過Map()方法處理這些鍵值對,處理后的結果保持為
2)Shuffle階段。上一階段處理后的結果為無規(guī)則的,然后通過Shuffle()方法進一步轉換處理,形成規(guī)則的數(shù)據(jù)輸出。在此環(huán)節(jié)處理時主要是合并同大小的鍵值對,進行排序后形成相應的鍵值對列表。
3)Reduce階段。上一環(huán)節(jié)處理后的數(shù)據(jù)通過Reduce()方法處理,將上述的列表進行匯總,且基于特定的函數(shù)輸出。
在實際處理時,用戶只需要編寫出Map()和Reduce()方法,在運行過程中程序可自動的調用這些方法進行操作,從而滿足特定的功能要求。
圖3 MapReduce任務流程
圖4 氣象大數(shù)據(jù)云平臺總體架構
氣象大數(shù)據(jù)云平臺的構建基于Hadoop集群、Impala集群和GBase集群構建。其中大數(shù)據(jù)云平臺的數(shù)據(jù)源層中全部與氣象密切相關的數(shù)據(jù)進行適當?shù)姆诸愄幚砗?,形成一定量的?shù)據(jù)塊,這些數(shù)據(jù)可基于特征和來源不同進行劃分,而分為互聯(lián)網(wǎng)數(shù)據(jù)、結構化數(shù)據(jù)、氣象外部數(shù)據(jù)等。Impala集群在運行過程中可接收結構化和基礎數(shù)據(jù),且調用函數(shù)來實現(xiàn)數(shù)據(jù)處理功能。Hadoop集群可對非結構化數(shù)據(jù)進行存儲,其中包含了HDFS,HBase相關的單元。GBase集群在也應用過程中可對相關專題應用數(shù)據(jù)進行存儲,系統(tǒng)上層設置Solr集群,這樣在運行過程中可充分利用Solr的集中式配置、容錯相關功能,滿足高索引和訪問相關的數(shù)據(jù)應用需求。Solr集群可對索引數(shù)據(jù)進行存儲,其上層設置了氣象數(shù)據(jù)統(tǒng)一服務接口,在運行過程中大數(shù)據(jù)云平臺,氣象管理人員可通過這一接口來獲取不同類型的數(shù)據(jù)。此外,還可以在后臺上部署各種格式的數(shù)據(jù),對相關數(shù)據(jù)進行統(tǒng)一集中的展示,為其后的處理提供支持。
在以上基礎上建立起大數(shù)據(jù)可視化平臺,在運行過程中其可以實現(xiàn)復雜的管理功能,如調度管理、元數(shù)據(jù)管理、分布式ETL管理、質量管理,此外也可以實現(xiàn)數(shù)據(jù)共享功能。為系統(tǒng)的運行維護以及功能實現(xiàn)提供支持??傮w架構分為基礎設施層、數(shù)據(jù)處理與管理層、應用層,氣象大數(shù)據(jù)云平臺總體架構如圖4。在運行過程中為確保數(shù)據(jù)高效處理,這種平臺在應用時可以全流程管理各類型的氣象數(shù)據(jù)信息,且可以方便的進行交換、質控,表現(xiàn)出較高的應用性能優(yōu)勢。
表1 平臺性能測試
大數(shù)據(jù)云平臺層對全部的氣象數(shù)據(jù)可基于接口機集群高效處理,進行一定轉換后得到各種類型的數(shù)據(jù)產(chǎn)品,且對不同類型的數(shù)據(jù)進行分類管理和存儲;對采集的原始數(shù)據(jù)通過分布式ETL工具抽取、清洗操作后,接著基于設定的倉庫模型進行加載處理。對這種架構而言,大數(shù)據(jù)云平臺有重要的意義,也是其中的最重要單元,能夠提供氣象業(yè)務綜合管理、天氣預測預報、農(nóng)業(yè)氣象服務、交通氣象服務、旅游氣象服務等功能。
全國綜合氣象信息共享系統(tǒng)(CIMISS)是氣象部門數(shù)據(jù)收集、存儲、加工和共享的業(yè)務支撐系統(tǒng),通過數(shù)據(jù)統(tǒng)一服務接口整合CIMISS與本地數(shù)據(jù)服務,提供數(shù)據(jù)訪問服務和應用服務。對比測試平臺的性能,將相同大小的任務分別在CIMISS、氣象大數(shù)據(jù)云平臺及基于CART氣象大數(shù)據(jù)云平臺上運行,響應時間如表1所示。其中,在CIMISS中,根據(jù)統(tǒng)計、質控、解碼應用頻率,按照10:1:1頻次做加權平均;氣象大數(shù)據(jù)云平臺按照Map和Reduce任務統(tǒng)計響應時間,考慮HDFS分布式特性,對不同大小數(shù)據(jù)處理性能也有不同,通過Map操作、設置reducer參數(shù)、任務大小提高平臺執(zhí)行效率,其中Map和Reduce任務個數(shù)通過多次設置優(yōu)化執(zhí)行時間;采用了決策樹算法的氣象大數(shù)據(jù)云平臺,自動選擇數(shù)據(jù)挖掘、機器學習、深度學習來處理提交的任務。
結果可以看到,氣象大數(shù)據(jù)云平臺對數(shù)據(jù)統(tǒng)計、質控、解碼等處理性能均有較大提升,平均提升3.6倍。采用決策樹挖掘算法后,平臺性能可以提升到1.4倍。
當今已經(jīng)進入大數(shù)據(jù)時代,氣象數(shù)據(jù)規(guī)模迅速的增長,在此背景下如何高效的利用海量氣象數(shù)據(jù)并充分發(fā)揮其資源價值,就成為當前氣象研究的熱點。Hadoop平臺是內網(wǎng)分布式在運行時不會產(chǎn)生明顯的延遲,且簡化了系統(tǒng)結構。氣象大數(shù)據(jù)云平臺的整體解決方案,對收集氣象相關數(shù)據(jù)進行處理,將相關樣本集經(jīng)由MapReduce并行創(chuàng)建CART樹形成隨機森林,訓練模型,使得氣象大數(shù)據(jù)云平臺中應用層功能模塊能夠實現(xiàn)動態(tài)數(shù)據(jù)更新,更好地為其他領域服務。Hadoop平臺表現(xiàn)出明顯的異構和集群化特征,未來很有必要研究異構下的數(shù)據(jù)集處理方法,更好的滿足異構條件下的數(shù)據(jù)處理要求,同時也為并行算法的廣泛應用提供支持。在氣象信息管理的實際應用中,許多數(shù)據(jù)是復雜異構的,有很多非結構化數(shù)據(jù),下一步可以對非結構化氣象數(shù)據(jù)挖掘方法展開研究。