%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 添加路径
addpath('xgboost_toolbox\')
%% 读取数据
res = xlsread('数据集.xlsx');
%% 划分训练集和测试集%
num_dim = size(res, 2) - 1; % 特征维度
num_class = length(unique(res(:, end))); % 类别数(Excel最后一列放类别)
P_train = res(1: 250, 1: 12)';
T_train = res(1: 250, 13)';
M = size(P_train, 2);
P_test = res(251: end, 1: 12)';
T_test = res(251: end, 13)';
N = size(P_test, 2);
%% 数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test = mapminmax('apply', P_test, ps_input);
t_train = T_train;
t_test = T_test ;
%% 数据转置
p_train = p_train'; p_test = p_test';
t_train = t_train'; t_test = t_test';
%% 参数设置
fun = @getObjValue; % 目标函数
dim = 3; % 优化参数个数
lb = [10, 001, 0.01]; % 优化参数目标下限(最大迭代次数,深度,学习率)
ub = [50, 012, 0.30]; % 优化参数目标上限(最大迭代次数,深度,学习率)
pop = 5; % 麻雀数量
Max_iteration = 20; % 最大迭代次数
max_sort = 5; % 类别数目(标签应从1开始,到max_sort截止)