一、数据分析
首先分析面源监测数据,一共有30个降雨日的数据,其中每个降雨日内都有降雨量,以及总氮、氨氮、总磷、COD这四种污染物的监测数据,且降雨数据与污染物数据数量级相差较大。进而根据污染物与降雨的关系,我认为在模拟污染物载荷时,应当考虑构建成降雨量作为自变量,其他四种污染物分别作为因变量的四个单变量函数。
然后对数据进行标准化处理。但其实此处函数或者神经网络均为单变量,所以标准化的意义并不大。
二、模型构建
(一)线性拟合
接着在Excel中对数据进行简单的作图分析,可以发现如下图所示,四组数据都是比较符合于线性分布。所以首先考虑采用线性模型进行拟合,拟合结果如下图所示。可以看到线性模型并不能够很好地拟合降雨量和四种污染载荷之间的关系,解释程度较高且拟合效果较差,因此本文将不采用线性拟合的方式!
(二)神经网络模拟
由线性拟合的经验可知,降雨量与四种污染载荷之间的关系并不复杂,因而可以考虑采用较为简单的神经网络进行模拟,本文即采用BP神经网络进行拟合。
考虑到BP神经网络存在陷入局部极小值的可能性,对拟合过程中易产生不确定性波动,我们可对BP神经网络进行改进:针对输出结果误差进行判定,对符合要求的拟合输出,不符合则淘汰掉,使输出的结果在一定较小范围的误差内。
在设置BP神经网络的时候,我们对隐含层设置为10层,函数分别为:logsig、purelin、traingdx、learngdm允许训练的最大步数设置为5000,训练目标的最小误差设置为0.00000001,学习率设置为0.0000001。
本文中采用R2作为评价指标,把R2在0.998与1.002之间的训练网络进行存储(便于下次调用),这里的R2计算公式:
SSR = SUM((真值 - 真值的均值)^2)
SST = SUM((预测值 - 预测值的均值)^2)
R2 = SSR/SST
三.使用降水量为自变量
3.1 以降水量为自变量模拟总氨量与真实总氨量进行改进BP网络实验图
3.2以降水量为自变量模拟氨氮量与真实氨氮量进行改进BP网络实验图
3.3以降水量为自变量模拟总磷量与真实总磷量进行改进BP网络实验图
3.4以降水量为自变量模拟COD值与真实COD值进行改进BP网络实验图
总结
综合线性拟合模型和神经网络模拟的模拟效果来看,使用神经网络模型完全能胜任数据拟合任务,尽管神经网络的输出存在不稳定性,但是我们可以对神经网络输出部分进行限制从而达到在一定很小的误差内波动,从而达到理想值的要求。因此在本文中我们选择使用改进的神经网络进行预测是可以达到实验目的。
附录
源数据:
结果对比数据: