时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)

时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)

目录

    • [时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)](#时序预测 | MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价))

效果一览


基本描述

MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)

DBN是一种多层神经网络,可以通过逐层训练来提取时间序列数据的特征。用DBN模型提取时间序列数据的特征。使用支持向量机工具箱中的函数构建SVM模型。支持向量机是一种监督学习算法,可以用于分类和回归任务。使用MATLAB的支持向量机工具箱中的函数来构建SVM模型。使用SVM模型进行时间序列预测。将DBN提取的特征作为输入,使用SVM模型进行时间序列的预测。

程序设计

  • 完整源码和数据获取方式:私信回复MATLAB实现DBN-SVM深度置信网络结合支持向量机时间序列预测(多指标评价)
clike 复制代码
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  导入数据(时间序列的单列数据)
result = xlsread('data.xlsx');
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

%%  绘图
figure
plot(1: M, T_train, 'y-', 1: M, T_sim1, 'b-', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'训练集预测结果对比'; ['RMSE=' num2str(error1)]};
title(string)
xlim([1, M])
grid
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
figure
plot(1: N, T_test, 'm-', 1: N, T_sim2, 'g-', 'LineWidth', 1)
legend('真实值','预测值')
xlabel('预测样本')
ylabel('预测结果')
string = {'测试集预测结果对比';['RMSE=' num2str(error2)]};
title(string)
xlim([1, N])
grid
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%%  相关指标计算
%  R2
R1 = 1 - norm(T_train - T_sim1')^2 / norm(T_train - mean(T_train))^2;
R2 = 1 - norm(T_test  - T_sim2')^2 / norm(T_test  - mean(T_test ))^2;
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
disp(['训练集数据的R2为:', num2str(R1)])
disp(['测试集数据的R2为:', num2str(R2)])
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%  MAE
mae1 = sum(abs(T_sim1' - T_train)) ./ M ;
mae2 = sum(abs(T_sim2' - T_test )) ./ N ;
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
disp(['训练集数据的MAE为:', num2str(mae1)])
disp(['测试集数据的MAE为:', num2str(mae2)])
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%  MBE
mbe1 = sum(T_sim1' - T_train) ./ M ;
mbe2 = sum(T_sim2' - T_test ) ./ N ;
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
disp(['训练集数据的MBE为:', num2str(mbe1)])
disp(['测试集数据的MBE为:', num2str(mbe2)])
%-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/129215161

[2] https://blog.csdn.net/kjm13182345320/article/details/128105718

相关推荐
菌菌的快乐生活1 天前
理解支持向量机
算法·机器学习·支持向量机
minstbe1 天前
AI开发:使用支持向量机(SVM)进行文本情感分析训练 - Python
人工智能·python·支持向量机
星霜旅人2 天前
均值聚类算法
人工智能·机器学习·支持向量机
长风清留扬2 天前
机器学习中的密度聚类算法:深入解析与应用
人工智能·深度学习·机器学习·支持向量机·回归·聚类
机器学习之心2 天前
LSTM-SVM时序预测 | Matlab基于LSTM-SVM基于长短期记忆神经网络-支持向量机时间序列预测
神经网络·支持向量机·lstm
落魄君子2 天前
SVM分类-支持向量机(Support Vector Machine)
神经网络·算法·支持向量机·分类
minstbe4 天前
AI开发:支持向量机(SVM)鸢尾花模型入门教程- Python 机器学习
人工智能·机器学习·支持向量机
简简单单做算法5 天前
基于遗传优化SVM支持向量机的数据分类算法matlab仿真,SVM通过编程实现,不使用工具箱
支持向量机·matlab·分类·ga·svm·ga-svm
Hello.Reader6 天前
深入浅出支持向量机(SVM)
算法·机器学习·支持向量机