王春玲, 史鍇源, 明 星, 叢茂勤, 劉昕悅, 郭文記
1. 北京林業(yè)大學(xué)信息學(xué)院, 北京 100083
2. 國(guó)家林業(yè)和草原局林業(yè)智能信息處理工程技術(shù)研究中心, 北京 100083
3. 中國(guó)科學(xué)院軟件研究所南京軟件技術(shù)研究院, 江蘇 南京 210049
化學(xué)需氧量(chemical oxygen demand, COD)是以化學(xué)方法測(cè)量水樣中需要被氧化的還原性物質(zhì)的量。 水樣在一定條件下的COD以氧化1升水樣中還原性物質(zhì)縮小化的氧化劑的量為指標(biāo), 折算成每升水樣全部被氧化后, 需要的氧的毫克數(shù), 以mg·L-1來(lái)表示。 COD測(cè)試可以很容易地量化水中有機(jī)物的含量。 COD最常見(jiàn)的應(yīng)用是量化地表水(如湖泊和河流)或廢水中可氧化污染物的量, 在水質(zhì)監(jiān)測(cè)中起到了巨大的作用。
傳統(tǒng)的化學(xué)需氧量的檢測(cè)方法有重鉻酸鹽滴定法和分光光度法等方法, 電化學(xué)方法和流動(dòng)注射分析法也用于COD的檢測(cè), 但這些檢測(cè)方法都存在檢測(cè)周期較長(zhǎng)、 消耗試劑等缺點(diǎn), 對(duì)水體的批量檢測(cè)也難以實(shí)現(xiàn)。 而利用高光譜技術(shù)和機(jī)器學(xué)習(xí)手段對(duì)水質(zhì)參數(shù)進(jìn)行反演近期已成為國(guó)內(nèi)外熱點(diǎn)研究問(wèn)題。 高光譜技術(shù)能夠獲得物體連續(xù)的光譜信息, 近年來(lái)逐步應(yīng)用于水農(nóng)產(chǎn)品檢測(cè)、 生物醫(yī)學(xué)診斷和指導(dǎo)、 植被和水資源調(diào)控等領(lǐng)域并取得了一定成果[1-5]。 在水質(zhì)參數(shù)高光譜反演建模中, 國(guó)內(nèi)外學(xué)者采取機(jī)器學(xué)習(xí)方法對(duì)不同水質(zhì)參數(shù)進(jìn)行建模, 如總氮、 總磷、 水質(zhì)濁度、 一般懸浮物、 化學(xué)需氧量等, 并取得了一定成果[6-12]。 盡管利用高光譜和機(jī)器學(xué)習(xí)手段對(duì)化學(xué)需氧量反演的研究逐步增多, 但是仍存在一定問(wèn)題: 例如對(duì)高光譜數(shù)據(jù)的預(yù)處理手段不夠完善, 導(dǎo)致數(shù)據(jù)集存在較多的噪音或者丟失波段信息, 所采用的機(jī)器學(xué)習(xí)方法擬合效果較差或機(jī)器學(xué)習(xí)模型過(guò)于復(fù)雜, 導(dǎo)致模型精度低或建模成本過(guò)大。
基于高光譜和機(jī)器學(xué)習(xí)技術(shù)對(duì)揚(yáng)州寶帶河水體COD進(jìn)行反演建模。 分別使用Savitzky-Golay(SG)平滑、 多元散射校正數(shù)據(jù)(multiplicative scatter correction, MSC)以及SG平滑和MSC相結(jié)合的方法對(duì)原始光譜進(jìn)行預(yù)處理。 對(duì)預(yù)處理后的全波段光譜基于多元線性回歸、 隨機(jī)森林、 AdaBoost、 XGBoost機(jī)器學(xué)習(xí)方法建立COD反演模型。 結(jié)合主成分分析法(principal component analysis, PCA)對(duì)全波段光譜提取特征波段, 再基于特征波段建立COD反演模型, 并對(duì)模型的精度和訓(xùn)練時(shí)間進(jìn)行對(duì)比。
研究區(qū)位于江蘇省揚(yáng)州市寶帶河水域(119°25′27″E, 32°24′13″N)。 研究采用ZK-UVIR-I型原位光譜水質(zhì)在線監(jiān)測(cè)儀(北京智科遠(yuǎn)達(dá)數(shù)據(jù)技術(shù)有限公司), 該監(jiān)測(cè)儀能夠?qū)崟r(shí)檢測(cè)水體化學(xué)需氧量信息, 并能夠采集樣本在400~1 000 nm之間的高光譜數(shù)據(jù), 采集高度為3 m, 采集位置位于河岸邊, 采集時(shí)間選在晴朗的白天。 由于光譜在810~1 000 nm范圍內(nèi)受噪聲影響較大, 最終選用400~810 nm波段對(duì)光譜數(shù)據(jù)進(jìn)行處理分析。 該設(shè)備共獲取1 548組高光譜。 使用隨機(jī)抽樣的方法對(duì)采樣樣本進(jìn)行劃分, 80%用作模型訓(xùn)練, 20%用作模型測(cè)試。
數(shù)據(jù)處理使用windows10(64位操作系統(tǒng)), Intel(R)Core(TM) i5-7200U CPU @ 2.50GHZ處理器, python3.6。
1.2.1 光譜數(shù)據(jù)預(yù)處理
高光譜數(shù)據(jù)通常包含由相機(jī)或儀器產(chǎn)生的隨機(jī)噪聲和光譜變化。 光譜預(yù)處理可以減少或消除數(shù)據(jù)中與自身性質(zhì)無(wú)關(guān)的信息, 降低模型的復(fù)雜性, 提高數(shù)據(jù)和模型的可解釋性(魯棒性和準(zhǔn)確性)。 光譜數(shù)據(jù)的預(yù)處理在進(jìn)行多變量分析之前是必不可少的。 SG平滑能夠使光譜曲線平滑, MSC方法能夠消除基線漂移和平移現(xiàn)象。 采用SG平滑、 MSC以及SG平滑結(jié)合MSC光譜預(yù)處理手段對(duì)原始光譜進(jìn)行預(yù)處理并進(jìn)行比較。
1.2.2 特征波段提取
高光譜波段由大量的波段組成, 有些波段的相關(guān)性較高而且存在冗余以及噪聲等。 對(duì)特征波段的提取在一定程度上可以規(guī)避這兩種情況。 PCA是一種分析、 簡(jiǎn)化數(shù)據(jù)集的方法[13], 能夠最大程度提取原始數(shù)據(jù)的有效信息, 同時(shí)能夠大大降低數(shù)據(jù)集維數(shù)。 選用主成分分析法對(duì)特征波段進(jìn)行提取, 并對(duì)所建模型的精度、 模型訓(xùn)練速度進(jìn)行分析比較。
1.2.3 反演模型
選取線性回歸、 隨機(jī)森林、 AdaBoost、 XGBoost四種機(jī)器學(xué)習(xí)建模方法。 線性回歸是一種確定兩個(gè)或多個(gè)變量間相互依賴(lài)定量關(guān)系的機(jī)器學(xué)習(xí)方法; 隨機(jī)森林算法是決策樹(shù)的集成, 通過(guò)平均決策樹(shù)可以大大降低過(guò)擬合的風(fēng)險(xiǎn), 是比單一決策樹(shù)性能更優(yōu)的模型[14]; Adaboost是將弱學(xué)習(xí)器結(jié)合創(chuàng)造一個(gè)強(qiáng)學(xué)習(xí)器的機(jī)器學(xué)習(xí)方法[15], 本研究將決策樹(shù)作為Adaboost的弱學(xué)習(xí)器; XGBoost是一種改進(jìn)的梯度提升迭代決策樹(shù)(gradient boosting decision tree, GBDT)算法, 基于損失函數(shù)2階泰勒展開(kāi)進(jìn)行優(yōu)化并引入正則項(xiàng), 同時(shí)支持多線程運(yùn)算。
1.2.4 模型評(píng)估
采取RMSE,R2和RPD三個(gè)指標(biāo)對(duì)反演模型進(jìn)行對(duì)比和評(píng)價(jià)。
(1)
(2)
(3)
圖1為樣本水體的原始光譜曲線, 水體在550~600 nm的反射率較高, 在700~750 nm的反射率較低。 從圖中可以看出每個(gè)水體樣本曲線的變化趨勢(shì)類(lèi)似, 沒(méi)有呈現(xiàn)較大的差異, 而且難以直接通過(guò)光譜曲線對(duì)其COD含量進(jìn)行判斷。 水體樣本的COD值統(tǒng)計(jì)結(jié)果如表1所示, 模型的訓(xùn)練集與測(cè)試集都涵蓋了較大的范圍, 各標(biāo)準(zhǔn)差與總樣本的標(biāo)準(zhǔn)差也基本一致, 滿(mǎn)足訓(xùn)練以及檢驗(yàn)的需求。
圖1 水體樣本原始光譜反射率曲線
表1 COD含量描述統(tǒng)計(jì)分析
使用三種光譜預(yù)處理方法對(duì)原始光譜進(jìn)行預(yù)處理, 預(yù)處理后的光譜分布如圖2(a,b,c)所示。
經(jīng)過(guò)光譜預(yù)處理后, 高光譜的數(shù)據(jù)質(zhì)量得到了一定改善, 但還是無(wú)法直觀的從光譜曲線上判斷水體的COD含量, 因此還需要通過(guò)機(jī)器學(xué)習(xí)方法對(duì)其建模進(jìn)行分析。
2.3.1 機(jī)器學(xué)習(xí)模型超參數(shù)調(diào)整
在機(jī)器學(xué)習(xí)中, 超參數(shù)是在開(kāi)始學(xué)習(xí)過(guò)程之前設(shè)置值的參數(shù)。 決策樹(shù)的數(shù)量直接決定了隨機(jī)森林、 Adaboost、 XGBoost模型的性能, 以5作為步長(zhǎng)設(shè)定決策樹(shù)的數(shù)量并對(duì)上述三個(gè)模型進(jìn)行訓(xùn)練, 通過(guò)觀察訓(xùn)練集均方誤差(mean-square error, MSE)隨決策樹(shù)的數(shù)量變化調(diào)整模型的決策樹(shù)數(shù)量, 最終結(jié)果如圖3(a,b,c)所示。 由于隨機(jī)森林模型具有隨機(jī)性, 所以決策樹(shù)增加時(shí), 模型的預(yù)測(cè)性能會(huì)出現(xiàn)波動(dòng), 在考慮模型性能以及模型運(yùn)行時(shí)間因素后, 將隨機(jī)森林的決策樹(shù)的數(shù)量設(shè)為175, AdaBoost的決策樹(shù)數(shù)量設(shè)為200, XGBoost決策樹(shù)數(shù)量設(shè)為350。
圖2 水體樣本預(yù)處理后的光譜分布
圖3 機(jī)器學(xué)習(xí)模型中決策樹(shù)數(shù)量與模型在訓(xùn)練集上的MSE的關(guān)系
2.3.2 反演模型精度及對(duì)比
對(duì)原始光譜數(shù)據(jù)和三種不同的預(yù)處理方法分別使用四種機(jī)器學(xué)習(xí)模型建模。 模型的反演精度與建模的訓(xùn)練時(shí)間如表2—表5所示。
由表2—表5中數(shù)據(jù)可以看到, XGBoost在原始光譜以及三種經(jīng)過(guò)預(yù)處理數(shù)據(jù)上的建模精度均優(yōu)于其他模型, 且訓(xùn)練時(shí)間小于隨機(jī)森林模型以及Adaboost模型。 線性回歸所建的反演模型表現(xiàn)較差, 說(shuō)明COD與光譜數(shù)據(jù)并沒(méi)有直接的線性關(guān)系。 在所有的模型中, 通過(guò)XGBooost對(duì)經(jīng)過(guò)SG平滑和MSC處理的數(shù)據(jù)所建的反演模型精度最高, 其中R2為0.92, RMSE為7.1 mg·L-1, RPD為3.4。 通過(guò)不同預(yù)處理方式所得的XGBoost反演模型散點(diǎn)圖如圖4(a—d)所示。
表2 基于原始數(shù)據(jù)機(jī)器學(xué)習(xí)模型結(jié)果
表4 基于MSC預(yù)處理機(jī)器學(xué)習(xí)模型結(jié)果
表3 基于SG平滑預(yù)處理機(jī)器學(xué)習(xí)模型結(jié)果
表5 基于SG平滑和MSC預(yù)處理機(jī)器學(xué)習(xí)模型結(jié)果
圖4 不同預(yù)處理方法下XGBoost反演模型COD預(yù)測(cè)值與實(shí)測(cè)值關(guān)系散點(diǎn)圖
2.4.1 PCA提取特征波段
利用主成分分析法(PCA)對(duì)經(jīng)過(guò)SG平滑以及MSC處理的高光譜數(shù)據(jù)進(jìn)行特征提取。 圖5為前10個(gè)主成分的方差貢獻(xiàn)率, 其中前五個(gè)主成分的累計(jì)方差貢獻(xiàn)率已經(jīng)達(dá)到95%以上, 包含了原始波段的大多數(shù)信息。 最終, 為保證盡可能多地保留原始高光譜信息, 選取了前十個(gè)主成分作為特征變量用于后續(xù)的建模及預(yù)測(cè)。
圖5 利用PCA方法得到的前十個(gè)主成分的方差貢獻(xiàn)率
表6 基于PCA方法XGBoost模型的結(jié)果
2.4.2 基于特征波段的建模分析
基于XGBoost機(jī)器學(xué)習(xí)方法對(duì)特征波段建立COD反演模型, 并在測(cè)試集進(jìn)行驗(yàn)證, 模型的精度以及模型訓(xùn)練時(shí)間見(jiàn)表6。
由表6中可以看出, 在XGBoost模型中經(jīng)過(guò)PCA進(jìn)行特征波段提取所建的反演模型精度高于全波段所建的反演模型, 且大大縮短了訓(xùn)練時(shí)間, 說(shuō)明經(jīng)過(guò)PCA進(jìn)行波段特征提取能夠一定程度上降低數(shù)據(jù)冗余。
以揚(yáng)州寶帶河COD為研究對(duì)象, 利用ZK-UVIR-I型原位光譜水質(zhì)在線監(jiān)測(cè)儀獲取COD的高光譜數(shù)據(jù)及對(duì)應(yīng)濃度數(shù)值, 分別采用SG平滑、 MSC以及SG平滑和MSC組合的方式對(duì)原始高光譜數(shù)據(jù)進(jìn)行預(yù)處理, 并使用四種機(jī)器學(xué)習(xí)算法(線性回歸模型、 隨機(jī)森林模型、 AdaBoost模型、 XGBoost)建立COD反演模型。 比較了不同預(yù)處理方法和機(jī)器學(xué)習(xí)模型COD反演模型精度的影響。 基于R2, RMSE和RPD比較了這幾種模型的精度, 此外還比較了各個(gè)模型的訓(xùn)練時(shí)間。 結(jié)果顯示, 線性回歸模型訓(xùn)練時(shí)間最短但是精度也最低。 XGBoost方法所建的反演模型精度, 最高RPD達(dá)到3.4。 XGBoost訓(xùn)練時(shí)間也少于隨機(jī)森林和Adaboost模型。 通過(guò)PCA方式對(duì)經(jīng)過(guò)SG平滑和MSC預(yù)處理后的全波段數(shù)據(jù)進(jìn)行特征提取, 所提取的特征波段數(shù)為10, 最后對(duì)這10個(gè)特征波段使用XGBoost進(jìn)行建模并取得了較好的效果, 而且特征波段訓(xùn)練時(shí)間遠(yuǎn)遠(yuǎn)低于全波段訓(xùn)練時(shí)間。 在實(shí)際生產(chǎn)過(guò)程中也可根據(jù)實(shí)際需求, 綜合考慮模型精度、 模型訓(xùn)練時(shí)間等因素進(jìn)行模型的選擇。
研究結(jié)果表明, 基于機(jī)器學(xué)習(xí)的高光譜COD反演模型精度可以達(dá)到較高水平, 為機(jī)器學(xué)習(xí)在高光譜水質(zhì)監(jiān)測(cè)領(lǐng)域的應(yīng)用提供了參考。 此外, 機(jī)器學(xué)習(xí)模型可解釋性需要進(jìn)一步研究。