基于随机森林的温瑞塘河总氮模拟与预测
王学东1,2, 黄宏1,2, 梅琨1,2, 商栩1,2, 夏芳1,2, 王振峰1,2,*
1.温州医科大学 浙南水科学研究院,浙江 温州 325035
2.浙江省流域水环境与健康风险研究重点实验室,浙江 温州 325035
通信作者:王振峰(1983—),男,湖北荆州人,助理研究员,博士,研究方向为水环境保护,E-mail: wangzf@iwaterlab.com

作者简介:王学东(1967—),男,河南淮阳人,研究员,博士,研究方向为环境化学,E-mail:zjuwxd@163.com

摘要

为快速获得水体中总氮含量,采用随机森林方法建立总氮预测回归模型。结果显示,较少的数据异常值仍会造成随机森林模型较大的误差,去除4.6%的异常值后,模型均方根误差(MSE)降低了42.4%。随机森林模型可对自变量的相对重要性做出评估,对总氮而言,最重要的变量是氨氮,模型2个主要参数随机树数量(ntree)和随机分割变量数(mtry)的值分别为400和2。在选择合适的参数值时,随机森林模型不易出现过拟合显示,建立的随机森林模型可以快速预测水体中总氮的含量。

关键词: 随机森林; 回归模型; 温瑞塘河; 总氮
中图分类号:X832 文献标志码:A 文章编号:0528-9017(2017)07-1269-04 doi: 10.16178/j.issn.0528-9017.20170756

温瑞塘河是温州重要的河网水系, 位于瓯江以南、飞云江以北的温瑞平原, 属于典型的城市平原河网。其水源主要来自瞿溪、雄溪、郭溪(通称三溪)以及大罗山和集云山的山涧溪流, 流域面积740 km2, 水域面积22 km2, 主河道33.85 km, 大小河流共1 178 km, 正常蓄水量6 500万m3。从20世纪80年代起, 由于经济过度发展、人口急剧增加和环境基础设施不完善, 温瑞塘河水环境逐渐恶化, 水体污染, 河床淤积, 多数河段水质长期处于劣V类。目前, 温瑞塘河主要污染源为城市生活污水, 主要超标指标为氨氮和总磷。自2013年以来, 温州市全面实施“ 五水共治” , 建设浙南美丽水乡专项整治行动, 水环境明显改善。但是, 由于地表水环境标准中未对河流总氮规定限值, 一般地, 总氮并未被纳入城市河流治理过程中。根据温州市2017年最新行动计划, 在2017年底前将全面消除市控以上断面的劣V类水。2016年最新监测数据显示, 即使在氨氮指标优于V类水的站位, 其水体总氮含量仍在2.15~8.83 mg· L-1, 富营养化程度仍然很高。因此, 在城市河道治理中, 对总氮指标也应给予足够的重视。

在以生活污水为主要污染源的城市河流中, 氨氮是主要污染指标之一, 且总氮往往与氨氮有较强的相关性[1, 2]。随着传感器技术的发展, 部分水质指标已可通过YSI等便携式仪器现场获得, 如溶解氧、氨氮、温度等, 但仍有许多指标需要在实验室检测获得, 如硝氮、总氮、总磷等。在总氮检测过程中, 由于水样处理及硝化等多个环节可能存在问题, 导致经常出现总氮检测值小于无机氮之和的现象[3, 4]。部分研究利用水质模型和统计方法建立起总氮预测模型, 取得了较好的结果, 如模糊线性回归模型[5]、马尔可夫链[6]、神经网络[7]、多元回归模型[8]等。本研究通过对温瑞塘河现场监测获得的各项水质指标数据, 建立总氮预测模型, 旨在为现场快速计算总氮浓度提供方法参考。

1 材料与方法
1.1 数据获取

从2008年开始, 在温瑞塘河温州市区段布设40个监测点, 每月监测1次。监测站点如图1所示。本研究所用的数据是2008年6月至2010年12月以及2015年12月至2016年12月的监测数据。监测范围仅限于温瑞塘河温州市区范围。在2008— 2010年, 共设置监测点40个; 2015— 2016年, 在上述40个点中仅选取布设了17个监测点。除水体总氮和浊度指标在实验室检测获得外, 其他指标均由YSI现场测得。

图1 水质监测点的分布

其中, 总氮采用碱性过硫酸钾消解— 紫外分光光度法分析, 浊度采用分光光度法分析。

1.2 模型建立

随机森林是较常用的一种机器学习方法, 由Breiman于2001年正式提出[9], 并给出了完整原理和证明。其本质是由多棵分类与回归树(classification and regression tree, CART)构成的一种集成算法, 能够同时处理分类和回归问题。随机森林无须考虑变量假设条件, 可同时接受分类变量和数值变量, 可评估变量重要性, 对变量的统计分布也不敏感, 不会过拟合, 不需交叉验证, 模型参数少。这使其成为较受欢迎的分类模型之一。随机森林算法已在许多常用统计软件或数据挖掘软件中实现, 如R、Matlab、Weka等。本研究选择R软件中常用的randomForest包作为平台。

建立随机森林回归模型时, 模型默认评价变量为均方根误差(mean of squared residuals, MSE)和R2, 其计算公式分别为:

MSE= 1n(yi-y^i)2n;

R2=1- MSEσ^y2

式中, n为样本数, yi为因变量实测值, y^i为因变量估计值, σ^y为因变量实测值标准差。

建立随机森林模型的过程为:1)确定自变量和因变量; 2)建立初始模型; 3)分析并处理异常值; 4)重建模型; 5)优化模型变量和参数; 6)模型误差分析与评价。

因随机森林模型结果具有不确定性, 为获取确定结果, 所有模型运行100次, 分别取MSE和R2的平均值为模型最终结果。

2 结果与分析
2.1 水质指标数据概况

经过处理, 去除无效数据及空值数据后, 剩余有效记录1 178条。数据共包含7个水质指标, 各指标信息概况如表1所示。

表1 水质指标的信息
2.2 初始模型构建

RandomForest包提供的随机森林模型主要包含2个参数, 随机树的数量ntree和随机树分割变量数mtry, 在本研究中其默认值分别为500和2。由此, 利用所有数据以及所有变量建立总氮的基本随机森林模型, 模型参数及结果如表2所示。

表2 总氮基本随机森林模型
2.3 异常值

如图2所示, 总氮中包含许多异常值, 且主要位于高值一侧。使用R软件的boxplot.stats方法统计总氮, 获得异常值54个, 约占总记录的4.6%。在模型参数不变时, 去除这些异常值记录后, 模型M1性能有较大改善, MSE值由3.21降至1.85, 下降了约42.4%, R2由91.2%微降至87.0%。

图2 总氮含量分布

Breiman[9]认为, 当数据样本中异常值少于5%时, 对随机森林性能影响不大; 但本研究结果显示, 即使不多于5%的异常值, 对随机森林模型的性能仍有较大影响, 特别是对误差值的影响较大。这可能是因为前项结论针对的是分类问题, 而非回归模型。为获得合理的模型精度, 本研究后续模型使用的数据均排除异常值。

2.4 变量重要性

随机森林可以评估各个变量对模型的相对重要性。图3为模型M1显示的变量重要性。在随机森林模型中, 去除任何一个自变量, 模型整体误差MSE的值增加百分比(%IncMSE)越大, 即模型精度下降越快, 说明该变量越重要。可以看出, 模型M1中自变量的重要性从高到低依次为nh4> ec> temp> ph> do> turb。氨氮重要性最高, 即模型中自变量氨氮对因变量总氮的预测最重要, 主要原因是温瑞塘河中总氮的主要组成部分是氨氮, 且样本中二者相关性最高, 约为0.92。

图3 变量的重要性

随机森林评估的变量重要性结果只代表相对重要性。若要为模型选择合适的自变量, 仍需要按照变量重要性依次建立模型, 并对各个模型性能进行评估。为便于选择不同自变量时比较模型的性能, 将所有模型参数设定为ntree=500, mtry=1, 表3为按变量重要性依次选择不同自变量组合的随机模型模拟结果, 最佳组合为nh4+ec+temp+ph, 即模型M24

表3 变量选择及模型性能
2.5 模型参数设定

随机森林中主要的控制参数为ntree和mtry, 分别表示随机森林中树的数量和变量分割数。ntree的目的主要是让森林中的树足够多, 以便模型能够稳定或收敛, mtry是分割时随机选择变量的个数, 主要影响模型的性能; 因此, 可以先选择一个足够大的ntree使模型稳定, 将mtry参数调整好后, 再调整ntree。在randomForest中, ntree默认值为500, 在本研究中, 该默认值足以使模型快速收敛(图4), mtry在回归模型中的默认值计算方法为n/3, 其中, n为自变量总数。

图4 模型M24随机树总数对模型误差的影响

对mtry取值1、2、3、4分别建模, 模型运行结果如表4所示。当mtry=2, 其他参数不变时, 模型性能最好。根据randomForest提供的计算规则, 当变量个数为4时, mtry默认值为1, 但模型运行结果显示, 默认值并非最优选择。

表4 mtry取值对模型的影响

过大的ntree在模型稳定后虽然不影响模型性能, 但会影响模型运行时间。本研究使用的样本数和变量数均较小, 模型运行时间影响不大。表5显示了ntree参数对模型的影响, 随着随机ntree值的增大, 模型运行时间有较大的增加。当ntree=400时, 模型性能不再提升。至此, 在样本数为1 124时, 最优随机森林模型为M37=randomForest(tn~nh4+ec+temp+ph, ntree=400, mtry=2), 此时模型误差MSE=1.79, R2=87.3%。

表5 ntree取值对模型的影响
2.6 模型预测

按照上述建模过程, 将去除异常值后的样本数据随机抽取70%用于建模, 30%用于预测。建立的最优模型M41及预测结果如表6和图5所示。预测精度与模拟精度相当, 说明该模型未出现明显过拟合现象。且模型模拟和预测的平均相对误差分别为14.8%和18.4%, 均在可接受范围内。

表6 随机森林模型模拟与预测

图5 模型M41的预测结果线条函数为y=x

Breiman[9]曾证明, 当随机森林产生的树无穷多时, 根据大数定律, 随机森林模型训练误差与测试误差趋于相同。由此可知, 在选择合适的ntree值时, 随机森林模型不易过拟合。

3 小结

本研究显示, 随机森林回归模型可用于水质数据模拟与预测, 且误差在可接受范围内。数据异常值对随机森林模型影响较大, 本研究中去除不超过5%的异常值后, 模型均方根误差(MSE)下降40%以上。随机森林模型可用于变量选择, 其评估结果给出了变量的相对重要性:氨氮浓度> 电导率> 温度> 酸碱度> 溶解氧浓度> 浊度。随机森林模型默认参数值并非模型最优参数, 需要对不同的参数值进行测试分析, 才能获得模型的最优参数值。随机森林模型有较好的稳定性, 不易出现过拟合现象。利用随机森林模型, 通过实时监测的方式快速预测总氮浓度值是可行的。

The authors have declared that no competing interests exist.

参考文献:
[1] 李文杰, 王冰. 地表水中氨氮和总氮的相关性分析[J]. 环境保护科学, 2012, 38(3): 79-81. [本文引用:1]
[2] 张涛, 胡冠九, 范清华, . 太湖入湖河流总氮与氨氮相关性特征分析研究[J]. 环境科学与管理, 2015, 40(2): 21-23. [本文引用:1]
[3] 黄慧坤. 环境样品监测中总氮低于氨氮的原因[J]. 环境科学导刊, 2004, 23(增刊): 219-220. [本文引用:1]
[4] 赵楠, 李建坡, 丁致英, . 地表水检测中氨氮高于总氮的原因探讨[J]. 中国给水排水, 2006, 22(22): 89-91. [本文引用:1]
[5] 周九州, 刘强, 荣湘民, . 模糊线性回归模型在河流水体总氮浓度预测中的应用[J]. 生态学杂志, 2009, 28(12): 2628-2632. [本文引用:1]
[6] 赵继东, 胡婷, 杜庆治. 马尔科夫链在弥苴河总氮量预测中的应用[J]. 环境科学导刊, 2015, 34(4): 18-20. [本文引用:1]
[7] RAJAEE T, SHAHABI A. Evaluation of wavelet-GEP and wavelet-ANN hybrid models for prediction of total nitrogen concentration in coastal marine waters[J]. Arabian Journal of Geosciences, 2016, 9(3): 176. [本文引用:1]
[8] DIMBERG P H, BRYHN A C. Predicting total nitrogen, total phosphorus, total organic carbon, dissolved oxygen and iron in deep waters of Swedish lakes[J]. Environmental Modeling & Assessment, 2015, 20(5): 411-423. [本文引用:1]
[9] BREIMAN L. Rand om forests[J]. Machine Learning, 2001, 45(1): 5-32. [本文引用:3]