问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

看到你之前关于matlab神经网络多步滚动预测的提问,你说你解决了。我想问你具体的程序如何,谢谢。

发布网友 发布时间:2022-05-01 09:56

我来回答

1个回答

热心网友 时间:2023-10-05 12:28

奇怪,百度还多这样的功能。

其实是一个比较取巧的方法,是从训练数据从新编排入手的,举例来说,你就只有一列数据,例如自然数列,1,2,3,4,5,6,7,你把数列从新编成一个矩阵
1 2 3
2 3 4
3 4 5
4 5 6
5 6 7
矩阵前两列做训练的输入矩阵p,第三列做输出那个t,然后训练网络直到满足你的条件
这样训练后的网络就可以用了,当你想预测第八个数的时候,仿真输入6 7,他就预测第八个数,假设输出是8,想继续预测第九个数,把预测的8和之前的7组成新矩阵,也就是输入7 8,他就会出第九个数,9

至于你要的矩阵是2列,3列,4列就随便了,看你的结果和之前的那几个数相关大的,按需要组矩阵吧
上面也可以用
1 2
2 3
3 4
……
这样的矩阵,第一列p,第二列t,来训练,这样就是一输入一输出了

原理都一样,这是多步预测,误差其实越到后面越大
滚动预测就是把新预测的数再放进数列里面,当作这数列是新的,再做新训练和仿真

其实新编矩阵很简单了,for循环就可以,然后归一化,再训练,最后仿真追问这些原理我也清楚,就是编程不太会,你能针对你上面举得的例子写一个简单的程序命令吗?用BP神经网络,谢谢。因为写论文需要,比较急

追答嗯,其实我不是学计算机的,只是有些数据要处理,所以自己找资料,下面是我之前做研究时候用的部分代码,可以运行,但没怎么优化过,一般应用我想应该可以吧,如果有错的请指出
数据重组矩阵的代码如下:
clear all
load data.txt
a=data;
b=a
[q,r]=size(b)
temp=b
jz=1;
for (i=1:jz)
b1=b(i+1:q,:)
b2=zeros(i,r)
b3=[b1;b2]
c=[temp';b3']'
temp=c
end
f=c(1:q-i,:)
说明一下,f就是重组后矩阵,jz的值是控制重组后的列数,注意列数是jz+1,不清楚的用matlab运行一次看结果就可以
p=f(:,1:r*i)';
t=f(:,r*i+1:r*(i+1))';
[pn,ps]=mapminmax(p,0,1);
[tn,ts]=mapminmax(t,0,1);
pr=minmax(pn);
net=newff(pr,[2,1],{'tansig','purelin'},'trainlm');
net.trainparam.goal=1e-15;
net.trainparam.epochs=10000;
net.trainparam.min_grad=1e-10;
net.trainparam.time=15;
[net,tr]=train(net,pn,tn);
上面的代码都很常规,bp网络一般都打这些,我直接复制来了
下面是多步预测:
g=c(q-i+1,1:r*i)'
for (j=1:3)
[gn,gs]=mapminmax('apply',g,ps);
out=sim(net,gn);
out2=mapminmax('reverse',out,ts)
g=mapminmax('reverse',gn,ps);
g(1,:)=[];
g=[g;round(out2)];
end

说明一下,最后用round是因为我明确知道这是自然数列,一般不用round,除非你的结果要整数的。上面是多步预测,循环多少次就预测多少步,不过越到后面误差越大,用其他数列试试就很清楚了

关于滚动预测,就是把g再接到f的后面,形成一个新的矩阵,在执行前面第二块的那堆代码训练,训练完以后再仿真便OK,简单说,把训练那块放到循环里,就是滚动预测了。

一般来说,滚动预测比多步预测准确那么一点点,但耗费的时间多很多,而且我这代码是很简陋的,训练时有机会落入局部最小造成失真,所以要对训练效果做检验的,不过不想写的太复杂了,检验部分省略了,而且针对不同的数据,检验也不一定相同,楼主按自己需要再修改吧

这些代码我试过了,能预测,我的是matlab2010b版本,

来自:求助得到的回答

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天秤男吃醋的八大表现 天秤座男生吃醋时的表现 人工授精之后注意什么 人授后需要卧床休息吗 ...经两个月没发工资了,我不想干了,老板不给钱怎么办? 新手玩《兰斯10》这款游戏的快速通关攻略是什么? 兰斯10怎么用食券快速刷SSR 兰斯10二周目7cp怎么达成 兰斯10大侵攻达成条件介绍 跳舞同手同脚叫什么来着 喷油嘴清洗机主要功能 浅析如何提高环境监测工作的整体效率 浅谈如何提高环境监测工作效率 怎样加强环境监测报告编制水平 目前环境监测站存在的主要问题是什么 生态环境遥感监测系统存在的问题 谁知道时间序列AR,MA,ARMA多步预测原理是什么?​ matlab神经网络怎么多步预测,滚动预测 环境监测如何走出困境 环境监测时需要注意哪些问题? 若花呗支付一万元,最多分几期还,利率是多少? 韭菜种子怎么种,韭菜播种方法有什么? 多年生的韭菜不想要了,可是不知道怎么处理。有什么好的办法能快速处理掉韭菜的吗?急待回答!!! 棒球服都有什么牌子,以P开头的有木有 韭菜种植:韭菜秋季怎么管理 王楚钦棒球服什么牌子 棒球服什么牌子最好 我们家亲戚买了一块地是安置房那种。他想送个2楼给我。我想问问。这个2楼我可以拿到房产证吗? 梦见别人给我家送了一把挖地的铁铣? 我家买了亲戚家的一块地皮,当时签了份买卖合同。这块地皮有土地使用... 梦见别人送我一千亩地是什么意思? eviews建立arima模型后进行静态多步预测每一次都要建模 吗 河北农业大学西校区怎么样 河北农业大学图书馆的介绍 河北农业大学图书馆的服务指南 河北农业大学西校区建设情况怎么样了? 河北农业大学保定校区怎么样? 河北农业大学具体位置在哪? 河北农业大学的图书馆 不是本校学生怎么借书呢? 能不能办卡呀ei 保定市七一东路3027号保定学院理科楼三区离保定市乐凯南大街2596号河北农业大学西校区图书馆南配楼远吗? 河北农业大学西校区自习室在哪里 河北农业大学图书馆怎么查英语文献 b站总说某某番的剧情胃疼,请问胃疼是什么意思? 河北农业大学的具体情况,如寝室几个人,有无独立卫生间,寝室可否上网,晚上断不断电之类,越详细越好 我女儿11岁,常说胃痛胃胀,应该怎么办 河北农业大学现代科技学院怎么样?(请在校生回答 专业点的 谢啦)_百度... 请问河北农业大学西校区青云书店位置在哪 河北农业大学现代科技学院怎么样啊? 河北农大西校区建校时间 诗入人心的上一句是什么? 诗入人心朗诵作品怎样下载