【MATLAB第2期】源码分享#基于LSTM时间序列单步预测,含验证和预测未来
1.运行环境
matlab2020a + cpu
2.数据说明
单列数据,2018/10~2018/12 共三个月,92个数据。

编辑
3.数据处理
样本标准化处理,其中,前85个数据作为训练样本,来验证后7个数据效果。最后预测未来7个数据。
numTimeStepsTrain = floor(85);%85数据训练 ,7个用来验证dataTrain = data(1:numTimeStepsTrain+1,:);% 训练样本dataTest = data(numTimeStepsTrain:end,:); %验证样本
4.LSTM参数设置
numHiddenUnits = 500;%隐含层神经元节点数 dropoutLayer(0.2)%丢弃层概率
5.运行过程

编辑切换为居中
根据训练效果RMSE误差图以及损失图,可在运行时降低训练次数,如设置为300,加快收敛。
6.运行结果
训练结果:

编辑
验证结果:

编辑
评价指标:
训练集数据的MAE为:2524.5837
验证集数据的MAE为:3277.468
训练集数据的MAPE为:0.3253
验证集数据的MAPE为:0.31752
训练集数据的RMSE为:3380.5039
验证集数据的RMSE为:3862.0957
原数据量级比较大,加上参数还需要打磨,所以误差显得比较大 。可以套用自己数据试试。
7.预测未来

编辑
展示代码:
调用函数以及案例数据放下面链接了,免费下载即可。
获取链接:
https://mianbaoduo.com/o/bread/mbd-Y5iZlptw
内容整理不易,求个关注,后续会持续分享机器学习相关的源代码。
获取链接
内容整理不易,求个关注,后续会持续分享机器学习相关的源代码。