李 暢 潘 豐
(江南大學(xué)輕工過程先進(jìn)控制教育部重點實驗室 無錫 214122)
隨著社會經(jīng)濟(jì)的進(jìn)步和發(fā)展,人類對水環(huán)境的污染日益加劇,污水的高效處理對于可持續(xù)發(fā)展有著越來越重要的意義[1]。氨氮是水體中的營養(yǎng)素,磷是藻類生長需要的一種關(guān)鍵元素,過量磷和氨氮是造成富營養(yǎng)化和赤潮的主要原因[2~4]。在2002年由國家環(huán)境保護(hù)總局發(fā)布的《城鎮(zhèn)污水處理廠污染物排放標(biāo)準(zhǔn)》中規(guī)定一級A標(biāo)準(zhǔn)中NH4-N排放濃度最高為5mg/L,TP排放濃度最高為0.5mg/L[5~7]。
目前,針對水質(zhì)中NH4-N濃度的測定,國家標(biāo)準(zhǔn)方法為納氏試劑分光光度法,此外還有電化學(xué)分析法等[8];針對水質(zhì)中TP濃度的測定,國家標(biāo)準(zhǔn)方法為鉬酸銨分光光度法,此外還有離子色譜法和羅丹明6G熒光分光光度法等[9]。這些測定方法操作繁瑣,實時性不高,而相關(guān)的儀器儀表售價昂貴且維護(hù)成本較高。因此,研究如何能在低成本,操作簡單的前提下實現(xiàn)出水NH4-N和TP濃度準(zhǔn)確、實時的測量,具有重要的實際意義。
針對上述問題,基于數(shù)據(jù)驅(qū)動的智能化軟測量方法在污水處理過程水質(zhì)參數(shù)檢測領(lǐng)域受到廣泛關(guān)注和應(yīng)用[10]。Deng[11]等提出基于徑向基神經(jīng)網(wǎng)絡(luò)預(yù)測出水氨氮;喬俊飛[12]等使用遞歸RBF神經(jīng)網(wǎng)絡(luò)算法建立了出水NH4-N濃度的軟測量模型;蒙西[13]等提出了一種基于類腦模塊化神經(jīng)網(wǎng)絡(luò)的軟測量方法實現(xiàn)對出水生化需氧量(BOD)和TP濃度的實時檢測;Raduly[14]等通過前饋神經(jīng)網(wǎng)絡(luò)來預(yù)測多個過程變量。以上幾種軟測量方法雖可以基本達(dá)到實時預(yù)測的要求,但預(yù)測精度仍有待進(jìn)一步提高。
針對污水出水NH4-N和TP濃度的軟測量設(shè)計主要分為三部分:數(shù)據(jù)采集并使用KNN算法進(jìn)行數(shù)據(jù)預(yù)處理;利用XGBoost算法進(jìn)行軟測量建模;使用網(wǎng)格搜索方法調(diào)整XGBoost的參數(shù)。
污水處理采用目前使用最普遍的厭氧-好氧(A2O)工藝[15],設(shè)備由一個生物反應(yīng)器和一個二次沉淀池組成,其中生物反應(yīng)器包含缺氧部和曝氣部兩部分。采集數(shù)據(jù)時,將傳感器探頭分別設(shè)置在進(jìn)水初沉處、厭氧部末端、好氧部末端和出水處四個位置。數(shù)據(jù)采集系統(tǒng)如圖1所示。
圖1 污水處理數(shù)據(jù)采集系統(tǒng)
考慮到污水中各參數(shù)的采集難度以及對NH4-N和TP濃度的影響程度,選取溫度(T)、堿度(PH)、溶解氧(DO)濃度和固體懸浮物(TSS)濃度四個參數(shù)作為輔助變量,將相應(yīng)的傳感器測量數(shù)據(jù)實時傳送到數(shù)據(jù)采集儀,數(shù)據(jù)采集儀將實時數(shù)據(jù)發(fā)送到中央控制室的PC機(jī)中。
考慮到采集數(shù)據(jù)需要的人力和時間因素,確定采集8個批次的數(shù)據(jù),每批次數(shù)據(jù)的周期為14天,采樣間隔為15分鐘,每批次數(shù)據(jù)共1344組。由于實際工業(yè)過程中,數(shù)據(jù)采集時可能出現(xiàn)數(shù)據(jù)缺失,因此文中采用KNN算法對采集的數(shù)據(jù)進(jìn)行預(yù)處理,將缺失的數(shù)據(jù)填充完整。
KNN算法是通過測量不同特征值之間的距離進(jìn)行分類。它的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,其中k通常是不大于20的整數(shù)[16]。
KNN算法中,所選擇的鄰居都是已經(jīng)正確分類的對象。該方法在定類決策上只依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別[17]。利用KNN算法對污水處理過程中采集的數(shù)據(jù)集進(jìn)行填充包括以下步驟:
1)獲取污水處理過程中采集的數(shù)據(jù)集,保留并供步驟7)使用;
2)將數(shù)據(jù)集中的數(shù)值型屬性列進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化處理,以滿足KNN模型支持的數(shù)據(jù)格式;
3)由于污水處理過程中每批次采集的無缺失值數(shù)據(jù)集的數(shù)據(jù)量不大,將2)中預(yù)處理后的數(shù)據(jù)隨機(jī)拆分為訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)集;
4)設(shè)定KNN模型參數(shù)k的區(qū)間為[4,6],基于訓(xùn)練數(shù)據(jù)集和不同的KNN模型參數(shù)k,構(gòu)建KNN模型簇;
5)利用模型優(yōu)化目標(biāo)函數(shù)篩選最優(yōu)KNN模型,由于污水參數(shù)數(shù)據(jù)缺失值類型為數(shù)值型數(shù)據(jù),目標(biāo)函數(shù)S為
其中m表示驗證集的數(shù)據(jù)樣本數(shù),gf表示驗證集中每個樣本在缺失值數(shù)據(jù)列的真實值,g?f為gf對應(yīng)的模型填充值,ε為平滑因子;
6)基于驗證數(shù)據(jù)集的原始數(shù)據(jù)和預(yù)測數(shù)據(jù),依據(jù)模型優(yōu)化目標(biāo)函數(shù)對KNN模型簇篩選得到最優(yōu)KNN模型MQ;
7)基于缺失值數(shù)據(jù)構(gòu)建缺失值矩陣,帶入到模型MQ中得到預(yù)測數(shù)據(jù)集,并將其進(jìn)行反標(biāo)準(zhǔn)化復(fù)原數(shù)據(jù),完成缺失值的預(yù)測和智能填充。
為驗證KNN算法的填充效果,隨機(jī)選取某批次出水位置參數(shù)中TP列的100組數(shù)據(jù),遍歷此列數(shù)據(jù)并找出缺失值,使用KNN算法進(jìn)行缺失值填充,填充效果如圖2。
圖2 使用KNN填充后TP列數(shù)據(jù)
采用XGBoost算法進(jìn)行軟測量建模,此算法是對梯度提升樹(GBRT)算法的優(yōu)化,相較于GBRT算法,XGBoost算法將目標(biāo)函數(shù)進(jìn)行了泰勒展開,并加入正則項[18],可以有效降低模型過擬合的風(fēng)險。
其中L(θ)為損失函數(shù),Ω(θ)為正則化懲罰項,且回歸樹中的預(yù)測結(jié)果?為
其中K為回歸樹的數(shù)量,fk(xi)為每一棵樹的得分值,θ為使目標(biāo)函數(shù)最小時所需要求出的參數(shù)。對式(2)進(jìn)行整理可得:
其中T表示第t棵樹中總?cè)~子節(jié)點的個數(shù);ωj表示第j個葉子結(jié)點的得分值;α、λ為常數(shù),表示正則懲罰中的參數(shù)[19]。
然后輸入采集的6個批次的污水水質(zhì)參數(shù)數(shù)據(jù)進(jìn)行模型訓(xùn)練,對于第t輪迭代,模型的目標(biāo)函數(shù)可表示為
其中ft(xi)表示加入的第t棵分類回歸樹;常數(shù)C表示前t-1棵樹的復(fù)雜程度。
進(jìn)一步地,將第t輪迭代的目標(biāo)函數(shù)用泰勒級數(shù)展開,可以得到:
其中g(shù)i表示對的一階導(dǎo)數(shù);hi表示對的二階導(dǎo)數(shù)。
進(jìn)一步化簡可以得到最終的目標(biāo)函數(shù):
其中Ij表示在第j個葉子結(jié)點上的樣本。
顯然,此時只需尋找一個最優(yōu)的權(quán)重值,即可獲得最優(yōu)的目標(biāo)函數(shù)值。因此,將目標(biāo)函數(shù)obj(t)對ωj求偏導(dǎo)并令其等于0,可以求出最優(yōu)權(quán)重值為
將式(9)帶入式(8)可得最優(yōu)的目標(biāo)函數(shù)值為
XGBoost的參數(shù)調(diào)整一般指的是調(diào)整booster參數(shù),booster參數(shù)取決于使用哪種booster,常用的booster有樹模型和線性模型,由于樹模型的性能一般比線性模型好得多,因此文中選擇使用樹模型并調(diào)整其相應(yīng)的參數(shù)。
樹模型主要參數(shù)及其特征如下[20]:
1)eta
學(xué)習(xí)速率,默認(rèn)值為0.3,通過減少每一步的權(quán)重,可以提高模型的魯棒性,典型值為0.01~0.4。
2)n_estimators
弱學(xué)習(xí)器的最大迭代次數(shù),或者說最大的弱學(xué)習(xí)器的個數(shù),默認(rèn)值為100。
3)min_child_weight
決定最小葉子節(jié)點樣本權(quán)重和,默認(rèn)值為1。這個參數(shù)用于避免過擬合。當(dāng)它的值較大時,可以避免模型學(xué)習(xí)到局部的特殊樣本,但是如果這個值過高,會導(dǎo)致欠擬合。
4)max_depth
樹的最大深度,默認(rèn)值為6。值越大,模型會學(xué)到更具體更局部的樣本。典型值為3~10。
5)gamma
指定了節(jié)點分裂所需的最小損失函數(shù)下降值,默認(rèn)為0。這個參數(shù)的值越大,算法越保守。
6)subsample
控制對于每棵樹隨機(jī)采樣的比例,默認(rèn)為1。典型值為0.5~1。
7)colsample_bytree
控制每棵隨機(jī)采樣的列數(shù)的占比(每一列是一個特征),默認(rèn)為1。典型值為0.5~1。
針對上述參數(shù)的調(diào)整,采用網(wǎng)格搜索方法,按照參數(shù)調(diào)整順序,逐個尋找最優(yōu)值。XGBoost參數(shù)調(diào)優(yōu)的步驟如下。
1)確定eta為默認(rèn)值0.1;
2)固定eta,確定n_estimators的搜索區(qū)間[50,800],通過網(wǎng)格搜索找到其最優(yōu)值;
3)max_depth和min_child_weight參數(shù)調(diào)優(yōu),搜索區(qū)間分別為[1,15]和[1,5];
4)gamma參數(shù)調(diào)優(yōu),搜索區(qū)間為[0,1];
5)subsample和colsample_bytree參數(shù)調(diào)優(yōu),搜索區(qū)間均為[0,1];
6)保持eta和n_estimators的乘積不變,降低eta并使用更多的決策樹。
文中通過上述過程的參數(shù)調(diào)整,得到分別針對出水NH4-N和TP濃度的兩組booster參數(shù)如表1。
表1 調(diào)整后的參數(shù)值
將實際采集的6個批次水質(zhì)參數(shù)數(shù)據(jù)輸入并訓(xùn)練模型后,再使用兩個批次數(shù)據(jù)進(jìn)行驗證,隨機(jī)選取某批次出水NH4-N和TP濃度的預(yù)測效果如圖3。
圖3 調(diào)參前出水NH4-N和TP濃度預(yù)測效果
由預(yù)測圖的擬合情況可以看出,在XGBoost算法中對于booster參數(shù)均使用其默認(rèn)值的情況下,預(yù)測精度并不高,因此對參數(shù)的調(diào)整十分重要。
將booster參數(shù)按照2.3中的步驟調(diào)整后,該批次的預(yù)測結(jié)果如圖4。
圖4 調(diào)參后出水NH4-N和TP濃度預(yù)測結(jié)果
此時,從圖中即可明顯看出預(yù)測效果有了很大提升,為對比調(diào)參前后預(yù)測效果的變化,選擇回歸率(R-squared)、均方根誤差(RMSE)和平均絕對誤差(MAE)三個回歸指標(biāo)進(jìn)行比較,將調(diào)參前后的回歸指標(biāo)保留4位小數(shù)記錄如表2。
表2 調(diào)參前后XGB算法回歸指標(biāo)
對比調(diào)參前后回歸指標(biāo),參數(shù)調(diào)整后回歸率提升了7.75%,RMSE和MAE分別降低了42.93%和38.99%,顯然調(diào)參后的預(yù)測效果大大提高。
為檢驗XGBoost算法對于污水處理過程關(guān)鍵參數(shù)NH4-N和TP的預(yù)測精度情況,采用隨機(jī)森林(RandomForest)算法、GBRT算法和套袋(Bagging)算法[23]分別進(jìn)行建模并仿真,對NH4-N濃度的預(yù)測效果如圖5、圖6和圖7所示。
圖5 RandomForest算法對出水NH4-N濃度預(yù)測效果
圖6 GBRT算法對出水NH4-N濃度預(yù)測效果
圖7 Bagging算法對出水NH4-N濃度預(yù)測效果
為對比上述三種軟測量方法與XGBoost算法對于出水NH4-N和TP濃度的預(yù)測效果差異,將四種軟測量方法下的回歸指標(biāo)數(shù)據(jù)記錄如表3。由表中數(shù)據(jù)可以看出,在污水處理關(guān)鍵參數(shù)的軟測量問題上,使用RandomForest算法、GBRT算法和Bag?ging算法時,對于NH4-N和TP濃度的預(yù)測回歸率均在95%以下,而XGBoost算法預(yù)測效果則明顯優(yōu)于RandomForest算法、GBRT算法和Bagging算法,且其回歸率均可達(dá)95%以上。
表3 四種軟測量方法下的回歸指標(biāo)
為解決污水處理過程中關(guān)鍵參數(shù)NH4-N和TP難以實時在線測量的問題,首先使用KNN算法進(jìn)行缺失值填充,有效解決了實際采樣數(shù)據(jù)存在缺失值的問題;進(jìn)一步地,提出了一種基于XGBoost算法的軟測量方法并建立軟測量模型,實現(xiàn)了對出水NH4-N和TP的實時預(yù)測。仿真結(jié)果表明,該方法有較高的預(yù)測精度。