口碑好的邯郸网站建设,万网免费建企业网站,繁昌县网站开发,网页制作需要什么基础时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测 目录时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测效果一览基本介绍模型介绍LSTM模型SVR模型LSTM-SVR模型程序设计参考资料致谢效果一览 基本介绍 本次运行测试环境MA…时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测 目录时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测效果一览基本介绍模型介绍LSTM模型SVR模型LSTM-SVR模型程序设计参考资料致谢效果一览 基本介绍 本次运行测试环境MATLAB2018b MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测主要研究问题不限于交通预测、负荷预测、气象预测、经济预测等。LSTM和SVR组合预测结合LSTM序列提取优势和SVR非线性提取优势组合预测具体介绍如下。 模型介绍 提出了一种基于长短时记忆神经网络算法的支持向量机LSTM-SVR的预测方法为了保证支持向量机预测结果的准确性选用网格搜索法对支持向量机参数进行优化处理。为了减小在预测算法中由于误差的传递导致最终预测结果与实际结果产生较大偏离在预测运算过程中对采用长短时记忆神经网络组合预测对预测结果进行组合。 LSTM模型
LSTM 属于循环神经网络( recurrent neural networkNN) 的一种其特殊之处在于NN 仅具有记忆暂存的功能LSTM 兼具长短期记忆功能LSTM 解决了NN 的长期依赖问题其特点是在NN 各层结构单元中添加了输入门、遗忘门和输出门等闸门。通过“门”控制记忆状态、存储任意时间和距离的信息解决了NN 神经网络只有短期记 忆、没有长期记忆的问题。 LSTM 在t 时刻的输入为xt输出为yt神经元记忆状态为st其输出门it、遗忘门ft、输出门ot构建基于长短期记忆网络负荷预测模型包括数据处理、计算激活函数、调整参数、训练模型、评价结果等。 数据预处理分别对冲击性负荷影响因素、稳定性负荷影响因素进行数据归一化处理使其数值为0,1按照网络各层之间的权重参数网络的第t层其权重参数( wt bt) 由上一层的数据决定。将上一层输入输出作为LSTM 网络模型的输入和输出进行训练调整模型参数代价函数为平方重构误差。完成训练过程后利用负荷数据通过LSTM 模型输出结果将得到的负荷预测结果进行反归一化处理得到负荷真实预测值。将得到的负荷预测值与实际负荷进行对比采用相对误差作为衡量标准衡量LSTM网络模型的预测准确性。 SVR模型
SVM 算法是一种基于最小化结构风险的机器统计学习理论通过间隔最大化的学习策略最终转化为一个凸二次规划问题的求解。SVM 在预分析中具有适应小样本学习和强鲁棒性的特点能补充基于长短期记忆网络算法对大量样本的需求。SVR是SVM用于回归的任务。通过直接法或间接法构造合适的回归任务将某时刻下的影响因素 视为回归的依据而该时刻负荷的预测值视为最终回归结果的标签。主要的预测过程如下。 数据处理与归一化输入数据与21 节中相同采用相同的预处理方式。利用试验查找方法得到最佳惩罚参数C、核函数和不敏感损失函数ε。仿真测试输入参数进行仿真测试。数据反归一化得到数据预测值。将得到的负荷预测值与实际负荷进行对比采用相对误差作为衡量标准衡量SVM 模型的预测准确性。 LSTM-SVR模型
LSTM 算法时序性强能够充分挖掘历史数据的规律其缺点是要求样本的数量多; SVM 算法具有非线性映射和小样本学习的优势但时序性差。为充分融合二者的优势提出融合LSTM 和SVM 算法的钢铁电力短期负荷预测权重分配采用最小二乘算法。 程序设计
完整程序和数据下载私信博主。主程序
nwholelength(data);
%计算数据长度
train_ratio0.90;
ntrainround(nwhole*train_ratio);
%% CDM
options optimset;
[W_train,E_train] fmincon((W)ObjectFunction(W,R_train,LSTM_train,SVM_train),W0,LPA,LPB,Aeq,Beq,LB,UB,NONLCON,options);
[W_test,E_test] fmincon((W)ObjectFunction(W,R_test,LSTM_test,SVM_test),W0,LPA,LPB,Aeq,Beq,LB,UB,NONLCON,options);
fprintf(W_LSTM_test%f,W_SVM_test%f,W_test(1),W_test(2))
C_test W_test(1)*LSTM_test W_test(2)*SVM_test;
fprintf(\n\n);
%% 数据输出
%-------------------------------------------------------------------------------------
disp(——————组合模型预测结果——————————)
disp(组合模型预测值 真实值 组合模型误差 组合模型相对误差 )
disp([C_test R_test C_error_test C_pererror_test])
disp(预测绝对平均误差MAE);
disp(LSTM SVM 组合模型);
disp([LSTM_MAE SVM_MAE C_MAE]);
disp(预测平均绝对误差百分比MAPE);
disp(LSTM SVM 组合模型);
disp([LSTM_MAPE SVM_MAPE C_MAPE]);
disp(预测均方误差MSE)
disp(LSTM SVM 组合模型);
disp([LSTM_MSE SVM_MSE C_MSE]);
disp(预测均方根误差RMSE)
disp(LSTM SVM 组合模型);
disp([LSTM_RMSE SVM_RMSE C_RMSE]); W_LSTM_train0.780212,W_SVM_train0.219788 ——————组合模型预测结果—————————— 预测绝对平均误差MAE LSTM SVM 组合模型 9.7268 10.3683 9.1884 预测平均绝对误差百分比MAPE LSTM SVM 组合模型 0.0052 0.0056 0.0049 预测均方误差MSE LSTM SVM 组合模型 1.0e04 * 1.1857 1.3478 1.0736 预测均方根误差RMSE LSTM SVM 组合模型 108.8883 116.0951 103.6134 参考资料 [1] https://blog.csdn.net/kjm13182345320/article/details/120621147?spm1001.2014.3001.5501 [2] https://blog.csdn.net/kjm13182345320/article/details/120406657?spm1001.2014.3001.5502 致谢
大家的支持是我写作的动力!感谢大家