bp神经网络matlab工具箱预测,BP神经网络人口预测程序(matlab实现)

bp神经⽹络matlab⼯具箱预测,BP神经⽹络⼈⼝预测程序
(matlab实现)
⾃⼰测试⼈⼝预测的matlab实现:
x=[54167
55196
56300
57482
58796
60266
61465
62828
64653
65994
67207
66207
65859
67295
69172
70499
72538
74542
76368
78534
80671
82992
85229
87177
89211
90859
92420
93717
94974
96259
97542 98705 100072 101654 103008 104357 105851 107507 109300 111026 112704 114333 115823 117171 118517 119850 121121 122389 123626 124761 125786 126743 127627 128453 129227 129988 130756 131448 132129 132802 134480 135030 135770 136460
% 该脚本⽤来做NAR神经⽹络预测
lag=3;    % ⾃回归阶数
iinput=x;    % x为原始序列(⾏向量)
n=length(iinput);
%准备输⼊和输出数据
inputs=zeros(lag,n-lag);
for i=1:n-lag
inputs(:,i)=iinput(i:i+lag-1)‘;
end
targets=x(lag+1:end);
%创建⽹络
hiddenLayerSize = 10; %隐藏层神经元个数
net = fitnet(hiddenLayerSize);
% 避免过拟合,划分训练,测试和验证数据的⽐例
ainRatio = 70/100;
net.divideParam.valRatio = 15/100;
stRatio = 15/100;
%训练⽹络
[net,tr] = train(net,inputs,targets);
%% 根据图表判断拟合好坏
yn=net(inputs);
errors=targets-yn;
figure, ploterrcorr(errors)                      %绘制误差的⾃相关情况(20lags) figure, parcorr(errors)                          %绘制偏相关情况
%[h,pValue,stat,cValue]= lbqtest(errors)        %Ljung-Box Q检验(20lags) figure,plotresponse(con2seq(targets),con2seq(yn))  %看预测的趋势与原趋势figure, ploterrhist(errors)                      %误差直⽅图
figure, plotperform(tr)                          %误差下降线
%% 下⾯预测往后预测⼏个时间段
fn=7;  %预测步数为fn
f_in=iinput(n-lag+1:end)‘;
f_out=zeros(1,fn);  %预测输出
% 多步预测时,⽤下⾯的循环将⽹络输出重新输⼊
f_out(i)=net(f_in);
f_in=[f_in(2:end);f_out(i)];
end
% 画出预测图
figure,plot(1949:2013,iinput,‘b‘,2013:2020,[iinput(end),f_out],‘r‘)⽤2014a版matlab运⾏后结果如下:
⽹络结构和各参数显⽰如下:
神经网络预测误差直⽅图

本文发布于:2024-09-22 01:34:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/361821.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:预测   误差   拟合   输出   测试   绘制   情况   训练
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议