bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测

之前曾经介绍过常用的预测模型,比如灰色预测模型、时间序列模型等。今天基于神经网络解决模型中常见的预测问题。

一、BP神经网络预测

(一)数据来源

本次仿真实验的数据选取石家庄市2018-2019年冬季供暖期空气质量监测数据,并删除了无效和缺失的数据。在实验中,选取了142条数据作为训练集,选取剩下的5条数据作为测试,以便进行准确的预测。选取变量PM2.5、PM10、SO2、CO、NO2、O3这6个指标作为作为神经网络输入数据构成输入层,石家庄市AQI作为为神经网络目标输出数据构成输出层。

(二)BP神经网络建立流程

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第1张图片

图1 BP神经网络流程图

(三)对样本数据进行归一化处理

由于数据的单位范围有很大差异,可能会产生训练时间较长、收敛速度较慢的情况。最终可能会产生结果是波动范围大的数据作用会偏大,波动范围小的数据作用会偏小。此外,由于神经网络输出层的激励函数范围有限,需要将神经网络的数据映射到激励函数的有限范围。如果S型函数的极限范围为[0,1],则神经网络的训练数据应归一化为[0,1]区间。

确定样本为输入样本、输出样本后,输入样本和输出样本需要分别细分为训练集和测试集,并进行归一化处理,将输入样本、输出样本采用MATLAB2016a中函数mapminmax( )变换为[0,1]区间。mapminmax的函数形式为:

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第2张图片

其中X是需要规划的数据集,Ymin、Ymax 是规划的限值范围,缺省是为默认值[ -1, 1 ],Y为返回规划后的值,则PS在结果反归一化中需要调用的参数。

计算公式为:

bdb5fdb25c95c871244a1a9278c168bd.png

本文中需要将输入层训练集P_train、输出层训练集T_train进行归一化处理,限定值为[0,1 ] ,分别命名为p_train、t_train。对于输入层测试集P_test采用同样的方式应用归一化处理,并命名为p_test。当得到原始预测值时,还需要对得到的原始预测数据进行反归一化处理,求得最终预测值。即对输出层测试集t_sim进行数据反归一化,并命名为T_sim。

(四)BP神经神经网络预测结果

根据BP神经网络的网络结构设计,选取6个输入神经单元,1个输出神经单元,隐含层为1,隐含层节点为2,网络迭代次数为500。图2为网络训练的基本过程。

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第3张图片

图2 BP神经网络结构

图3的网络收敛结果看出,网络训练126次后收敛,网络误差为0.0019,基本达到了网络误差设置的要求。同时由图4.2可以看出,随着训练次数的增加,训练集与测试集误差逐步减小,训练集与测试集变化趋势一致,当网络训练到126次后,3条曲线基本变成一条,误差逐渐稳定。

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第4张图片

图3 模型训练仿真

图4可以看出,训练样本的拟合优度为96.57%,测试集的拟合优度是97.75%,这个拟合证明了网络训练效果优秀,完全可以通过次模型进行石家庄市AQI的预测。

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第5张图片

图4 拟合优度

利用训练过的BP神经网络对石家庄市空气质量指数AQI进行预测分析,由表1可以看出预测值T_sim与真实值T_test相差不大。综上所述,预测的总体结果和真实值较吻合,因此进一步表明BP神经网络模型的应用范围极广。

表1 真实值与预测值对比表 bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第6张图片

附Matlab运行代码:

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第7张图片

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第8张图片

bp网络拟合函数 matlab_神经网络案例分析—基于Matlab的预测_第9张图片

你可能感兴趣的:(bp网络拟合函数,matlab,matlab,sim函数,matlab,归一化,matlab,神经网络,matlab归一化,matlab拟合曲线并输出公式)