BP神经网络预测(人口)程序(matlab)

BP神经网络预测(人口)程序(matlab)自己测试人口预测的matlab实现:x=[54167  55196  56300  57482  58796  60266  61465  62828  64653  65994  67207  66207  65859  67295  69172  70499  72538  74542…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

自己测试人口预测的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运行后结果如下:

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

                  BP神经网络预测(人口)程序(matlab)

                    BP神经网络预测(人口)程序(matlab)

                 BP神经网络预测(人口)程序(matlab)

                     BP神经网络预测(人口)程序(matlab)

                                                                       误差直方图

                  BP神经网络预测(人口)程序(matlab)

 

                    BP神经网络预测(人口)程序(matlab)

                BP神经网络预测(人口)程序(matlab)

 

                BP神经网络预测(人口)程序(matlab)

图1  自相关    图2 误差

                          BP神经网络预测(人口)程序(matlab)

 图3 预测

BP神经网络预测(人口)程序(matlab)

 

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

138701.065269972    139467.632609654    140207.209707364    141210.109373609    141981.285378849    142461.332139592    143056.073139776

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197096.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zencart包包模板

    zencart包包模板很适合包包,鞋子的一款模板,该zencart模板为成品网站该网站的zencart版本为zencart1.3.9h该安装的常用插件有:1、ultimateseourls2、CSS/JSLoader3、JQzoom放大镜4、RSSFeed5、FastandEasyCheckout6、ImageHandler37、EasyPop

    2022年7月27日
    3
  • Linux系统安装tomcat7

    Linux系统安装tomcat7Linux上如果尚未安装JDK,可以参考博文https://mp.csdn.net/postedit/801814221.下载Linux版tomcat7,官网即可下载https://tomcat.apache.org/download-70.cgi2.确定好在Linux上你tomcat要放的路径,我的是/usr/tomcat,可以在/usr目录下mkdirtomcat3.将本地tomcat的文件…

    2022年5月24日
    33
  • apache 负载均衡策略_dubbo有哪几种负载均衡策略

    apache 负载均衡策略_dubbo有哪几种负载均衡策略将Apache作为LoadBalance前置机分别有三种不同的部署方式,分别是:1)轮询均衡策略的配置进入Apache的conf目录,打开httpd.conf文件,在文件的末尾加入:ProxyPass/balancer://proxy/        #注意这里以”/”结尾balancer://proxy>        BalancerMemberhttp:

    2022年10月10日
    0
  • 分布式数据存储系统:CAP理论

    分布式数据存储系统:CAP理论分布式数据存储:CAP理论前言什么是CAP?CAP选择策略及应用保CA弃P保CP弃A保AP弃C对比分析知识扩展:CAP和ACID的“C”“A”是一样的吗?总结前言分布式系统处理的关键对象是数据,而数据其实是与用户息息相关的。CAP理论指导分布式系统的设计,以保证系统的可用性、数据一致性等特征。比如电商系统中,保证用户可查询商品数据、保证不同地区访问不同服务器查询的数据是一致的等。什么是CAP?假设某电商,在北京、杭州、上海三个城市建立了仓库,同时建立了对应的服务

    2025年6月10日
    0
  • 黑苹果怎么安装clover(clover引导教程)

    黑苹果安装教程多逛逛论坛,多攒攒人品,相信人品加技术再有点经验,安装黑苹果并不难(大神说的。。。。)

    2022年4月17日
    55
  • ctk框架搭建(一) ctk框架插件加载与项目结构

    ctk框架搭建(一) ctk框架插件加载与项目结构序 使用CTK框架开发有大半年了,就实际应用上来说框架还比较可靠,但网上资料很少。而刚接触时项目已经有了相当大的体量,与业务等其他逻辑混淆,现在单独把ctk框架部分抽离出来做个总结分享,避免后来的人走弯路。 该系列介绍简单的ctk框架构建的方法,具体架构可根据自身项目设计,开发环境为macOSHighSierra,QtCreator5.10.0。ctk框架插件    CTK源码可以从Gi…

    2022年6月5日
    92

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号