【数据预测】综合比对线性拟合与BP算法预测结果

简介: 【数据预测】综合比对线性拟合与BP算法预测结果

一、数据分析


  首先分析面源监测数据,一共有30个降雨日的数据,其中每个降雨日内都有降雨量,以及总氮、氨氮、总磷、COD这四种污染物的监测数据,且降雨数据与污染物数据数量级相差较大。进而根据污染物与降雨的关系,我认为在模拟污染物载荷时,应当考虑构建成降雨量作为自变量,其他四种污染物分别作为因变量的四个单变量函数。


  然后对数据进行标准化处理。但其实此处函数或者神经网络均为单变量,所以标准化的意义并不大。


image.png

二、模型构建


(一)线性拟合


  接着在Excel中对数据进行简单的作图分析,可以发现如下图所示,四组数据都是比较符合于线性分布。所以首先考虑采用线性模型进行拟合,拟合结果如下图所示。可以看到线性模型并不能够很好地拟合降雨量和四种污染载荷之间的关系,解释程度较高且拟合效果较差,因此本文将不采用线性拟合的方式!


image.png


(二)神经网络模拟


  由线性拟合的经验可知,降雨量与四种污染载荷之间的关系并不复杂,因而可以考虑采用较为简单的神经网络进行模拟,本文即采用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


image.png


三.使用降水量为自变量


3.1 以降水量为自变量模拟总氨量与真实总氨量进行改进BP网络实验图


image.png


3.2以降水量为自变量模拟氨氮量与真实氨氮量进行改进BP网络实验图

image.png


3.3以降水量为自变量模拟总磷量与真实总磷量进行改进BP网络实验图

image.png


3.4以降水量为自变量模拟COD值与真实COD值进行改进BP网络实验图

image.png


总结


  综合线性拟合模型和神经网络模拟的模拟效果来看,使用神经网络模型完全能胜任数据拟合任务,尽管神经网络的输出存在不稳定性,但是我们可以对神经网络输出部分进行限制从而达到在一定很小的误差内波动,从而达到理想值的要求。因此在本文中我们选择使用改进的神经网络进行预测是可以达到实验目的。



附录


源数据:image.png


结果对比数据:image.png

相关文章
|
1月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
827 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
2月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
221 1
|
2月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
325 0
|
1月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
252 5
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
199 2
|
1月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
112 0
|
2月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
115 3
|
2月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
192 0
|
1月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
143 2

热门文章

最新文章

下一篇
oss云网关配置