m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

简介: m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

1.算法描述

    广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测效果很好,还可以处理不稳定数据。虽然GRNN看起来没有径向基精准,但实际在分类和拟合上,特别是数据精准度比较差的时候有着很大的优势。

   GRNN是RBF的一种改进,结构相似。区别就在于多了一层求和层,而去掉了隐含层与输出层的权值连接(对高斯权值的最小二乘叠加)。

86ded1c091beb4987fc9891f53bbbd0e_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

1.输入层为向量,维度为m,样本个数为n,线性函数为传输函数。

2.隐藏层与输入层全连接,层内无连接,隐藏层神经元个数与样本个数相等,也就是n,传输函数为径向基函数。

3.加和层中有两个节点,第一个节点为每个隐含层节点的输出和,第二个节点为预期的结果与每个隐含层节点的加权和。

4.输出层输出是第二个节点除以第一个节点。

    在GRNN神经网络中,一旦确立了学习样本数据后,只需要调整一个参数“光滑因子”即可确定其网络结构和权值,因此训练GRNN网络要比传统的神经网络更加便捷。所以选择GRNN。

————————————————

   BP神经网络的网络层包括输入层,隐含层和输出层三个网络层次,其基本结构如下图所示: 

aa692a278ad320c09ab98af5de76f77c_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

基于三层网络结构的BP神经网络具有较为广泛的应用场合和训练效果。

    在BP神经网络中,隐含层数量对神经网络的性能有着至关重要的影响,如果隐含层数量过多,会大大增加BP神经网络的内部结构的复杂度,从而降低学习效率,增加训练时间;如果隐含层数量过少,则无法精确获得训练输入数据和输出结果之间的内在规律,增加预测误差。因此,选择合适的隐含层个数具有十分重要的意义。由于隐含层个数的设置没有明确的理论可以计算,通常情况下,采用逐次分析的方法获得,即通过对不同隐含层所对应的神经网络进行预测误差的仿真分析,选择误差最小情况下所对应的隐含层个数。

    学习率,即网络权值得更新速度,当学习率较大的时候,网络权值的更新速度快,当网络稳定性会下降;当学习率较小的时候,网络权值的更新速度慢,网络较为稳定。这里选择BP神经网络的学习率方式参考上一章节隐含层的选择方式,即通过对比不同学习率的网络训练误差,选择性能较优的学习率。

   BP神经网络的初始网络权值对网络训练的效率以及预测性能有着较大的影响,通常情况下,采用随机生成[-1,1]之间的随机数作为BP神经网络的初始权值。

————————————————

2.仿真效果预览
matlab2022a仿真结果如下:

e9ed27ae831d221cbdd9c567391b7e18_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
7eeab723dec109b34d1d343dbf95fa41_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

可以看到,蓝色的是原始的数据,红色的我们的预测输出,前面几个年份,由于有已知数据,所以可以对比,可以看到,BP神经网络会存在的一定的误差。而GRNN则误差非常小。

误差具体数值,新改的程序有输出的,结果如下:

BP:

aba6261aeccd218ec4276dfb90d10226_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

GRNN:

06e2cda5117aa0b358da253514b2d9ca_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

因此,通过上述过程可知,GRNN神经网络具有更好的预测结果。

3.MATLAB核心程序

 
%GRNN神经网络训练
char    = [D]';
T       = [SAFE];
Net     = newgrnn(char,T,25);
save Grnn.mat Net;
 
%%
%通过拟合的方法,得到未来的指标的数据
X0=Time';
%设置预测年份
X1=[Time,2016,2017,2018,2019,2020];
 
Y1=D(:,1);
Y2=D(:,2);
Y3=D(:,3);
Y4=D(:,4);
Y5=D(:,5);
Y6=D(:,6);
Y7=D(:,7);
Y8=D(:,8);
Y9=D(:,9);
Y10=D(:,10);
Y11=D(:,11);
Y12=D(:,12);
Y13=D(:,13);
Y14=D(:,14);
Y15=D(:,15);
 
%开始拟合
p=polyfit(X0,Y1,5);Y1_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y2,5);Y2_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y3,5);Y3_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
p=polyfit(X0,Y4,5);Y4_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);
 
p=polyfit(X0,Y5,5);Y5_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y6,5);Y6_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y7,5);Y7_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y8,5);Y8_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
 
p=polyfit(X0,Y9,5);Y9_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y10,5);Y10_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y11,5);Y11_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y12,5);Y12_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
 
p=polyfit(X0,Y13,5);Y13_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y14,5);Y14_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
p=polyfit(X0,Y15,5);Y15_=p(1)*X1.^5+p(2)*X1.^4+p(3)*X1.^3+p(4)*X1.^2+p(5)*X1.^1+p(6);;
 
相关文章
|
1天前
|
存储 算法 数据可视化
基于harris角点和RANSAC算法的图像拼接matlab仿真
本文介绍了使用MATLAB2022a进行图像拼接的流程,涉及Harris角点检测和RANSAC算法。Harris角点检测寻找图像中局部曲率变化显著的点,RANSAC则用于排除噪声和异常点,找到最佳匹配。核心程序包括自定义的Harris角点计算函数,RANSAC参数设置,以及匹配点的可视化和仿射变换矩阵计算,最终生成全景图像。
|
1天前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
11 1
|
2天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于有序抖动块截断编码的水印嵌入和提取算法matlab仿真
这是一个关于数字图像水印嵌入的算法介绍。使用MATLAB2022a,该算法基于DOTC,结合抖动和量化误差隐藏,确保水印的鲁棒性和隐蔽性。图像被分为N*N块,根据水印信号进行二值化处理,通过调整重建电平的奇偶性嵌入水印。水印提取是嵌入过程的逆操作,通过重建电平恢复隐藏的水印比特。提供的代码片段展示了从块处理、水印嵌入到噪声攻击模拟及水印提取的过程,还包括PSNR和NC的计算,用于评估水印在不同噪声水平下的性能。
|
2天前
|
机器学习/深度学习 并行计算 算法
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
MATLAB|【免费】概率神经网络的分类预测--基于PNN的变压器故障诊断
【Simulink】飞轮储能系统的建模与MATLAB仿真(永磁同步电机作为飞轮驱动电机)
【Simulink】飞轮储能系统的建模与MATLAB仿真(永磁同步电机作为飞轮驱动电机)
|
3天前
|
算法 计算机视觉
基于表面法线法的二维人脸图构建三维人脸模型matlab仿真
该内容概述了一个使用MATLAB2022a的二维人脸图像三维重建算法。首先,通过人脸检测和对齐,然后运用深度信息估计技术(如Shape from Shading)获取表面法线。接着,结合预训练的三维人脸模型库和二维关键点,通过迭代优化和全局优化构建三维模型。核心程序涉及图像处理、光源方向转换、反射率和表面法线计算,最终重构高度图并显示结果。该方法依赖多视角图像,单幅图像重建可能存在挑战。
|
13天前
|
网络协议 算法 Linux
【Linux】深入探索:Linux网络调试、追踪与优化
【Linux】深入探索:Linux网络调试、追踪与优化
|
2天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
12 0
|
3天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
10 0
|
3天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
9 0

热门文章

最新文章