汪浩然 蔡朝朝 張津豪 婁家正 陳毅 季曉亮
摘? 要:伴隨著我國(guó)云計(jì)算與大數(shù)據(jù)等技術(shù)的起興與發(fā)展,我國(guó)氣象事業(yè)等領(lǐng)域積攢了大量的數(shù)據(jù)信息,因此人們可以利用其技術(shù)來(lái)指導(dǎo)分析氣象。氣象數(shù)據(jù)挖掘是一個(gè)新興的領(lǐng)域,它充分運(yùn)用大多地域中存在卻沒(méi)有用到的數(shù)據(jù),將這些數(shù)據(jù)按數(shù)據(jù)挖掘技術(shù)的要求進(jìn)行分析處理、統(tǒng)計(jì)分類(lèi),可以有效預(yù)測(cè)氣象的在未來(lái)一段時(shí)間的表現(xiàn)。本文主要講述“基于數(shù)據(jù)挖掘的氣象數(shù)據(jù)分析系統(tǒng)”創(chuàng)新項(xiàng)目的研究目的、研究過(guò)程和主要功能。我們研發(fā)此系統(tǒng)的目的是為了讓關(guān)注、研究天氣的人員或機(jī)構(gòu)更加直接地瀏覽氣象信息,簡(jiǎn)單地預(yù)測(cè)近日最高與最低地表溫度,大大節(jié)約了傳統(tǒng)復(fù)雜信息整理的工作量,提高觀察信息效率。
關(guān)鍵詞:數(shù)據(jù)挖掘;氣象分析;數(shù)據(jù)處理;可視化
一、系統(tǒng)設(shè)計(jì)
(一)開(kāi)發(fā)工具的選擇
Windows10、Pycharm、Navicat Premium、HBuilder X、Jupyter Notebook、sklearn、echarts、python、Django。
關(guān)于算法庫(kù)的選擇,sklearn是一個(gè)Python第三方提供的非常強(qiáng)力的機(jī)器學(xué)習(xí)庫(kù),它包含了從數(shù)據(jù)預(yù)處理到訓(xùn)練模型的各個(gè)方面。在實(shí)戰(zhàn)使用scikit-learn中可以極大的節(jié)省我們編寫(xiě)代碼的時(shí)間以及減少我們的代碼量,使我們有更多的精力去分析數(shù)據(jù)分布,調(diào)整模型。sklearn擁有可以用于監(jiān)督和無(wú)監(jiān)督學(xué)習(xí)的方法,一般來(lái)說(shuō)監(jiān)督學(xué)習(xí)使用的更多。sklearn中的大部分函數(shù)可以歸為估計(jì)器(Estimator)和轉(zhuǎn)化器(Transformer)兩類(lèi)。估計(jì)器(Estimator)其實(shí)就是模型,它用于對(duì)數(shù)據(jù)的預(yù)測(cè)或回歸。基本上估計(jì)器都會(huì)有以下幾個(gè)方法:fit(x,y):傳入數(shù)據(jù)以及標(biāo)簽即可訓(xùn)練模型,訓(xùn)練的時(shí)間和參數(shù)設(shè)置,數(shù)據(jù)集大小以及數(shù)據(jù)本身的特點(diǎn)有關(guān)。score(x,y)用于對(duì)模型的正確率進(jìn)行評(píng)分(范圍0-1)。但由于對(duì)在不同的問(wèn)題下,評(píng)判模型優(yōu)劣的的標(biāo)準(zhǔn)不限于簡(jiǎn)單的正確率,可能還包括召回率或者是查準(zhǔn)率等其他的指標(biāo),特別是對(duì)于類(lèi)別失衡的樣本,準(zhǔn)確率并不能很好的評(píng)估模型的優(yōu)劣,因此在對(duì)模型進(jìn)行評(píng)估時(shí),不要輕易的被score的得分蒙蔽。predict(x)用于對(duì)數(shù)據(jù)的預(yù)測(cè),它接受輸入,并輸出預(yù)測(cè)標(biāo)簽,輸出的格式為numpy數(shù)組。我們通常使用這個(gè)方法返回測(cè)試的結(jié)果,再將這個(gè)結(jié)果用于評(píng)估模型。轉(zhuǎn)化器(Transformer)用于對(duì)數(shù)據(jù)的處理,例如標(biāo)準(zhǔn)化、降維以及特征選擇等等。同與估計(jì)器的使用方法類(lèi)似:fit(x,y):該方法接受輸入和標(biāo)簽,計(jì)算出數(shù)據(jù)變換的方式。transform(x):根據(jù)已經(jīng)計(jì)算出的變換方式,返回對(duì)輸入數(shù)據(jù)x變換后的結(jié)果(不改變x)fit_transform(x,y):該方法在計(jì)算出數(shù)據(jù)變換方式之后對(duì)輸入x就地轉(zhuǎn)換。
關(guān)于開(kāi)發(fā)工具的選擇,Pycharm在兼容性、靈活性、生態(tài)系統(tǒng)、社區(qū)交流方面都具有一些優(yōu)勢(shì)。
關(guān)于可視化插件的選擇,echarts包含了豐富功能的圖表,還提供了自定義系列,只需要傳入一個(gè)renderItem函數(shù),就可以從數(shù)據(jù)映射到任何你想要的圖形,更棒的是這些都還能和已有的交互組件結(jié)合使用而不需要操心其它事情。
關(guān)于前端框架的選擇,Django海量的自帶工具和功能組件,開(kāi)發(fā)者可借此迅速搭建Web應(yīng)用。且Django的Model層自帶數(shù)據(jù)庫(kù)ORM組件,即使不懂SQL也不影響數(shù)據(jù)庫(kù)操作。憑借自帶的后臺(tái)管理,開(kāi)發(fā)者僅需少量代碼就可實(shí)現(xiàn)完整的后臺(tái)數(shù)據(jù)管理。其APP可插拔的設(shè)計(jì)理念,使得系統(tǒng)可維護(hù)性極高,即使隨意對(duì)其添加和刪除,也不會(huì)對(duì)整體系統(tǒng)產(chǎn)生影響。
二、系統(tǒng)實(shí)現(xiàn)
(一)前端
主要頁(yè)面包括用戶(hù)登錄界面,登錄之后將會(huì)展現(xiàn)各地區(qū)的氣溫、污染指數(shù)、空氣質(zhì)量等信息,其頁(yè)面主要是存在Templates下的count文件下,內(nèi)容為根據(jù)爬取的數(shù)據(jù)繪制的最高氣溫變化、最低氣溫變化、平均污染變化的折線圖與餅狀圖。上面有導(dǎo)出數(shù)據(jù)、機(jī)器學(xué)習(xí)跳轉(zhuǎn)鏈接,分別是下載數(shù)據(jù)與跳轉(zhuǎn)數(shù)據(jù)分析可視化、構(gòu)造回歸模型后預(yù)測(cè)結(jié)果的界面。
(二)數(shù)據(jù)獲取與存儲(chǔ)
數(shù)據(jù)的獲取是利用了網(wǎng)絡(luò)爬蟲(chóng)技術(shù),依靠requests模塊,傳遞2345天氣網(wǎng)的url,發(fā)送請(qǐng)求并且獲取響應(yīng)。通過(guò)分析url,需要填入起始日期與結(jié)束日期的參數(shù),然后進(jìn)行拼接,最終可以獲取我們所要的時(shí)間范圍內(nèi)的數(shù)據(jù)。數(shù)據(jù)的返回的格式是json格式,將我們想要獲得的是data字符里面包含的天氣信息,通過(guò)python取字典的值的方式獲取。最終獲取的數(shù)據(jù)比較規(guī)整,只需要把\\替換為空就可。
數(shù)據(jù)的存儲(chǔ)是依靠Sqlite數(shù)據(jù)庫(kù),Django框架本身默認(rèn)的就是Sqlite數(shù)據(jù)庫(kù),創(chuàng)建的時(shí)候便就已經(jīng)自帶,方便快捷。同時(shí),它管理簡(jiǎn)單,甚至可以認(rèn)為無(wú)需管理。操作方便,Sqlite生成的數(shù)據(jù)庫(kù)文件可以在各個(gè)平臺(tái)無(wú)縫移植??梢苑浅7奖愕囊远喾N形式嵌入到其他應(yīng)用程序中,如靜態(tài)庫(kù)、動(dòng)態(tài)庫(kù)等。本項(xiàng)目有5張表,其中核心表為weather表。
(三)數(shù)據(jù)處理與分析
根據(jù)大量的數(shù)據(jù)值,我們對(duì)最高溫度與最低溫度進(jìn)行隨機(jī)森林訓(xùn)練,把最終訓(xùn)練的模型存放在ml文件夾下。隨機(jī)森林是一種元估計(jì)器,它在數(shù)據(jù)集的不同子樣本上匹配多個(gè)分類(lèi)決策樹(shù),并使用均值來(lái)提高預(yù)測(cè)精度和控制過(guò)擬合。如果bootstrap=True(默認(rèn)),則使用max_samples參數(shù)控制子樣本的大小,否則將使用整個(gè)數(shù)據(jù)集來(lái)構(gòu)建每棵樹(shù)。
隨機(jī)森林有兩種算法:
(1)RandomForest algorithm:
樣本提取時(shí)允許replacement,在隨機(jī)選取的部分features上進(jìn)行劃分,與原論文的vote方法不同,sklearn通過(guò)平均每個(gè)分類(lèi)器的預(yù)測(cè)概率來(lái)生成最終結(jié)果。
(2)Extremely Randomized Trees:
有兩個(gè)class,分別處理分類(lèi)和回歸,默認(rèn)使用所有樣本,但劃分時(shí)features隨機(jī)選取部分。
隨機(jī)森林算法既可以應(yīng)運(yùn)到分類(lèi)RandomForestClassifier(隨機(jī)森林分類(lèi))、又可以用于回歸問(wèn)題RandomForestRegressor(隨機(jī)森林回歸)。
參考文獻(xiàn):
[1] 鐘曉,等.數(shù)據(jù)挖掘綜述[J].模式識(shí)別與人工智能,2001,vol.14No.1,48-55.
[2] 吉根林,孫志揮.數(shù)據(jù)挖掘技術(shù)[J].中國(guó)圖像圖形學(xué)報(bào),2001,vol.6(A),vol.8:715-721.
作者簡(jiǎn)介:蔡朝朝(1978-),女,福建閩侯人,通訊作者,副教授,研究方向:數(shù)據(jù)庫(kù)技術(shù)與程序設(shè)計(jì);汪浩然(2000-),男,安徽合肥,在讀本科生,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);張津豪(2000-),男,江蘇徐州,在讀本科生,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);婁家正(1999-),男,江蘇徐州,在讀本科生,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);陳毅(1999-),男,重慶,在讀本科生,研究方向:計(jì)算機(jī)科學(xué)與技術(shù);季曉亮(1999-),男,江蘇南通,在讀本科生,研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。
基金項(xiàng)目:新疆農(nóng)業(yè)大學(xué)2021年大學(xué)生創(chuàng)新項(xiàng)目:基于數(shù)據(jù)挖掘的氣象數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)(dxscx2021321)