当前位置: 首页 > article >正文

BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测

BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测

目录

    • BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基本介绍

1.Matlab基于BO-SVR贝叶斯算法优化支持向量机的数据多变量时间序列预测,加入5折交叉验证,折数可修改(完整源码和数据)
2.贝叶斯算法选择最佳的SVM核函数参数c和g;
3.输入多个特征,输出单个变量,考虑历史特征的影响,多变量时间序列预测;程序内注释详细,excel数据,直接替换数据就可以用。
4.程序语言为matlab,程序可出预测效果图,迭代优化图,相关分析图,运行环境matlab2020b及以上。评价指标包括:R2、RPD、MSE、RMSE、MAE、MAPE等。
5.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。

在这里插入图片描述

程序设计

  • 完整程序和数据获取方式私信博主回复BO-SVM贝叶斯算法优化支持向量机的数据多变量时间序列预测


%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行



P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);
%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);

%%  仿真预测
[t_sim1, error_1] = svmpredict(t_train, p_train, model);
[t_sim2, error_2] = svmpredict(t_test , p_test , model);

%%  数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

T_sim1 = T_sim1';
T_sim2 = T_sim2';

%% 测试集结果
figure;
plotregression(T_test,T_sim2,['回归图']);
figure;
ploterrhist(T_test-T_sim2,['误差直方图']);

%%  均方根误差 RMSE
error1 = sqrt(sum((T_sim1 - T_train).^2)./M);
error2 = sqrt(sum((T_test - T_sim2).^2)./N);

%%
%决定系数
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;

%%
%均方误差 MSE
mse1 = sum((T_sim1 - T_train).^2)./M;
mse2 = sum((T_sim2 - T_test).^2)./N;

%%
%RPD 剩余预测残差
SE1=std(T_sim1-T_train);
RPD1=std(T_train)/SE1;

SE=std(T_sim2-T_test);
RPD2=std(T_test)/SE;

%% 平均绝对误差MAE
MAE1 = mean(abs(T_train - T_sim1));
MAE2 = mean(abs(T_test - T_sim2));

% MBE
MBE1 = sum(T_sim1 - T_train) ./ M ;
MBE2 = sum(T_sim2 - T_test ) ./ N ;

%% 平均绝对百分比误差MAPE
MAPE1 = mean(abs((T_train - T_sim1)./T_train));
MAPE2 = mean(abs((T_test - T_sim2)./T_test));



参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340


http://www.kler.cn/a/501865.html

相关文章:

  • ElasticSearch 同义词匹配
  • 每天五分钟深度学习框架pytorch:快速搭建VGG网络的基础模块VGG块
  • 计算机网络 (36)TCP可靠传输的实现
  • 【1】Word:邀请函
  • 初识@ffmpeg/ffmpeg库
  • Linux网络编程5——多路IO转接
  • MySQL第四天作业
  • 如何借助工程项目管理系统,解决建筑项目管理痛点?
  • 字玩FontPlayer开发笔记11 Tauri2剪切板模块
  • 计算机网络之---UDP协议
  • ros2-6.4.5 gazebo传感器仿真
  • 使用LangChain、CrewAI、AutoGen搭建数据分析Agent
  • React 进阶之路:深入详解事件绑定的多样方式与区别,促使更加容易理解
  • 谷歌开放语音命令数据集,助力初学者踏入音频识别领域
  • Windows远程桌面断开导致锁屏问题解决方案
  • salesforce sandbox的用户如何重置密码
  • Unity3D中的Lua、ILRuntime与HybridCLR/huatuo热更对比分析详解
  • 慧集通(DataLinkX)iPaaS集成平台-系统管理之UI库管理、流程模板
  • 使用WPF在C#中制作下载按钮
  • 《机器学习》之DBSCAN聚类
  • nginx代理服务器配置不正确出现的小bug
  • SQL中的公用表表达式
  • [论文阅读]Corpus Poisoning via Approximate Greedy Gradient Descent
  • SQL语言的面向对象编程
  • 全面代码行数统计工具——CodeLinesCounter
  • 基于C#Halcon3D点云图视图查看实现封装心得