首页 > 编程知识 正文

matlab神经网络实例,bp神经网络预测matlab代码

时间:2023-05-06 03:50:41 阅读:20111 作者:2505

实现测试自己人口预测的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

137510] ();

%此脚本将用于预测NAR神经网络

lag=3; %自回归阶数

I输入=x; % x是原始序列(行向量)

n=length (I输入;

%准备数据输入和输出

inputs=Zeros(lag,n-lag );

for i=1:n-lag

输入(:I )=输入(I:Ilag-1 );

结束

targets=x(lag1:end;

创建%网络

hiddenLayerSize=10; %隐藏层神经元数

net=fitnet(hiddenlayersize;

%避免过度拟合,划分训练,测试和验证数据比例

net.divide param.train ratio=70/100;

net.divide param.valratio=15/100;

net.divide param.test ratio=15/100;

%培训网络

[net,tr]=train(net,inputs,targets );

根据%%图表判断拟合的好坏

yn=net (输入;

errors=targets-yn;

figure,ploterrcorr (错误) %绘图误差的自相关情况(20lags ) ) )。

figure、parcorr、errors%标绘偏相关

%[h,pValue,stat,cvalue]=lbqtest(Errors ) %Ljung-Box Q检查(20lags ) ) ) ) ) )。

figure,plotresponse(con2seq(targets ),con2seq (yn ) ) %看预测的趋势和原来的趋势

figure,ploterrhist (错误) %误差直方图

图形,打印性能(tr ) %误差下降线

%%以下的预测预测今后几个时间段

fn=7; %预测步骤数为fn

f_in=Iinput(n-lag1:end );

f_out=Zeros(1,fn ); %预测输出

对于%多步骤预测,请在下一个周期中重新输入网络输出

for i=1:fn

f_out(I )=net ) f_in;

f_in=[f_in](2:end; f_out(I );

结束

绘制%预测图

figure,plot(194933602013,iinput,' b ',2013:2020,iinput (结束),f_out],' r ' )

在2014a版matlab中执行的结果如下。

网络结构和各个参数显示如下。

误差直方图

图1自相关图2的误差

图3预测

请注意,在判断结果好坏时,仅查看误差图表是不够的。 如果是好的预测,自相关图中除0阶自相关以外的自相关系数不应该超过上下置信区间。 另外还画了统计量和图表”%“在后面。 请根据需要去除。 最后的预测值是f_out,我的预测值是

138701.065269972139467.632609654140207.209707364141210.109373609141981.28537849142461.332139592143056.0731313056

原文地址: http://www.cn blogs.com/baby Fei/p/7003068.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。