牛景輝
(天津石油職業(yè)技術(shù)學(xué)院,天津 301607)
在工業(yè)污水處理領(lǐng)域,對(duì)水質(zhì)指標(biāo)的變化進(jìn)行預(yù)測(cè)能更好地優(yōu)化工業(yè)污水設(shè)施管理水平〔1-3〕。以實(shí)際工業(yè)污水處理過程的pH 和濁度為例,進(jìn)出水水質(zhì)的預(yù)測(cè)任務(wù)對(duì)污水處理工藝控制非常關(guān)鍵。對(duì)污水指標(biāo)預(yù)測(cè)的相關(guān)理論研究近年來獲得了國內(nèi)外高度關(guān)注。預(yù)測(cè)工業(yè)污水?dāng)?shù)據(jù)的方法主要分成兩大類,一類是基于水質(zhì)處理過程建模的方法〔4-5〕,另一類是數(shù)據(jù)驅(qū)動(dòng)預(yù)測(cè)方法〔6-7〕。水質(zhì)處理的機(jī)理建模存在較多的非線性參數(shù),機(jī)理數(shù)學(xué)建模過程復(fù)雜繁瑣,預(yù)測(cè)精度容易受到數(shù)據(jù)噪聲的干擾影響,且一般只能針對(duì)特定污水處理工藝過程進(jìn)行,遷移性具有很大的限制。隨著污水處理的計(jì)算機(jī)自動(dòng)化控制技術(shù)的發(fā)展,數(shù)據(jù)信息化積累了大量的污水處理監(jiān)測(cè)數(shù)據(jù)。如何有效地利用污水處理的監(jiān)測(cè)數(shù)據(jù)是亟需解決的問題。有許多數(shù)據(jù)驅(qū)動(dòng)類方法被引入污水處理數(shù)據(jù)的預(yù)測(cè)中,如:回歸統(tǒng)計(jì)、時(shí)間序列分析、BP 神經(jīng)網(wǎng)絡(luò)、長短時(shí)回憶網(wǎng)絡(luò)等方法可以對(duì)數(shù)據(jù)做到較為準(zhǔn)確的預(yù)測(cè)。N. BHOJ 等〔8〕提出了融合深度學(xué)習(xí)算法的時(shí)間序列預(yù)測(cè)方法,該方法可識(shí)別數(shù)據(jù)特征和異常情況,能夠較準(zhǔn)確地預(yù)測(cè)數(shù)據(jù)變化趨勢(shì),并指出利用優(yōu)化算法提升預(yù)測(cè)算法效果具有很大空間。Fenghua YANG 等〔9〕將提出了基于長短時(shí)回憶神經(jīng)網(wǎng)絡(luò)算法預(yù)測(cè)水質(zhì)的方法,該方法用于預(yù)測(cè)水質(zhì)處理藥劑的投加量,提升了污水處理的運(yùn)行管理水平。K. BANERJ 等〔10〕研究了使用SVM 回歸等多種機(jī)器學(xué)習(xí)算法,該方法結(jié)合了多種水質(zhì)數(shù)據(jù)變量,實(shí)現(xiàn)了較為準(zhǔn)確的水質(zhì)數(shù)據(jù)變化預(yù)測(cè)。唐亦舜等〔11〕將非線性自回歸算法用于神經(jīng)網(wǎng)絡(luò)模型進(jìn)行優(yōu)化,實(shí)現(xiàn)了對(duì)污水pH 和DO 等水質(zhì)數(shù)據(jù)良好的預(yù)測(cè)效果,但是調(diào)整參數(shù)比較繁瑣。何丹等〔12〕通過粒子群算法改進(jìn)BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行污水處理過程的預(yù)測(cè),使神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的收斂速度進(jìn)一步提升,跳出局部極值點(diǎn),實(shí)現(xiàn)了算法預(yù)測(cè)效果的優(yōu)化。王立輝等〔13〕基于灰狼優(yōu)化(Grey Wolf Optimizer,GWO)算法改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò)能夠減少參數(shù)調(diào)整的復(fù)雜程度進(jìn)而執(zhí)行數(shù)據(jù)預(yù)測(cè),在水流量預(yù)測(cè)中發(fā)現(xiàn)具有良好的效果。王春玲等〔14〕對(duì)水質(zhì)的COD數(shù)據(jù)采用了XGboost 構(gòu)建預(yù)測(cè)算法模型,并且利用了主成分分析算法進(jìn)行了數(shù)據(jù)預(yù)處理,提升了算法訓(xùn)練速度和水質(zhì)預(yù)測(cè)精度,與多種機(jī)器學(xué)習(xí)算法對(duì)照,表明XGBoost 算法預(yù)測(cè)效果最優(yōu)。
因此,筆者提出了通過XGBoost 模型構(gòu)建污水的關(guān)鍵水質(zhì)數(shù)據(jù)預(yù)測(cè)算法,另外針對(duì)其需要調(diào)整參數(shù)較多的問題,采用了灰狼優(yōu)化算法進(jìn)行模型參數(shù)的優(yōu)化調(diào)整。此外考慮到水質(zhì)數(shù)據(jù)的復(fù)雜隨機(jī)非線性特征,數(shù)據(jù)經(jīng)過預(yù)處理后,預(yù)測(cè)算法能夠更好地提取水質(zhì)數(shù)據(jù)的特征,最后通過與默認(rèn)參數(shù)的XGBoost、LSTM 算法進(jìn)行預(yù)測(cè)對(duì)照,檢驗(yàn)了該算法的穩(wěn)定性和能達(dá)到預(yù)期效果的能力。
狼群有其獨(dú)特的狩獵方式,GWO 通過研究其行為模式進(jìn)行了數(shù)學(xué)建模。借由模仿狼群的移動(dòng)模式來實(shí)現(xiàn)目標(biāo)的最優(yōu)化。在種群內(nèi)部,個(gè)體有α、β、δ3 個(gè)等級(jí),分別是頭狼、第二級(jí)別、第三級(jí)別。其圍獵過程如下:
第一步是包圍獵物:
式中:t——當(dāng)前的代數(shù);
A、C——協(xié)同系數(shù)向量;
Xp——獵物的位置向量;
X——灰狼的位置向量;
D——灰狼與獵物之間的坐標(biāo)距離。
A、C的計(jì)算方法如下:
式中,a是收斂因數(shù),伴隨迭代次數(shù)變多,從2 線性降低到0;r1、r2是[0,1]的隨機(jī)數(shù)向量。
第二步是抓捕獵物:由于獵物的坐標(biāo)未知,可以知道目標(biāo)的最優(yōu)值也未知。采用以下思路:假定α是最接近獵物的,β、δ其次,用式(5)~式(7)測(cè)算α、β、δ與獵物的距離。伴隨著不斷更新α、β、δ狼的坐標(biāo)〔式(8)~式(10)〕來召喚其他灰狼不斷接近獵物〔式(11)〕,最后認(rèn)定α狼的坐標(biāo)就是獵物的坐標(biāo)。為增加隨機(jī)性,減小陷入局部極值的概率,在位置迭代計(jì)算公式上增加了隨機(jī)項(xiàng)rand。因本研究中所有的參數(shù)被歸一化到[0,1]區(qū)間內(nèi),所以隨機(jī)項(xiàng)為[0.01,0.1]之間的隨機(jī)數(shù)。其計(jì)算式如下:
式中,Xα(t)、Xβ(t)、Xδ(t)分別為t代時(shí)α、β、δ的位置。
XGBoost 即極端決策提升樹算法,由GBDT 提升樹算法模型演變改造優(yōu)化而來〔15-16〕,通過反向疊加算法,集成Boost 策略改進(jìn)多個(gè)弱學(xué)習(xí)算法融合成1 個(gè)高度精確的學(xué)習(xí)預(yù)測(cè)算法,將多個(gè)學(xué)習(xí)器結(jié)合與預(yù)測(cè)實(shí)際值進(jìn)行評(píng)估誤差疊加加權(quán)求和不斷迭代,改進(jìn)了回歸分類決策樹的結(jié)構(gòu),從而最終實(shí)現(xiàn)提升模型的預(yù)測(cè)效果。XGBoost 算法最重要的核心問題是決策樹疊加融合評(píng)估誤差的目標(biāo)函數(shù):
式中,Loss是實(shí)際值與預(yù)測(cè)值偏差的損失函數(shù),yj是預(yù)測(cè)數(shù)據(jù)的實(shí)際值,y?i是上一個(gè)決策樹算法的結(jié)果,x是輸入數(shù)據(jù),從而擬合多個(gè)決策樹的算法結(jié)果,而fm是決策樹所采用的近似函數(shù),γ是對(duì)決策數(shù)的結(jié)果正則化改進(jìn)懲罰系數(shù)項(xiàng),而基本的決策樹近似求取函數(shù)為:
XGBoost 模型優(yōu)化調(diào)整的主要問題是以所需要預(yù)測(cè)數(shù)據(jù)樣本的特征為輸入,訓(xùn)練改進(jìn)各項(xiàng)函數(shù)的系數(shù)調(diào)整取值,并且最優(yōu)化的數(shù)據(jù)預(yù)測(cè)結(jié)果為目標(biāo),建立最優(yōu)化的XGBoost 模型算法預(yù)測(cè)所需數(shù)據(jù)的結(jié)果。在XGBoost 模型中,通常對(duì)模型預(yù)測(cè)表現(xiàn)影響較大的超參數(shù)有:最大生成樹計(jì)數(shù)、學(xué)習(xí)率、樹的最大深度和最小葉子節(jié)點(diǎn)樣本權(quán)重之和。為降低在參數(shù)調(diào)優(yōu)過程中產(chǎn)生計(jì)算工作量過大的風(fēng)險(xiǎn),僅使用GWO 優(yōu)化以上4個(gè)參數(shù)。
XGBoost模型超參數(shù)多,難以同時(shí)優(yōu)化。通過GWO優(yōu)化模型超參數(shù)的取值方法進(jìn)一步增強(qiáng)XGBoost 模型的預(yù)測(cè)能力。在XGBoost 模型參數(shù)優(yōu)化階段,狼群種群個(gè)體的適應(yīng)度函數(shù)為該個(gè)體參數(shù)下XGBoost 模型的預(yù)測(cè)結(jié)果與真實(shí)數(shù)據(jù)的均方根誤差(RMSE)。當(dāng)RMSE達(dá)到全局最小值時(shí),認(rèn)為GWO 已經(jīng)尋找到了XGBoost的最佳參數(shù)組合。
使用GWO 優(yōu)化XGBoost 算法流程示意如圖1所示。
圖1 使用GWO 優(yōu)化XGBoost 算法流程示意Fig.1 Using GWO to optimize the XGBoost algorithm process
首先隨機(jī)初始化GWO算法的種群,確定搜索范圍。把當(dāng)前輪的種群所指代的參數(shù)數(shù)據(jù)按照順序?qū)隭GBoost 模型,通過對(duì)XGBoost 模型的訓(xùn)練,獲得XGBoost 模型的計(jì)算結(jié)果。再使用驗(yàn)證集對(duì)此次完成訓(xùn)練的模型進(jìn)行求證,最后獲得適應(yīng)度函數(shù)。以適應(yīng)度函數(shù)的大小評(píng)估種群內(nèi)部各個(gè)體的水平,并計(jì)算得到下一輪的迭代種群內(nèi)各個(gè)體的移動(dòng)方向。如果滿足算法收斂條件,則停止迭代,輸出XGBoost 優(yōu)化后的參數(shù)。若不滿足收斂條件,則按照迭代規(guī)則,更新種群內(nèi)部各個(gè)個(gè)體的位置,重復(fù)上一輪操作。
在啟動(dòng)GWO 算法前,首先確定XGBoost 參數(shù)的取值范圍,其中最大生成樹數(shù)目,取值范圍為100~1 500;學(xué)習(xí)率默認(rèn)值初始設(shè)置為0.30,取數(shù)區(qū)間最小值為0.01、最大值為0.5;樹的最大深度一般初始值設(shè)定為6,取數(shù)區(qū)間最小值為3、最大值為12;最小葉子節(jié)點(diǎn)樣本權(quán)重和一般默認(rèn)數(shù)值設(shè)定為1,取數(shù)區(qū)間最小值為1,最大值為10;確定取數(shù)區(qū)間后,將所有參數(shù)進(jìn)行Min-Max歸一化,即種群的所有個(gè)體為四維空間內(nèi)的向量。同時(shí)設(shè)置狼群數(shù)量為20,最大迭代次數(shù)為200 次。
為驗(yàn)證所提算法的有效性,選取了某處水體斷面的部分關(guān)鍵水質(zhì)監(jiān)測(cè)數(shù)據(jù)。選區(qū)的樣本數(shù)據(jù)時(shí)間跨度從2019 年1 月1 日到2019 年8 月9 日,總共221 個(gè)自然日合計(jì)2 652 個(gè)時(shí)間點(diǎn),采樣間隔為120 min。在數(shù)據(jù)預(yù)處理環(huán)節(jié)使用了四分位距法移除了異常數(shù)值點(diǎn),并采用多項(xiàng)式插值法(二階)補(bǔ)齊了缺失數(shù)據(jù)。數(shù)據(jù)包含了pH、溶解氧、濁度、總磷和總氮等各項(xiàng)指標(biāo)記錄13 260條。訓(xùn)練集為前2 232 個(gè)時(shí)間點(diǎn)的數(shù)據(jù)(186個(gè)自然日),驗(yàn)證集包括了288 個(gè)時(shí)間點(diǎn)的數(shù)據(jù)(24 個(gè)自然日),測(cè)試集為最后120 個(gè)時(shí)間點(diǎn)的數(shù)據(jù)(10 個(gè)自然日)。
對(duì)所有的原始數(shù)據(jù)采用滑動(dòng)窗口的方式進(jìn)行構(gòu)造訓(xùn)練集、驗(yàn)證集與測(cè)試集。本研究中,數(shù)據(jù)滑窗寬度取l=12,滑窗步長取s=1。訓(xùn)練集數(shù)據(jù)和驗(yàn)證集、測(cè)試集數(shù)據(jù)分別進(jìn)行了均值方差歸一化(化為均值為0,方差為1 的數(shù)據(jù))與最值歸一化(數(shù)據(jù)被映射到[0,1]區(qū)間)。
本次優(yōu)化XGBoost模型的4個(gè)重要超參數(shù),分別是:最大生成樹數(shù)目(n estimator)、學(xué)習(xí)率(learning rate)、樹的最大深度(max depth)和最小葉子節(jié)點(diǎn)樣本權(quán)重和(min child weight)。最大生成樹數(shù)目取數(shù)區(qū)間最小值為100,最大值為1 500,默認(rèn)值為500;學(xué)習(xí)率默認(rèn)值為0.30,取數(shù)區(qū)間最小為0.01,最大為0.5;樹的最大深度默認(rèn)值為6,取數(shù)區(qū)間最小為3,最大為12;最小葉子節(jié)點(diǎn)樣本權(quán)重和默認(rèn)值為1,取數(shù)區(qū)間最小為1,最大值為10。
首先對(duì)XGBoost 上述4 個(gè)超參數(shù)進(jìn)行初步手動(dòng)調(diào)參,得到手動(dòng)調(diào)參后的初始值如表1 所示,其余超參數(shù)則采用默認(rèn)值。同樣地,對(duì)于對(duì)照組LSTM 也進(jìn)行了手動(dòng)調(diào)參,得到的參數(shù)值如表1 所示。為了驗(yàn)證GWO對(duì)XGBoost 預(yù)測(cè)表現(xiàn)的提升效果,在測(cè)試部分與手動(dòng)調(diào)優(yōu)后的XGBoost、LSTM 相比較,將三者分別用于預(yù)測(cè)同一水質(zhì)指標(biāo)的變化。使用GWO 優(yōu)化XGBoost 的初始超參數(shù)與手動(dòng)調(diào)優(yōu)后的XGBoost 相同。
表1 各算法初始參數(shù)Table 1 Initial parameters of each algorithm
測(cè)試集的數(shù)據(jù)時(shí)間跨度從2019 年7 月30 日開始到8 月9 日為止,共計(jì)10 個(gè)自然日(包括了用于預(yù)測(cè)7月31 日指標(biāo)的輸入數(shù)據(jù))。GWO-XGBoost、XGBoost與LSTM 分別用于預(yù)測(cè)pH、溶解氧、濁度、總磷和總氮的預(yù)測(cè)結(jié)果如圖2~圖6 所示,各算法的RMSE 與決定因數(shù)(R2)如表2 所示。
表2 各算法在不同水質(zhì)指標(biāo)下的預(yù)測(cè)表現(xiàn)比較Table 2 Comparison of the prediction performance of the algorithms for different water quality indicators
圖2 用于pH 指標(biāo)的預(yù)測(cè)結(jié)果Fig.2 Prediction results for pH
由實(shí)測(cè)結(jié)果可知,目標(biāo)斷面pH 在7.0~7.5 之間波動(dòng)。預(yù)測(cè)結(jié)果如圖2 所示。GWO-XGBoost、XGBoost與LSTM 的R2分別是0.86、0.79 和0.69,RMSE 分別為0.01、0.02 和0.04。
在預(yù)測(cè)斷面的溶解氧數(shù)值時(shí),目標(biāo)斷面溶解氧在5.1~9.5 mg/L 之間波動(dòng)。預(yù)測(cè)結(jié)果如圖3 所示,GWOXGBoost、XGBoost 與LSTM 的R2分別為0.90、0.78 和0.71,RMSE 分別為0.14、0.82 和1.51。
圖3 用于溶解氧指標(biāo)的預(yù)測(cè)結(jié)果Fig.3 Prediction results for dissolve oxygen
在預(yù)測(cè)斷面的濁度數(shù)值時(shí),目標(biāo)值在1.1~12.2 NTU之間波動(dòng)。預(yù)測(cè)結(jié)果如圖4 所示,GWO-XGBoost、XGBoost 與LSTM 的R2分別為0.85、0.74 和0.73,RMSE分別為0.53、2.01 和1.98。
圖4 用于濁度指標(biāo)的預(yù)測(cè)結(jié)果Fig.4 Prediction results for NTU
在預(yù)測(cè)斷面的總磷數(shù)值時(shí),目標(biāo)斷面總磷在0.009~0.053 mg/L 之間波動(dòng)。預(yù)測(cè)結(jié)果如圖5 所示,GWO-XGBoost、XGBoost 與LSTM 的R2分別為0.86、0.85和0.81,RMSE分別為0.001 9、0.002 3和0.002 7。
圖5 用于總磷指標(biāo)的預(yù)測(cè)結(jié)果Fig.5 Prediction results for TP
在預(yù)測(cè)斷面的總氮數(shù)值時(shí),目標(biāo)斷面總氮質(zhì)量濃度在2.2~12.3 mg/L 之間波動(dòng)。預(yù)測(cè)結(jié)果如圖6 所示,GWO-XGBoost、XGBoost 與LSTM 的R2分別為0.87、0.84 和0.80,RMSE 分別為0.64、0.93 和1.31。
圖6 用于總氮指標(biāo)的預(yù)測(cè)結(jié)果Fig.6 Prediction results for TN
由圖2~圖6、表2 可知,基于GWO 算法優(yōu)化的XGBoost 模型對(duì)目標(biāo)斷面的pH、溶解氧、濁度、總磷和總氮的預(yù)測(cè)值與實(shí)測(cè)值的變化趨勢(shì)基本保持一致,并且R2均達(dá)到0.71以上。在預(yù)測(cè)斷面的pH時(shí),結(jié)合RMSE值可知:與默認(rèn)參數(shù)的XGBoost 模型相比,經(jīng)過超參數(shù)優(yōu)化后,基于GWO 算法優(yōu)化的XGBoost 模型的預(yù)測(cè)精度和自相關(guān)檢驗(yàn)通過率均得到顯著改善;各時(shí)間序列預(yù)測(cè)結(jié)果出現(xiàn)的差異主要是由原始時(shí)間序列的波動(dòng)和量級(jí)的影響所致。
污水水質(zhì)數(shù)據(jù)具有很強(qiáng)的隨機(jī)性和非線性特征,一般的預(yù)測(cè)算法難以實(shí)現(xiàn)高精度的預(yù)測(cè),但是更高精度的預(yù)測(cè)模型對(duì)優(yōu)化污水處理運(yùn)行管理有重要指導(dǎo)作用。本研究利用灰狼算法優(yōu)化后的XGBoost模型對(duì)污水的關(guān)鍵水質(zhì)數(shù)據(jù)進(jìn)行了預(yù)測(cè)。首先,對(duì)GWO 進(jìn)行了簡化,降低了計(jì)算復(fù)雜性,同時(shí)強(qiáng)化了隨機(jī)性,降低了GWO 在迭代過程中容易陷入局部最優(yōu)區(qū)域的風(fēng)險(xiǎn)。其次,將水質(zhì)時(shí)間序列數(shù)據(jù)進(jìn)行了預(yù)處理,選取了其中部分對(duì)XGBoost模型表現(xiàn)影響大的參數(shù),并使用GWO 進(jìn)行了優(yōu)化。最后,由GWO 優(yōu)化后的XGBoost模型與手動(dòng)調(diào)參的XGBoost、LSTM 進(jìn)行了對(duì)比,證明由GWO 優(yōu)化后的XGBoost模型有著更高的預(yù)測(cè)精度和更強(qiáng)的泛化能力。與手動(dòng)調(diào)參的XGBoost模型相比,由GWO 優(yōu)化過的XGBoost模型在預(yù)測(cè)pH、溶解氧、濁度、總磷和總氮的決定因數(shù)R2分別提高了8.86%、15.38%、14.86%、1.18%和3.57%,實(shí)現(xiàn)了較為準(zhǔn)確的水質(zhì)關(guān)鍵數(shù)據(jù)預(yù)測(cè)。