魏福平,方朝陽,2,宗宇
(1.江西師范大學(xué)地理與環(huán)境學(xué)院,南昌330022;2.鄱陽湖濕地與流域教育部重點(diǎn)實(shí)驗(yàn)室,南昌330022)
水質(zhì)是人們十分關(guān)注的一個(gè)領(lǐng)域,水質(zhì)的好壞直接影響人們的生產(chǎn)生活。高錳酸鹽指數(shù)(Permanganate Index,CODmn)是常用來反映飲用水、水源水和地表水受有機(jī)和無機(jī)可氧化物質(zhì)污染的程度的一個(gè)指標(biāo)[1]。傳統(tǒng)化學(xué)方法雖然具有精度高穩(wěn)定性好的優(yōu)點(diǎn),然而其操作復(fù)雜耗時(shí)、易產(chǎn)生二次污染的缺點(diǎn)也不容小覷[2]。采用紫外-可見光譜技術(shù)對(duì)水樣的光譜進(jìn)行測定,分析其光譜特征并結(jié)合相應(yīng)數(shù)學(xué)關(guān)系可以快速便捷地獲取CODmn的值[3]。
本文針對(duì)國標(biāo)法檢測水樣的水質(zhì)CODmn的各種問題,基于極限梯度提升(eXtreme Gradient Boosting,XGBoost)算法,采用實(shí)際水樣的紫外-可見光譜數(shù)據(jù),構(gòu)建了預(yù)測水質(zhì)CODmn值的XGBoost的模型。研究表明,XGBoost算法在水質(zhì)CODmn值的預(yù)測中具有模型精度較高、擬合優(yōu)度好的特點(diǎn)。
紫外-可見光譜法是通過分析水樣對(duì)入射光譜的某些波段吸收形成的光譜特征,從而得到水樣中物質(zhì)的組分和濃度等信息的方法,如圖1所示。波長在10nm~380nm區(qū)間內(nèi)的為紫外光譜,而在這個(gè)區(qū)間內(nèi)又可以細(xì)分為遠(yuǎn)紫外光譜(10~200nm)和近紫外光譜(200nm~380nm)。波長在380nm~780nm區(qū)間內(nèi)的為可見光譜。
2015年,美國華盛頓大學(xué)博士陳天奇等人首次提出XGBoost算法,該算法是在梯度提升樹(Gradient Boosting Decision Tree,GBDT)算法的基礎(chǔ)上進(jìn)行工程上的優(yōu)化。XGBoost在原理上與GBDT算法相同,只是在工程上把GBDT的速度和效率發(fā)揮得更極致(ex-treme)。XGBoost算法與GBDT算法的主要區(qū)別在于:GBDT中梯度下降利用的是一階泰勒公式展開,而XG-Boost采用了二階泰勒公式展開進(jìn)行梯度下降;此外,為防止出現(xiàn)過擬合的情況,XGBoost加入了GBDT所沒有的正則項(xiàng)。
圖1 水質(zhì)探頭反饋回來的水樣光譜曲線圖
XGBoost是一個(gè)樹集成模型,它使用的是K(樹的總數(shù)為K)個(gè)樹的每棵樹對(duì)樣本的預(yù)測值的和作為該樣本在XGBoost系統(tǒng)中的預(yù)測?,F(xiàn)有一個(gè)包含了n個(gè)樣本的數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xj,yj),(xn,yn)},(xj∈R,yj∈R),其中,xj為第n=j個(gè)樣本的特征,yj為第n=j個(gè)樣本的標(biāo)簽值(真實(shí)值)。XGBoost的預(yù)測過程如下:
在公式(2)中,K為決策樹輸出葉子節(jié)點(diǎn)的個(gè)數(shù),為(t-1)次的預(yù)測值,ft(xj)為當(dāng)前時(shí)刻誤差預(yù)測值。
經(jīng)CT診斷有49例為陽性,53例為陰性,eFAST檢查方式的特異性為96.23%,敏感性為89.80%,詳情見表。
(2)整合目標(biāo)函數(shù)L(?):
(3)對(duì)目標(biāo)函數(shù)L(?)使用二階泰勒公式展開,得:
綜上,公式(6)即為所求。
本文提出的XGBoost預(yù)測模型基本流程為:在獲取所需數(shù)據(jù)并進(jìn)行數(shù)據(jù)預(yù)處理后,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行異常值分析與處理,剔除其中的異常值,并對(duì)數(shù)據(jù)進(jìn)行歸一化處理,再將數(shù)據(jù)轉(zhuǎn)化為模型所需的數(shù)據(jù)。然后將模型所需數(shù)據(jù)劃分為訓(xùn)練集、驗(yàn)證集和測試集三部分。將數(shù)據(jù)導(dǎo)入XGBoost模型,通過采用訓(xùn)練集訓(xùn)練模型、測試集測試模型的方式,多次重復(fù)模型訓(xùn)練與模型參數(shù)調(diào)整這一過程,最終得到較為理性的模型,并以驗(yàn)證集驗(yàn)證模型的泛化能力。
本文實(shí)驗(yàn)數(shù)據(jù)維度為29×2048。第1列至第2047列為水樣的全波段吸收光譜數(shù)據(jù),第2048列為國標(biāo)法(錳法)測得的水樣CODmn值(單位:mg/L)。水樣吸收光譜數(shù)據(jù)采用成都益清源科技公司生產(chǎn)的D73-10A型水質(zhì)紫外-可見光譜探頭測得,該設(shè)備可發(fā)射在155nm~925nm波長范圍內(nèi)若干組平行光束。水樣為連續(xù)三天同一時(shí)刻在兩處不同的水樣采集點(diǎn)采集的水樣。實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 水樣光譜數(shù)據(jù)和CODmn實(shí)測數(shù)據(jù)
由于儀器中搭載的光譜探頭會(huì)受到各種因素影響,導(dǎo)致某些波段下的吸收光譜出現(xiàn)了不合常理的值,為保證數(shù)據(jù)具有較好的連續(xù)性和模型具有較好的穩(wěn)定性,需要對(duì)這類異常值進(jìn)行處理。此外,由于數(shù)據(jù)中各特征的量綱都不一致,為提高模型的穩(wěn)定性和精度,需要對(duì)特征屬性值進(jìn)行歸一化處理。
(1)異常值處理
觀察表1可知,小于0的光譜吸收光譜值為異常值,全部集中分布在916~925nm處,而780nm以外的光譜波段已經(jīng)不屬于紫外可見光譜范圍了,這一區(qū)間對(duì)測定CODmn已無影響[2]。因此,可以從實(shí)驗(yàn)數(shù)據(jù)中直接去除這一區(qū)間的值。
(2)數(shù)據(jù)歸一化
由于光譜吸收值和CODmn各自的量綱不統(tǒng)一,其值的取值范圍差別很大,為了消除量綱在數(shù)據(jù)分析中的影響,提高模型的預(yù)測能力,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,使得各屬性下的數(shù)據(jù)取值范圍在[0,1]之間。本文采用離差標(biāo)準(zhǔn)化(Min-Max Normalization)函數(shù),其轉(zhuǎn)換函數(shù)如下:
其中,x'為歸一化后的樣本數(shù)據(jù),xi為某時(shí)刻某個(gè)屬性的樣本數(shù)據(jù),xmax、xmin依次為某屬性下樣本數(shù)據(jù)的最大值、最小值。
本文采用決定系數(shù)(R2)、平均絕對(duì)誤差(Mean Ab-solute Error,MAE)、均方差(Mean Square Error,MSE)來評(píng)價(jià)模型。
公式(8)-(10)中n為樣本數(shù)據(jù)的數(shù)量,yi為樣本數(shù)據(jù)中CODmn的實(shí)際值,?代表模型預(yù)測出的COD-mn值,為測試數(shù)據(jù)集中實(shí)際CODmn的均值。對(duì)于R2而言,其取值范圍為[0,1]:R2越接近0,說明模型的擬合效果越差,即擬合優(yōu)度越低;R2越接近1,說明模型擬合效果越好,即擬合優(yōu)度越高。對(duì)于MAE和MSE而言,其取值范圍為[0,+∞),值越接近0說明模型越完美,模型的精度越高。
按訓(xùn)練集占總數(shù)據(jù)的80%、測試集占總數(shù)據(jù)的20%比例將數(shù)據(jù)集劃分好。在Windows10系統(tǒng)下的Anaconda3實(shí)驗(yàn)環(huán)境中,采用Python語言編寫好XG-Boost水質(zhì)預(yù)測模型,反復(fù)訓(xùn)練模型,并根據(jù)模型的結(jié)果反饋及時(shí)調(diào)整模型的參數(shù)使之獲得最佳預(yù)測效果。經(jīng)調(diào)試,模型的最佳參數(shù)分別是:'objective':'reg:linear','booster':'gbtree','eta':0.03,'max_depth':10,'subsample':0.9,'colsample_bytree':0.7,'silent':1,'seed':10。
為驗(yàn)證XGBoost模型在預(yù)測水質(zhì)CODmn過程中的有效性,另使用Python語言構(gòu)建了以RBF做核函數(shù)的支持向量回歸(Support Vector Regression,SVR)模型作為對(duì)比。
兩種模型的擬合圖如圖1所示。
圖2 SVR模型和XGBoost模型的擬合圖
分別對(duì)SVR模型和XGBoost模型進(jìn)行評(píng)價(jià),其評(píng)價(jià)表如表2所示。其中,R2xgb=0.9021,R2svr=0.4814,XGBoost相較于SVR更接近1,說明XGBoost模型的擬合優(yōu)度比SVR模型的擬合優(yōu)度更好;MAExgb=0.1597 表2 SVR模型和XGBoost模型評(píng)價(jià)結(jié)果 本文采用實(shí)際水樣的實(shí)測紫外-可見光譜吸收光譜數(shù)據(jù)及國標(biāo)法(錳法)測定的CODmn數(shù)據(jù),構(gòu)建了吸收紫外-可見光譜的CODmn訓(xùn)練和測試數(shù)據(jù)集,并用經(jīng)典的機(jī)器學(xué)習(xí)算法SVR和當(dāng)今數(shù)據(jù)科學(xué)領(lǐng)域較為流行的XGBoost算法分別建立了CODmn預(yù)測模型。實(shí)驗(yàn)結(jié)果表明,針對(duì)本文的實(shí)驗(yàn)數(shù)據(jù),XGBoost模型在水質(zhì)CODmn的預(yù)測上具有更好的擬合優(yōu)度和模型精度,為利用機(jī)器學(xué)習(xí)方法構(gòu)建模型預(yù)測水質(zhì)CODmn提供了新思路。4 結(jié)語