林閩微



摘要:良好的水環境是人類社會經濟可持續發展的前提和必備因素,在河流水環境不斷被污染和破壞的前提下,水質的預測工作格外關鍵,并且對河流水環境的研究和維護具有重大的基礎意義。使用XGBoost算法對閩江流域的水質進行預測。收集了大量的水質監測數據,并使用XGBoost算法,結合有效的數據預處理操作,對數據進行建模和分析。結果顯示,XGBoost算法在水質預測方面具有很高的準確性和可靠性。
關鍵詞:水質預測;XGBoost算法;特征工程;建模分析
一、前言
隨著社會的快速發展,工業生產排放的廢水、日常生活排放的污水,及農業生產的化肥濫用、畜牧業養殖的廢水等,都對自然環境的水質造成了極大的危害。因此,加強水質監測和預測刻不容緩。良好的水質監測工作可以為監管部門提供更好的決策依據,踏踏實實地踐行“綠水青山就是金山銀山”的文明發展理念。
二、閩江水域預測研究現狀
閩江是福建的母親河,全長562公里,流域面積60,992平方公里,約占福建全省面積的一半。加強對該水域的水質監測和預測,對福建省的健康發展和保障當地人民生活質量有著極其重要的意義。在過去的幾十年中,許多學者和研究人員已經對水質進行了研究和探索,開發了各種模型和算法來預測水質變化。隨著數據科學和機器學習的發展,越來越多的研究人員開始使用機器學習算法來預測水質[1],從主流的ARIMA時間序列到一些常見的傳統機器算法,乃至深度學習算法層出不窮。
然而,傳統的ARIMA模型相對較為簡單,所要求使用的歷史數據是穩定的,或者通過差分處理后是穩定的,通過對數據進行差分、移動平均等操作,試圖查找出歷史數據的周期性和趨勢,并剔除其中的噪音數據,完成對數據內在規律的分析及預測[2]。其本質是捕捉數據之間的線性關系,而無法獲取內部的非線性關系,因此預測效果相對不夠理想。在一些水系簡單的河流區域,此種方法的預測精度也能滿足要求。
當下火熱的神經網絡算法,其預測精度相對更高,模型的魯棒性更強,可以人為搭建各種復雜的非線性網絡結構模型,理論上可以擬合出任意程度的非線性結果,但是對數據量的要求相對較多,否則容易導致模型過擬合的情況[3]。同時,神經網絡模型因為其龐大的計算量需要依賴于GPU來完成對數據的預測,以確保預測的實時性,這樣無形中增加了模型部署時設備的投入成本。另外,該模型的可解釋性較差,導致其在后期分析問題時劣勢比較明顯,難以提供有效的針對性處理措施建議。
對傳統機器學習而言,其計算量相對神經網絡模型少,因此對設備的要求相對不高。同時,傳統機器學習所建立的模型,可以計算得到模型輸入的各個變量的權重大小,從而大大有利于后期的分析,便于相關決策部門針對產生污染的相關因素采取針對性措施,這樣不僅對水質進行預測,還可以進行預防,掌握監管的主動性[4]。XGBoost算法模型從誕生以來就是各種競賽項目的“大殺器”,具有高效、靈活和輕便的特點,在數據挖掘、推薦系統等領域得到廣泛應用。[5]
因此,綜合考慮,我們選擇了以XGBoost算法為基礎的傳統機器學習模型,并結合我們自身的數據特征工程,以實現對水質進行高精度預測,從而對水質進行有效的管理和保護。
三、數據采集和處理
我們收集了近幾年閩江某流域的一些水質監測站的記錄數據,及各污染排放點的監控數據,用以嘗試進行各個指標的排放數據預測。考慮到不同監測站所監測的指標類型不盡相同,為提升后期算法模型的自適應部署能力,我們考慮提取一些常見的公共預測指標進行事先設定。這樣構建出來的模型,既能對某個指標類型完成更精確的預測,也能避免訓練出一些無意義的模型。同時,為了降低模型復雜度,我們隨機選擇了兩個相鄰的水質監測站及兩監測站之間的污染排放點的監控數據,利用上游的水質監測站及兩監測站之間的污染排放數據,來預測下游的水質監測站的水質指標。
(一)數據的分組處理
由于不同污染排放點所屬的企業規模、產品等存在差異,各自的排放指標類型不盡相同,即有些企業的排放可能存在某個指標,而另外一些企業可能不存在該指標。且企業規模大小不同,所排放的數據量級也可能存在較大差異。因此,需事先對污染排放點的監測數據進行分組處理,獲取屬于相同企業的排放數據,以免在后期數據整合處理異常值和填充時造成錯誤。
(二)數據的頻率統一化處理
由于發現水質監測站的監測頻率與污染排放點的監測頻率不一致,我們對這些數據進行了初步預處理,以將這些數據同步到統一的頻率記錄,方便后期的數據整合。具體是對數據進行重采樣操作,整合成統一頻率后,再將這些不同來源的數據按照相同的時間點進行合并。重采樣時,由于數據中存在一些異常數據,需事先將負值和異常值替換成空值,以免影響重采樣的結果。
(三)提取有效字段的數據
在處理水質監測站的數據時,檢查發現可能存在水質監測站因改造或設備更新,導致某些監測指標的增減情況,即前期建模時存在某個監測指標數據,而后期新數據無該監測指標數據。也可能存在前期建模時無某個監測指標數據,而后期新數據卻存在監測數據。對于新數據的預測,則不能事先刪除字段。因此,在前期建模時,可以先刪除無效字段(即無監測數據的字段),但后期新數據納入預測時,應只將0和空白替換成空值,而不能隨意刪除字段。這樣才能確保在數據建模時,所建模型為有效模型。在后期預測時納入的數據,也只是選取與前期建模一致的字段數據。如預測時處理數據事先刪除無用字段,會導致預測時的字段數量與模型的字段數量不一致,導致無法預測。
(四)對數據缺失值和異常值的處理
數據重采樣后,如產生的新數值存在0,需替換成空值。而對超過一定閾值的異常值,一般采用蓋帽法,即將超出閾值的異常值直接重置為閾值。如將異常值直接替換成空值,會存在所有數據被替換成空值的情況。且部分字段的數據比較稀疏,且分布異常,替換成空值的操作容易導致數據分布的變化,數據趨向兩端。
(五)數據的填充處理
為確保數據的連續性及后期的正常預測,我們沒有對數據進行隨意刪除,而是采用線性插值法對前面處理過的數據進行填充,確保納入模型訓練的數據是完整的。
(六)數據的特征工程處理
數據的特征工程是機器學習中模型獲得較高精度的一個極其重要的步驟。其目的是提取數據中的高級特征,以更深入挖掘數據之間的關聯。良好的特征工程可以大幅提升模型的預測精度。也正是因為如此,我們花費了較大的精力,對前期初步預處理后的數據,結合自身的業務特性,進行了一些有效的特征提取操作,以通過人為的思路來獲取相對更為有效的高級特征數據。
1.對數據進行周期性回溯。也就是按照周期規律(結合我們的業務,考慮到企業日常工作的規律,設置為7天的周期),并向前追溯4周,初步生成一定周期的高級特征數據,代碼操作如圖1。
2.對這些新生成的高級特征數據,再分別計算其變化率、變化量及前幾周的均值,來獲取數據的變化趨勢,以從歷史的數據中提取數據的一些周期性變化特征。代碼操作如圖2。
四、模型的訓練和預測
五、結語
上述實驗結果表明,XGBoost算法在水質預測問題中表現出了較好的性能。我們的模型可以準確地預測水質指標的值,并且在處理大量數據時也具有很好的效率。因此,我們認為XGBoost算法是一種可行的水質預測方法。相比常規的ARIMA時間序列等算法來說,其納入了更多的數據進行綜合考慮,不僅提升了模型的預測精度,更有利于后期的水質污染的原因分析。同時,由于使用的是傳統的機器學習算法,其對計算機的配置要求不如深度學習算法高,可以很容易適配當下的配置,無需進行過多的設備升級,大大節省了成本。
當然,我們也看到當前的模型對部分監測指標的預測精度仍舊不太理想,還部分存在明顯的過擬合情況??赡芟鄳挠行祿坎蛔?,也可能影響該指標的因素并未納入監測,或者是所采用的特征工程并未提取到更為有效的高級特征。我們將來可以采取更多靈活的特征工程處理方式,比如結合PCA降維,納入氣象數據、水流速度等可能的影響因素,進一步提升模型的預測效果[7]。
希望本文的研究可以為水質預測領域的進一步研究提供借鑒和參考。此外,還應注意到,XGBoost算法在水質預測問題中的應用仍有很大的發展空間。例如,可以進行更深化的特征工程來提高模型的精度,或者將XGBoost算法與其他算法結合使用,以提高模型的泛化能力和預測準確度[8]。在未來的研究中,我們將繼續探索XGBoost算法在水質預測領域中的應用。此外,當前的水質預測模型大部分都是基于非機理模型的,導致其對突發的水質污染難以提供及時的告警預知;同時,由于機理模型極高的復雜程度和巨大的投入,難以適應實際的需求,我們也需要對水質變化的規律繼續進行深入研究,以期望能探索到真正實際有效的方法,為人類的健康和未來,提供堅強的保障。
參考文獻
[1]張鵬,逄勇,石成春,等.閩江下游水質變化趨勢分析[J].水資源保護,2018,34(1):64-69.
[2]顧杰,王嘉,鄧俊暉,等.基于ARIMA模型與BP神經網絡算法的水質預測[J].凈水技術,2020,39(6):73-82.
[3]李霖,王琨,劉強,等.基于CNN的贛江水質時空規律分析與預測[C]//2021年(第七屆)全國大學生統計建模大賽獲獎論文集(二).中國統計教育學會,2021.
[4]周信哲,陳永娟,蒲文鵬.機器學習在水質預測中的應用[C]//2020中國環境科學學會科學技術年會論文集(第四卷).《中國學術期刊(光盤版)》電子雜志社有限公司出版,2020.
[5]李天培,黃斌.基于XGBoost模型的水質預測[J].環境科學研究,2019,32(3):549-556.
[6]Chen T,Guestrin C.XGBoost: A Scalable Tree Boosting System[arXiv.org].2016.
[7]田冰,陳國建.基于XGBoost的水質綜合評價模型研究[J].水文,2019,39(4):83-88.
[8]李志明,劉福源,姚君,等.XGBoost分類算法在水質評價中的應用[J].水資源保護,2017,33(2):115-119.
作者單位:中國人民大學