麻雀算法SSA优化xgboost做拟合回归预测,多输入单输出模型。SSA-xgboost

麻雀算法SSA优化xgboost做拟合回归预测,多输入单输出模型。SSA-xgboost_第1张图片

 

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

%% 数据替换
% 将你的excel数据导入matlab,然后将输入数据换成X变量,输出预测数据换成Y变量。
% X为你的输入变量
% Y为你的输出预测变量
% 训练集——190个样本
P_train = xlsread('data','training set','B2:G191')';
T_train= xlsread('data','training set','H2:H191')';
% 测试集——44个样本
P_test=xlsread('data','test set','B2:G45')';
T_test=xlsread('data','test set','H2:H45')';

N = size(P_test, 2);          % 测试集样本数
M = size(P_train, 2);         % 训练集样本数

%% 导入数据(不打乱数据)
% 训练集—
% P_train= X((1:60),:)';%冒号代表取出来是整行或者整列,'代表转置
% P_test = X((61:end),:)';
% M = size(P_train,2);
% % 测试集—
% T_train= Y((1:60),:)';% 60代表划分给测试集的样本数
% T_test = Y((61:end),:)';
% N = size(T_test,2);
%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, -1, 1);%将训练集和测试集的数据调整到0到1之间
p_test = mapminmax('apply', P_test, ps_input);

[t_train, ps_output] = mapminmax(T_train, -1, 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';

%%  参数设置
fun = @getObjValue;                 % 目标函数
dim = 3;                            % 优化参数个数
lb  = [10, 10, 0.01];             % 优化参数目标下限(最大迭代次数,深度,学习率)
ub  = [200,  20,  1];             % 优化参数目标上限(最大迭代次数,深度,学习率)
SearchAgents_no = 10;                            % 种群数量
Max_iteration = 20;                 % 最大迭代次数
params.objective = 'reg:linear';    % 回归函数
 

你可能感兴趣的:(算法,回归)