APP下载

闽江流域水质预测模型研究

2023-04-29林闽微

信息系统工程 2023年8期

林闽微

摘要:良好的水环境是人类社会经济可持续发展的前提和必备因素,在河流水环境不断被污染和破坏的前提下,水质的预测工作格外关键,并且对河流水环境的研究和维护具有重大的基础意义。使用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.

作者单位:中国人民大学