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

137510]‘;

% 该脚本用来做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);

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

net.divideParam.trainRatio = 70/100;

net.divideParam.valRatio = 15/100;

net.divideParam.testRatio = 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);  %预测输出

% 多步预测时,用下面的循环将网络输出重新输入

for i=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运行后结果如下:

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

1e7eb3bf11bcfd636cbb4aaf5dccf86e.png

861517951bf9abf945ef44603af40dea.png

d340f0c6addfefc164e82ea8d3f1d18d.png

159903934706b7272ff5019edc2fcc00.png

误差直方图

b70e9abb9be129f06801be662c363598.png

6591beec5c22435e27711a64063aef35.png

60c01cd9cf30175296e96344256b7ac3.png

f21eb8104c6c63020577930b613a6f1f.png

图1  自相关    图2 误差

5701da87d2cd8607a0885466f86c0579.png

图3 预测

27a3564033f799421cdd60b326ab1846.png

注意在对结果好坏的判断中,仅仅看误差图是不够的,如果是一个好的预测,那么自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。还有其他的统计量和图表都都写在”%“后面了,如果需要,去掉就可用。最后的预测值为f_out,我的预测值为

138701.065269972    139467.632609654    140207.209707364    141210.109373609    141981.285378849    142461.332139592    143056.073139776

时间: 06-13

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人口预测是**利用历史数据和统计模型来估计未来人口数量的过程**。Python作为一种流行的编程语言,在数据分析和机器学习领域有着广泛的应用,因此也被用于进行人口预测。 以下是使用Python进行人口预测的一般步骤: 1. **环境搭建**:需要准备Python环境,通常选择适合的Python版本并安装必要的库,如Jupyter Notebook、PyTorch等。 2. **数据收集**:收集历史人口数据,这些数据可能包括过去的人口总数、出生率、死亡率、迁移率等。 3. **数据处理**:对收集到的数据进行清洗和预处理,以便于后续分析。这可能包括处理缺失值、异常值、数据标准化等。 4. **模型选择**:选择合适的统计模型或机器学习模型来进行预测。常见的模型有ARIMA、线性回归、神经网络等。 5. **模型训练**:使用历史数据训练选定的模型,调整模型参数以获得最佳拟合效果。 6. **模型评估**:通过测试数据集评估模型的预测性能,确保模型具有良好的泛化能力。 7. **预测未来**:使用训练好的模型对未来的人口进行预测,并分析预测结果。 8. **结果展示**:将预测结果以图表或报告的形式展示出来,以便他人理解和使用。 在实际应用中,可能会根据具体情况调整上述步骤。例如,如果数据量较大或者需要进行复杂的时间序列分析,可能需要使用更高级的技术,如深度学习模型。此外,为了提高预测的准确性,可能需要结合多种不同的模型和技术。 总的来说,在进行人口预测时,还需要考虑诸如政策变化、经济发展、自然灾害等因素,这些都可能对人口增长产生影响。因此,预测结果应当作为一个参考,而不是绝对准确的预测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值