回归预测 | Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测
目录
预测效果
基本介绍
Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测
1.data为数据集,输入6个特征,输出一个变量。
2.main.m为程序主文件,其余为函数文件无需运行。
3.冠豪猪算法优化最小二乘支持向量机,优化RBF 核函数gam和sig。
4.注意程序和数据放在一个文件夹,运行环境为Matlab2018及以上.
5.命令窗口输出R2、MSE、MAE、MAPE和MBE多指标评价;
6.程序语言为matlab,程序可出预测效果图,迭代优化图,相关分析图;
7.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
程序设计
- 完整程序和数据下载方式(资源处直接下载):Matlab实现CPO-LSSVM冠豪猪算法优化最小二乘支持向量机多变量回归预测
clike
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 划分训练集和测试集
M = size(P_train, 2);
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);
%% 转置以适应模型
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';
%% 参数设置
pop = 5; % 种群数目
Max_iter = 50; % 迭代次数
dim = 2; % 优化参数个数
lb = [10, 10]; % 下限
ub = [1000, 1000]; % 上限
%% 优化函数
fobj = @(x)fitnessfunclssvm(x, p_train, t_train);
%% 优化
%% LSSVM参数设置
type = 'f'; % 模型类型 回归
kernel = 'RBF_kernel'; % RBF 核函数
proprecess = 'preprocess'; % 是否归一化
%% 建立模型
gam = Best_score(1);
sig = Best_score(2);
model = initlssvm(p_train, t_train, type, gam, sig, kernel, proprecess);
%% 训练模型
model = trainlssvm(model);
%% 模型预测
t_sim1 = simlssvm(model, p_train);
t_sim2 = simlssvm(model, p_test);
%% 数据反归一化
T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);
%% 均方根误差
error1 = sqrt(sum((T_sim1' - T_train).^2) ./ M);
error2 = sqrt(sum((T_sim2' - T_test ).^2) ./ N);
参考资料
[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502
[3] https://blog.csdn.net/article/details/126043107?spm=1001.2014.3001.5502