时间序列预测在MATLAB中使用深度学习

80(30天)
我用时间序列预测样本MathWorks: 使用深度学习时间序列预测
我只改变了数据集,该算法。令人惊讶的是,该算法不是工作好与我的数据集,并生成一条线作为预测如下:
我很困惑,我不能理解的原因。我可能需要调优参数的算法我不了解。我使用的代码是:
% %加载数据
% = chickenpox_dataset数据;
%数据=({}):数据;
数据= xlsread (“data.xlsx”);
data =数据”;
% %划分数据:训练和测试
地板numTimeStepsTrain =(0.7 *元素个数(数据);
XTrain =数据(1:numTimeStepsTrain);
YTrain =数据(2:numTimeStepsTrain + 1);
XTest =数据(numTimeStepsTrain + 1: end-1);
欧美=数据(numTimeStepsTrain + 2:结束);
% %标准化数据
μ=意味着(XTrain);
sig =性病(XTrain);
XTrain = (XTrain -μ)/团体;
YTrain = (YTrain -μ)/团体;
XTest = (XTest -μ)/团体;
% %定义LSTM网络
inputSize = 1;
numResponses = 1;
numHiddenUnits = 500;
层= [
sequenceInputLayer (inputSize)
lstmLayer (numHiddenUnits)
fullyConnectedLayer (numResponses)
regressionLayer];
% %培训选项
选择= trainingOptions (“亚当”,
“MaxEpochs”,500,
“GradientThreshold”,1
“InitialLearnRate”,0.005,
“LearnRateSchedule”,“分段”,
“LearnRateDropPeriod”,125,
“LearnRateDropFactor”,0.2,
“详细”0,
“阴谋”,“训练进步”);
% %的列车网络的
网= trainNetwork (XTrain、YTrain层,选择);
% %预测未来时间的步骤
网= predictAndUpdateState(净,XTrain);
[净,YPred] = predictAndUpdateState(净,YTrain(结束));
numTimeStepsTest =元素个数(XTest);
我= 2:numTimeStepsTest
(净YPred(我)]= predictAndUpdateState(净,YPred(张));
结束
% % Unstandardize使用μ和团体的预测计算。
YPred =团体* YPred +μ;
% % RMSE和梅的计算
rmse =√意味着(YPred-YTest)。^ 2))
美=美(YPred-YTest)
% %阴谋的结果
情节(数据(1:numTimeStepsTrain))
持有
idx = numTimeStepsTrain:(numTimeStepsTrain + numTimeStepsTest);
情节(idx (numTimeStepsTrain) YPred][数据,“。”)
持有
包含(“月”)
ylabel (“案例”)
标题(“预测”)
传奇([“观察”“预测”])
% %比较测试数据的预测价值
次要情节(2,1,1)
情节(欧美)
持有
情节(YPred“。”)
持有
传奇([“观察”“预测”])
ylabel (“案例”)
标题(“预测”)
次要情节(2,1,2)
茎(YPred -欧美)
包含(“月”)
ylabel (“错误”)
标题(" RMSE = "+ rmse)
和数据。xlsx是:https://www.dropbox.com/s/vv1apug7iqlocu1/data.xlsx?dl=1
我真的很感激如果有任何帮助。
3评论
RUDHA
RUDHA 2023年3月31日
我有同样的问题让mw知道你修复它

登录置评。

答案(6)

阿布Nejatian
阿布Nejatian 2018年11月23日
这是我的代码,
这段代码使用预测时间序列数据的深度学习和肤浅的学习算法。
最好的希望
阿布nejatian
7评论
阿布Nejatian
阿布Nejatian 2020年12月10日
亲爱的克里斯,
我已经更新了我的代码。
更新后的事情列出如下:
时间序列预测与简单的CNN网络补充道
时间序列预测与ResNet50补充道。
预测未来的数据添加到代码,以及一些小错误是固定的。

登录置评。


阿布Nejatian
阿布Nejatian 2018年6月8日
亲爱的阿明我认为这可能是因为你的数据集的大小,我的意思是你应该使用一组或一个较小的网络。我也工作在时间序列预测外汇;我不同意这样的输入数据与目标数据延迟一步!
如果你有任何问题不要戟状的问我。
这是我的邮件, abolfazl.nejatian@gmail.com
并致以良好的祝福
Nejatian
3评论
法里斯
法里斯 2022年12月24日
亲爱的 阿布Nejatian ,
我发了一封邮件包括一个方程在同一对象,您的回答将帮助我实现我的学习
问候
法里斯

登录置评。


晓伟王
晓伟王 2018年11月20日
它发生在我身上。我认为这只是技巧,没有人愿意提及……

qizal阿什法克
qizal阿什法克 2019年9月14日
编辑:qizal阿什法克 2019年9月14日
如何将这段代码与深设计师工具箱?我谈论这个。该模型的工作原理和代码? Capture.JPG

qizal阿什法克
qizal阿什法克 2019年9月14日
这是有效的只有一行代码吗?
1评论
克里斯·P
克里斯·P 2020年9月30日
同样的问题。我想知道如果我可以使用一个外部时间系列除了感兴趣的时间序列。我想要这两个时间序列的输入有延迟。
我们应该如何格式化输入矩阵?2 xn细胞其中n是时间系列的样品的数量?1 xn细胞,每个细胞是维度2 xd d是延误的数量在哪里?

登录置评。


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的