基本思想:

根据前几次的数据模拟下一次的数据。

需要数据具有“周期性”且周期可知。

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神经网络预测

% 作者:Macer程

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')

图1自相关

图2误差

图3预测

上面的程序是可以通用的,只要你根据自己需要是可以修改用在其他地方的,基本思想就是用前lag年的人口数来预测下一年的人口,至于lag等于几你是可以自己改的。还有在对结果好坏的判断中,仅仅看误差图是不够的,如果是一个好的预测,那么自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。还有其他的统计量和图表都都写在”%“后面了,如果需要,去掉就可用。最后的预测值为f_out,我的预测值为

138701.065269972    139467.632609654    140207.209707364    141210.109373609    141981.285378849    142461.332139592    143056.073139776

R代码:

说明:测试数据具有周期性特征(7天)

library(nnet)

source

6337,11649,11652,10310,12043,7937,6476,9662,9570,9981,9331,9449,6773,6304,9355,10477,

10148,10395,11261,8713,7299,10424,10795,11069,11602,11427,9095,7707,10767,12136,12812,

12006,12528,10329,7818,11719,11683,12603,11495,13670,11337,10232,13261,13230,15535,

16837,19598,14823,11622,19391,18177,19994,14723,15694,13248,9543,12872,13101,15053,

12619,13749,10228,9725,14729,12518,14564,15085,14722,11999,9390,13481,14795,15845,

15271,14686,11054,10395,14775,14618,16029,15231,14246,12095,10473,15323,15381,14947)

srcLen

for(i in 1:10){  #预测最后十个数;

real

xNum=(srcLen-i+1)%/%7      #组数

yNum=7                     #每组7个数

data

pre=srcLen-i+1;

for(x in 1:xNum){          #数组赋值

for(y in 1:yNum){

data[x,y]=source[pre]

pre=pre-1;

}

if(pre<7){

break;

}

}

ascData

for(x in 1:xNum){

for(y in 1:yNum){

ascData[x,y]=data[xNum-x+1,y]

}

}

colnames(ascData)

trainData

nn

predict

predict=predict*sd(ascData[,1])+mean(ascData[,1])

percent

res

print(res)

}

第一次预测:

[1] "预测值: 16279.0513125717 实际值: 14947 误差: 8.91183055176118"

[1] "预测值: 14645.5327512872 实际值: 15381 误差: -4.78166080692271"

[1] "预测值: 14502.4347443558 实际值: 15323 误差: -5.35512142298625"

[1] "预测值: 9812.9237303024 实际值: 10473 误差: -6.30264747157069"

[1] "预测值: 11366.9396330435 实际值: 12095 误差: -6.01951522907361"

[1] "预测值: 15417.6946929827 实际值: 14246 误差: 8.22472759358924"

[1] "预测值: 15117.3154726064 实际值: 15231 误差: -0.746402254570258"

[1] "预测值: 16066.7818969626 实际值: 16029 误差: 0.235709632307469"

[1] "预测值: 14360.1836579368 实际值: 14618 误差: -1.76369094310545"

[1] "预测值: 14762.5499357273 实际值: 14775 误差: -0.084264394400848"

第二次预测:

[1] "预测值: 16274.2977340541 实际值: 14947 误差: 8.88002765808567"

[1] "预测值: 14645.5829417616 实际值: 15381 误差: -4.78133449215549"

[1] "预测值: 14477.3978320906 实际值: 15323 误差: -5.51851574697771"

[1] "预测值: 9851.55020425515 实际值: 10473 误差: -5.93382789787881"

[1] "预测值: 11337.4015608863 实际值: 12095 误差: -6.26373244409858"

[1] "预测值: 15417.5053358782 实际值: 14246 误差: 8.2233983986956"

[1] "预测值: 15123.5455847284 实际值: 15231 误差: -0.705498097771535"

[1] "预测值: 16049.9242132398 实际值: 16029 误差: 0.130539729488775"

[1] "预测值: 14369.3231442035 实际值: 14618 误差: -1.70116880419038"

[1] "预测值: 14765.8214583581 实际值: 14775 误差: -0.0621221092516397"

第三次预测:

[1] "预测值: 16278.9064421534 实际值: 14947 误差: 8.91086132436858"

[1] "预测值: 14634.2898096302 实际值: 15381 误差: -4.85475710532337"

[1] "预测值: 14483.9746718714 实际值: 15323 误差: -5.47559438836129"

[1] "预测值: 9818.37752965315 实际值: 10473 误差: -6.25057261860837"

[1] "预测值: 11366.9309261672 实际值: 12095 误差: -6.01958721647616"

[1] "预测值: 15417.7054099752 实际值: 14246 误差: 8.22480282167056"

[1] "预测值: 15126.2971700737 实际值: 15231 误差: -0.687432407105736"

[1] "预测值: 16066.8686059418 实际值: 16029 误差: 0.236250582954744"

[1] "预测值: 14364.9178141514 实际值: 14618 误差: -1.73130514330666"

[1] "预测值: 14771.585261145 实际值: 14775 误差: -0.023111599695413"

nar神经网络_基于神经网络的预测模型相关推荐

  1. 卷积网络和卷积神经网络_卷积神经网络的眼病识别

    卷积网络和卷积神经网络 关于这个项目 (About this project) This project is part of the Algorithms for Massive Data cour ...

  2. 代码实现识别部分截图在整张图片中的位置_基于神经网络的OCR识别

    基于神经网络的OCR识别 Optical Character Recognition(OCR) 光学识别,通俗的讲就是识别图片内的文字,比如身份证上的身份证号,姓名,地址等,银行卡上的卡号 等等. E ...

  3. 医学图像处理医学图像处理-卷积神经网络卷积神经网络_基于深度卷积神经网络的刀具磨损量自动提取方法...

    ⬆点击上方蓝色字体,关注<工具技术>官方微信~ 数控加工实质上是刀具和毛坯的相互运动,包含众多的不可控因素,在工件成型的过程中,刀具不可避免发生磨损.为了提高加工效率,实际加工中一般采用高 ...

  4. 模型 标签数据 神经网络_大型神经网络和小数据的模型选择

    模型 标签数据 神经网络 The title statement is certainly a bold claim, and I suspect many of you are shaking yo ...

  5. rnn 递归神经网络_递归神经网络rnn的简单解释

    rnn 递归神经网络 Recurrent neural network is a type of neural network used to deal specifically with seque ...

  6. 图神经网络 推荐系统,基于神经网络的推荐

    1.如何在浏览器使用synaptic.js训练简单的神经网络推荐系统 Internet Explorer (6.0)从顶部的菜单中选择 " 工具" . 选择 " Inte ...

  7. matlab交通标志神经网络识别,基于神经网络的交通标志识别方法

    Municipal & Traffic Construction SCIENCE & TECHNOLOGY FOR DEVELOPMENT 149 基于神经网络的交通标志识别方法 赵丹 ...

  8. 卷积云神经网络_卷积神经网络简介

    广告 一.卷积 我们在 2 维上说话.有两个 的函数 f(x, y) 和 g(x, y) .所谓 f 和 g 的卷积就是一个新的 的函数 c(x, y) .通过下式得到: 这式子的含义是:遍览从负无穷 ...

  9. 人工神经网络_人工神经网络实践

    人工神经网络(Artificial Neural Network,ANN) 使一种受人脑生物神经网络信息处理方式启发而诞生的一种计算模型,得益于语音识别.计算机视觉和文本处理方面的许多突破性成果,人工 ...

  10. 径向基函数神经网络_基于RBF神经网络的网络安全态势感知预测研究

    点击上方"网络空间安全学术期刊"关注我们 基于RBF神经网络的网络安全态势 感知预测研究 钱建, 李思宇 摘要 针对网络安全态势的感知问题,结合巨龙山和者磨山风电场的运行情况,文章 ...

最新文章

  1. java 网络通信协议_JAVA-基础-网络通信协议
  2. 乡村振兴谋定齐鲁道路-农业大健康·李昌平:放权改革创新
  3. PMCAFF | 创业必读:如何打造一个团队从无到有,再到高效的管理方式
  4. mysql 5.6安装图解 linux_Windows下MySQL 5.6安装及配置详细图解
  5. 记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof
  6. 【广工考试笔记】计算机系统结构考试速成笔记
  7. linux打包根目录
  8. 视频批量添加水印的方法
  9. 注册表禁用计算机管理,注册表被管理员禁用如何处理 怎么解决注册表被管理员禁用【图文】...
  10. python怎么全部注释_python全部注释
  11. 安卓投屏大师TC DS如何把手机声音传输到电脑教程
  12. android 通知栏授权,Android 消息通知栏Notification使用和权限
  13. python语言判断中国节假日(pip install chinesecalendar)
  14. android水电工具softonic,Softonic
  15. JSP使用Struts1提交中文表单时乱码,字符编码问题
  16. DDR3 SPEC
  17. UVM:7.5.2 常用操作及其对期望值和镜像值的影响
  18. 2022年,建议你一定要读的10本网络安全书籍
  19. 算法与程序设计:算法的表述方式及其发展(学习笔记)
  20. 解决Edge默认打开PDF内存不足

热门文章

  1. 思科、华为、H3C交换机命名规则全收录
  2. windows 获取当前进程所占内存
  3. 故障树FTA(fault tree analysis)工具链
  4. 在项目中如何做图片优化
  5. Windows 7各版本的主要功能区别是什么 有何不同
  6. SylixOS之OK6410开发板系统烧写
  7. 尚硅谷YYDS (视频连接)
  8. 人工智能的历史与发展
  9. exchange协议发送邮件
  10. PyTorch 1.x 常用知识