滚动预测matlab模型代码是什么

滚动预测matlab模型代码是什么,第1张

是时间序列预测的技术。是指利用过去的数据,对未来的数据进行预测的方法,是时间序列预测中常见的技术。除了MATLAB外,Python中的Keras、TensorFlow等工具也可以用于实现滚动预测模型。

注意,我觉得你的问题不是滚动预测,而是不断的把数据的首部分扔掉,而滚动的意思是循环移动。

但不影响解决问题,假设你的被调用的函数是求均值mean函数,代码如下。

x=[3 2 1 3 2]

result = []

for i=1:length(x)

%调用函数

temp=mean(x)

%将函数返回值放到result中

result=[result temp(1)]

%将x的第一个数扔掉。

x(1)=[]

end

运行结果,把每次循环中的result都显示出来了

result =

2.2000

result =

2.20002.0000

result =

2.20002.00002.0000

result =

2.20002.00002.00002.5000

result =

2.20002.00002.00002.50002.0000

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

其实是一个比较取巧的方法,是从训练数据从新编排入手的,举例来说,你就只有一列数据,例如自然数列,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循环就可以,然后归一化,再训练,最后仿真


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12151005.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存