秦業(yè)海 李修華 艾矯燕 付旭生
摘要:為探究水質(zhì)分析與大數(shù)據(jù)技術(shù)結(jié)合的可行方案,以MySQL+Hive+SparkR為主體框架搭建一整套從數(shù)據(jù)輸入、存儲(chǔ)、調(diào)度到應(yīng)用的SparkR水質(zhì)分析平臺(tái)。設(shè)置室內(nèi)培養(yǎng)模擬人工湖藻類(lèi)生長(zhǎng)實(shí)驗(yàn)組及其重復(fù)實(shí)驗(yàn)組,監(jiān)測(cè)各項(xiàng)指標(biāo)數(shù)據(jù),通過(guò)SparkR平臺(tái),在本地應(yīng)用Adaptive-Lasso算法識(shí)別出對(duì)照組和苦草組藻類(lèi)生長(zhǎng)主要影響因子,并建立回歸方程進(jìn)行驗(yàn)證,在集群分布式部署GBTs藻類(lèi)預(yù)測(cè)模型,經(jīng)重復(fù)試驗(yàn)驗(yàn)證預(yù)測(cè)模型未來(lái)3天的相對(duì)誤差均值分別為15.3%、14.8%。
關(guān)鍵詞:藻類(lèi)生長(zhǎng)模型;SparkR;Adaptive-Lasso;GBTs
中圖分類(lèi)號(hào):X824 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-672X(2019)04-0-03
Abstract:In order to explore the feasible scheme of combining water quality analysis with big data technology, a set of SparkR water quality analysis platform from data input, storage, dispatch to application is built with MySQL+Hive+SparkR as the main framework. Seting up experiment groups indoors to simulate algae growth of artificial lake and its repeated experimental groups, various indicators was monitored. Based on SparkR platform, the adaptive-Lasso algorithm was applied locally to identify the main influencing factors of algae growth in control group and validate the regression equation, and GBTs algae prediction model was deployed in the cluster, and repeated experiments showed that the relative error of GBRT algae prediction models in the next three days was 15.3% and 14.8% respectively.
Keywords:Algal growth model;SparkR;Adaptive-Lasso;GBTs
由于水體污染導(dǎo)致的藻類(lèi)水華一直受到廣泛的重視,我國(guó)從20世紀(jì)50年代起就已經(jīng)對(duì)各大湖泊水質(zhì)進(jìn)行監(jiān)測(cè),但由于存儲(chǔ)管理的混亂,可能造成數(shù)據(jù)丟失或不可用,而現(xiàn)代的水質(zhì)監(jiān)測(cè)設(shè)備能取大量數(shù)據(jù),水質(zhì)監(jiān)測(cè)也將會(huì)進(jìn)入大數(shù)據(jù)時(shí)代,因此面對(duì)大規(guī)模的數(shù)據(jù),更需要一種規(guī)范、安全及可擴(kuò)展的數(shù)據(jù)存儲(chǔ)方式。國(guó)內(nèi)外對(duì)藻類(lèi)水華進(jìn)行了大量的影響因子分析、機(jī)理建模和數(shù)據(jù)建模,都取得了良好研究成果,但機(jī)理模型針對(duì)性強(qiáng),難以做到普遍適用,而神經(jīng)網(wǎng)絡(luò)等數(shù)據(jù)模型適用性強(qiáng),依賴(lài)現(xiàn)在充盈的數(shù)據(jù)能進(jìn)一步提高精確性,然而過(guò)大的數(shù)據(jù)量也將會(huì)成為基于內(nèi)存計(jì)算的傳統(tǒng)機(jī)器學(xué)習(xí)的瓶頸。因此有學(xué)者就水質(zhì)分析與大數(shù)據(jù)的結(jié)合進(jìn)行了展望和初步探索[1-4],對(duì)學(xué)科的結(jié)合起到了指引作用,但未列出具體可行的結(jié)合方案,水質(zhì)大數(shù)據(jù)還處于起步階段。本文在實(shí)驗(yàn)獲取數(shù)據(jù)的基礎(chǔ)上,一整套從數(shù)據(jù)輸入、存儲(chǔ)、調(diào)度到應(yīng)用的SparkR水質(zhì)分析平臺(tái),具有高可靠、可擴(kuò)展、兼顧本地及并行計(jì)算等優(yōu)勢(shì)。通過(guò)在本地實(shí)現(xiàn)Adaptive-Lasso算法來(lái)分析藻類(lèi)生長(zhǎng)的主要影響因子,通過(guò)在集群部署GBTs藻類(lèi)預(yù)測(cè)模型,在取得較好的分析及預(yù)測(cè)結(jié)果的同時(shí),也驗(yàn)證了基于SparkR平臺(tái)對(duì)水質(zhì)數(shù)據(jù)可伸縮性分析這一可行方案。
1 材料與方法
1.1 實(shí)驗(yàn)方案
研究對(duì)象為廣西大學(xué)鏡湖,是典型的草、藻型人工景觀湖,水域面積約3000m2,約70%水域長(zhǎng)有苦草,與外界水域無(wú)連通為封閉式湖泊。為避免復(fù)雜的氣候條件和人為活動(dòng)等因子對(duì)藻類(lèi)生長(zhǎng)的干擾,采用室內(nèi)培養(yǎng)模擬的方案,共設(shè)3個(gè)實(shí)驗(yàn)組,采用60* 40* 60cm的玻璃缸作為培養(yǎng)箱:1)空白組,置入40cm高的湖水;2)對(duì)照組,置入10cm厚的底泥及40cm高的湖水;3)苦草組,置入10cm厚的底泥及40cm高的湖水后靜置一天,隔天植入18株長(zhǎng)勢(shì)良好的苦草。以上的湖水、底泥和苦草均取自同一區(qū)域,湖水均用13號(hào)的浮游生物網(wǎng)過(guò)濾;底泥去除雜質(zhì)并攪拌保障勻質(zhì)性;所用苦草長(zhǎng)勢(shì)良好且修剪為同一外觀。培養(yǎng)過(guò)程中保持水箱溫度為22±1℃,設(shè)置光照強(qiáng)度為500μmol.m-2.s-1,光暗比為12h:12h,光照時(shí)間段為8:00至20:00,進(jìn)行統(tǒng)一管理。
為驗(yàn)證模型及預(yù)測(cè)效果,設(shè)計(jì)重復(fù)實(shí)驗(yàn)作為驗(yàn)證組,采用60* 50*70cm的玻璃缸作為培養(yǎng)箱:對(duì)照驗(yàn)證組,置入10cm厚的底泥及50cm高的湖水;苦草對(duì)照組,置入10cm厚的底泥及50cm高的湖水,植入22株苦草,重復(fù)實(shí)驗(yàn)相關(guān)操作及管理與實(shí)驗(yàn)組相同。
1.2 數(shù)據(jù)測(cè)定
測(cè)定實(shí)驗(yàn)數(shù)據(jù)主要使用為美國(guó)YSI的EXO2型多參數(shù)水質(zhì)監(jiān)測(cè)儀,可以同時(shí)裝載6只傳感器來(lái)獲取各種的水質(zhì)參數(shù)監(jiān)測(cè)數(shù)據(jù),通過(guò)設(shè)置監(jiān)測(cè)時(shí)間和監(jiān)測(cè)頻率,最高能以4HZ的速率輸出監(jiān)測(cè)數(shù)據(jù)。傳感器監(jiān)測(cè)數(shù)據(jù)經(jīng)過(guò)自帶程序進(jìn)行數(shù)據(jù)過(guò)濾,最終被傳輸?shù)綌?shù)據(jù)采集終端顯示并以csv格式輸出保存。使用水質(zhì)監(jiān)測(cè)儀監(jiān)測(cè)的水質(zhì)指標(biāo)有pH值、溶解氧(DO)、水溫(T)、濁度(Tur)、學(xué)需氧量(COD)、電導(dǎo)率(Cond)、氧化還原電位(ORP)、葉綠素a(Chl-a)。針對(duì)本文藻類(lèi)生長(zhǎng)分析的需求,通過(guò)實(shí)驗(yàn)室化學(xué)測(cè)定的方式測(cè)定總磷(TP)、總氮(TN)、氨氮(NH4+-N)指標(biāo),依照《水和廢水監(jiān)測(cè)分析方法》[5]中相應(yīng)的方法執(zhí)行。
2 技術(shù)與方案
使用VMware創(chuàng)建3臺(tái)虛擬機(jī)為節(jié)點(diǎn)構(gòu)建集群,選用CentOS6.7操作系統(tǒng)。集群各節(jié)點(diǎn)通過(guò)配置相應(yīng)IP、主機(jī)名及hosts映射文件,關(guān)閉防火墻,配置免密登錄保證集群通信通暢。集群所有節(jié)點(diǎn)安裝和配置Java環(huán)境和R環(huán)境,最基本的需要安裝Hadoop HDFS集群、Hive和Spark集群,為加強(qiáng)集群性能,可以選擇安裝zookeeper、YARN等等大數(shù)據(jù)生態(tài)系統(tǒng)組件。
本文將搭建一整套從數(shù)據(jù)的輸入、存儲(chǔ)、調(diào)度到應(yīng)用分析的SparkR水質(zhì)分析平臺(tái),采用的主體框架為MySQL+Hive+SparkR,分別對(duì)應(yīng)本地?cái)?shù)據(jù)、Hadoop集群和Spark集群模塊,SparkR平臺(tái)的整體架構(gòu)及流程如圖1所示。
水質(zhì)監(jiān)測(cè)儀器及實(shí)驗(yàn)測(cè)定數(shù)據(jù)保存為csv格式文件,通過(guò)編寫(xiě)R程序?qū)υ紨?shù)據(jù)進(jìn)行整合、剔除異常值、補(bǔ)缺、歸一化等數(shù)據(jù)預(yù)處理以滿足數(shù)據(jù)應(yīng)用的格式需求。將經(jīng)過(guò)預(yù)處理的數(shù)據(jù)導(dǎo)入MySQL所建相應(yīng)的表中,MySQL數(shù)據(jù)庫(kù)作為數(shù)據(jù)的中轉(zhuǎn),也便于實(shí)現(xiàn)數(shù)據(jù)的可視化。使用Azkaban工作流任務(wù)調(diào)度器來(lái)實(shí)現(xiàn)各項(xiàng)任務(wù)定時(shí)并按流程自動(dòng)執(zhí)行,提交的具體任務(wù)流程為:csv文件→數(shù)據(jù)預(yù)處理→導(dǎo)入MySQL→導(dǎo)入Hive,自動(dòng)實(shí)現(xiàn)數(shù)據(jù)經(jīng)本地預(yù)處理后向本地?cái)?shù)據(jù)庫(kù)再向集群存儲(chǔ)的傳遞過(guò)程。其中使用Sqoop工具將MySQL中的結(jié)構(gòu)化數(shù)據(jù)導(dǎo)入到Hive中,實(shí)則是導(dǎo)入到Hadoop HDFS中,而HDFS本身就是一個(gè)高可靠、可擴(kuò)展的分布式文件系統(tǒng),滿足了數(shù)據(jù)安全及擴(kuò)容的需求。Hive是基于HDFS對(duì)數(shù)據(jù)進(jìn)行類(lèi)數(shù)據(jù)庫(kù)操作的抽象數(shù)據(jù)庫(kù)框架,具有強(qiáng)大的數(shù)據(jù)查詢和清洗功能,通過(guò)使用符合用戶使用習(xí)慣的類(lèi)SQL的HiveSQL語(yǔ)句來(lái)高效地獲取所需數(shù)據(jù)。
SparkR使用一種帶有列名的分布式數(shù)據(jù)集SparkDataFrame,它與關(guān)系型數(shù)據(jù)庫(kù)中的表或是R Data Frame相似,并就分布式環(huán)境進(jìn)行了優(yōu)化,SparkDataFrame可以由Hive表來(lái)構(gòu)建。SparkR通過(guò)SparkSession作為橋梁實(shí)現(xiàn)R程序與Spark集群互通,使得R程序能調(diào)用Spark集群上的數(shù)據(jù)和資源,解決了R語(yǔ)言難以實(shí)現(xiàn)級(jí)聯(lián)的問(wèn)題。SparkR中可以使用HiveSQL語(yǔ)句來(lái)查詢Hive表中的數(shù)據(jù)來(lái)構(gòu)建SparkDataFrame,實(shí)際上是由SparkSession調(diào)用Spark SQL組件來(lái)實(shí)現(xiàn)的。
R語(yǔ)言與大數(shù)據(jù)集群結(jié)合的方式有一般兩種,一種是從集群中獲取數(shù)據(jù)到本地,使用R程序進(jìn)行需求分析。SparkR就可以通過(guò)HiveSQL語(yǔ)句從集群的Hive表篩選所需數(shù)據(jù)到本地,由于大多數(shù)的算法都是基于內(nèi)存進(jìn)行串行計(jì)算,因而只能采用本地計(jì)算方式,與傳統(tǒng)的R語(yǔ)言數(shù)據(jù)分析無(wú)異,但SparkR為集群和R程序提供了良好的銜接,即使大規(guī)模數(shù)據(jù)也能高效地分塊、抽取和篩選成內(nèi)存可容納的規(guī)格,提高了數(shù)據(jù)分析的量級(jí)和效率。另一種是在集群上部署分布式計(jì)算的R程序。分布式計(jì)算需要算法支持并行化,目前SparkR實(shí)現(xiàn)的可并行化的算法有分類(lèi)、聚類(lèi)、回歸、樹(shù)和協(xié)同過(guò)濾等算法,而實(shí)現(xiàn)的本質(zhì)是由Spark MLlib機(jī)器學(xué)習(xí)庫(kù)中算法向R語(yǔ)言的遷移,SparkDataFrame作為分布式數(shù)據(jù)集可以直接調(diào)用SparkR所實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法,這使得R語(yǔ)言也能進(jìn)行大規(guī)模數(shù)據(jù)的并行化計(jì)算。SparkR作為R語(yǔ)言與大數(shù)據(jù)集群的結(jié)合方式,對(duì)大規(guī)模數(shù)據(jù)或是小規(guī)模數(shù)據(jù)、并行計(jì)算或是串行計(jì)算,都提供了良好的協(xié)調(diào)處理方案,使數(shù)據(jù)分析具有可伸縮性。
3 分析與建模
3.1 Adaptive-Lasso相關(guān)分析
將實(shí)驗(yàn)獲取的數(shù)據(jù)通過(guò)SparkR將全量加載到本地,使用Adaptive-Lasso算法做相關(guān)分析識(shí)別藻類(lèi)生長(zhǎng)的主要影響因子。應(yīng)用Lasso回歸來(lái)分析影響藻類(lèi)生長(zhǎng)的主要影響因子并建立回歸模型,Lasso回歸,將參數(shù)估計(jì)與變量選擇同時(shí)進(jìn)行的一種正則方法,用模型系數(shù)的絕對(duì)值函數(shù)做為懲罰來(lái)壓縮模型系數(shù),能使一些絕對(duì)值較小的系數(shù)直接變?yōu)?[6]。在R語(yǔ)言中的使用LAR(最小角度回歸)算法實(shí)現(xiàn)Lasso回歸算法,但未出現(xiàn)某些指標(biāo)回歸系數(shù)為0的情況。為解決Lasso估計(jì)對(duì)于所有的系數(shù)都使用相同程度的壓縮效果問(wèn)題,應(yīng)用Zuo提出給不同的系數(shù)加上不同權(quán)值的Lasso改進(jìn)方法,稱(chēng)為Adaptive-Lasso方法[7],在R語(yǔ)言中編程實(shí)現(xiàn)Adaptive-Lasso算法,計(jì)算結(jié)果如表1。
為驗(yàn)證模型的健壯性,對(duì)Adaptive-Lasso回歸模型進(jìn)行10-折交叉驗(yàn)證,計(jì)算結(jié)果為B、C兩組模型的均方誤差均值分別為0.331和0.262,預(yù)測(cè)值相對(duì)于真實(shí)值的相對(duì)誤差均值分別為39.5%、18.4%。從計(jì)算結(jié)果來(lái)看,使用Adaptive-Lasso算法選取主要影響因子而構(gòu)建的回歸模型是合理的。使用驗(yàn)證組數(shù)據(jù)對(duì)Adaptive-Lasso回歸模型進(jìn)行驗(yàn)證,對(duì)照組和苦草組的均方誤差均值分別為0.315和0.283,預(yù)測(cè)值相對(duì)于真實(shí)值的相對(duì)誤差均值分別為33.4%、21.6%使用多元線性回歸模型還是存在一定誤差,需要更精確的預(yù)測(cè)方法。
3.2 GBTs建模預(yù)測(cè)
為更精確地對(duì)藻類(lèi)生長(zhǎng)進(jìn)行預(yù)測(cè),將構(gòu)建GBTs藻類(lèi)生長(zhǎng)模型。梯度提升樹(shù)(Gradient-Boosted Trees,GBTs ),是一種決策樹(shù)的迭代集合,通過(guò)迭代地訓(xùn)練決策樹(shù)使損失函數(shù)達(dá)到最小[8]。梯度提升樹(shù)對(duì)復(fù)雜的非線性函數(shù)有較好的擬合能力,易于實(shí)現(xiàn)并行化,而分布式平臺(tái)也較好的解決了該算法內(nèi)存消耗大的問(wèn)題[9]。SparkR所實(shí)現(xiàn)的GBTs算法支持分布式并行化的分類(lèi)和回歸應(yīng)用,在集群環(huán)境下通過(guò)調(diào)用spark.gbt()方法,并根據(jù)模型需求調(diào)整模型訓(xùn)練參數(shù)構(gòu)建藻類(lèi)生長(zhǎng)的GBTs預(yù)測(cè)模型。
使用實(shí)驗(yàn)組數(shù)據(jù)用于模型訓(xùn)練,Chl-a作為輸出,其余指標(biāo)作為輸入,分別使用相應(yīng)的滯后數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)0天和3天的葉綠素濃度,其中未來(lái)0天預(yù)測(cè)模型作為參考,未來(lái)3天預(yù)測(cè)模型作為實(shí)際應(yīng)用。使用驗(yàn)證組數(shù)據(jù)對(duì)模型進(jìn)行驗(yàn)證,兩個(gè)模型的均方誤差均值、預(yù)測(cè)值相對(duì)于真實(shí)值的相對(duì)誤差均值如表2所示。
從結(jié)果可以看出,兩個(gè)模型相差不大,未來(lái)3天預(yù)測(cè)模型的驗(yàn)證結(jié)果如圖2所示,可以看出在前中期預(yù)測(cè)點(diǎn)和實(shí)際點(diǎn)非常接近,后期由于藻類(lèi)衰亡后出現(xiàn)了水棉等浮游植物,各指標(biāo)數(shù)據(jù)波動(dòng)較大,導(dǎo)致后期預(yù)測(cè)結(jié)果有所偏差,但總體而言所建立的GBTs預(yù)測(cè)模型有良好的預(yù)測(cè)結(jié)果。由于本次實(shí)驗(yàn)數(shù)據(jù)還未到達(dá)一定規(guī)模,在實(shí)現(xiàn)水質(zhì)監(jiān)測(cè)自動(dòng)化系統(tǒng)而獲取大量數(shù)據(jù)的條件下,將能更好地發(fā)揮SparkR平臺(tái)的優(yōu)勢(shì)進(jìn)而得到更好的數(shù)據(jù)分析和模型預(yù)測(cè)結(jié)果。
4 結(jié)論
(1)搭建了從數(shù)據(jù)輸入、存儲(chǔ)、調(diào)度到應(yīng)用的一整套基于SparkR的數(shù)據(jù)處理分析平臺(tái),具有高可靠、可擴(kuò)展、兼顧本地及并行計(jì)算等優(yōu)勢(shì),通過(guò)集群加載數(shù)據(jù)到本地實(shí)現(xiàn)Adaptive-Lasso算法來(lái)分析藻類(lèi)生長(zhǎng)的主要影響因子,通過(guò)在集群部署GBTs藻類(lèi)預(yù)測(cè)模型,驗(yàn)證了基于SparkR平臺(tái)對(duì)水質(zhì)數(shù)據(jù)可伸縮性分析的可行性。(2)通過(guò)Adaptive-Lasso算法篩選參數(shù)建立回歸方程并進(jìn)行驗(yàn)證,最終確定對(duì)照組對(duì)藻類(lèi)生長(zhǎng)的主要影響因子為pH、溶解氧、濁度、電導(dǎo)率、總磷、總氮,苦草組的為pH、溶解氧、濁度、總磷、總氮。(3)就多元線性回歸對(duì)于有較大峰值出現(xiàn)藻類(lèi)生長(zhǎng)過(guò)程預(yù)測(cè)的不足,在集群上應(yīng)用GBTs算法建立藻類(lèi)生長(zhǎng)預(yù)測(cè)模型,經(jīng)重復(fù)試驗(yàn)驗(yàn)證,對(duì)照組和苦草組的GBTs藻類(lèi)預(yù)測(cè)模型未來(lái)3天的相對(duì)誤差均值分別為15.3%、14.8%,預(yù)測(cè)效果良好。
參考文獻(xiàn)
[1]趙黎明,王海剛,王英玨.大數(shù)據(jù)在線技術(shù)在水質(zhì)監(jiān)測(cè)中的應(yīng)用[J].中國(guó)環(huán)保產(chǎn)業(yè),2017(12):70-72.
[2]周煜申,康望星,沈存,趙賢林.大數(shù)據(jù)在水環(huán)境綜合評(píng)價(jià)預(yù)警中的應(yīng)用研究[J].江蘇科技信息,2017(35):52-54+64.
[3]原廣平.大數(shù)據(jù)技術(shù)在滇池流域水環(huán)境監(jiān)測(cè)網(wǎng)絡(luò)及信息平臺(tái)中的應(yīng)用[J].環(huán)境與發(fā)展,2018,30(11):146-147.
[4]邵璇,田文君.基于大數(shù)據(jù)的水質(zhì)監(jiān)測(cè)技術(shù)初探[J].科技傳播,2018,10(07):75-76.
[5]魏復(fù)盛,國(guó)家環(huán)境保護(hù)總局.水和廢水監(jiān)測(cè)分析方法(第4版)[M].北京:中國(guó)環(huán)境科學(xué)出版社,2002.
[6]Robert Tibshirani.(1996),Regression Shrinkahe and Selection via the Lasso.Journal of the Royal Statistical Society.Series B,Vol.58,No.1.267-288.
[7]Hui Zuo.Trevor Hastie.(2005),Regularization and variable selection via the elastic net.
[8]呂依蓉,孫斌,喻之斌,等.基于梯度提升回歸樹(shù)的處理器性能數(shù)據(jù)挖掘研究[J/OL].集成技術(shù),2018(05):1-10.
[9]張興.基于Spark大數(shù)據(jù)平臺(tái)的火電廠節(jié)能分析[D].太原:太原理工大學(xué),2016.
收稿日期:2019-02-26
作者簡(jiǎn)介:秦業(yè)海(1992-),男,漢族,碩士研究生,研究方向?yàn)榄h(huán)境智能。