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

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测

目录

    • 分类预测 | Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测
      • 效果一览
      • 基本介绍
      • 程序设计
      • 参考资料

效果一览

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

5

基本介绍

Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测,输入多个特征,分四类。
XGBoost的核心算法思想基本就是:不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数f(x),去拟合上次预测的残差。当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数。最后只需要将每棵树对应的分数加起来就是该样本的预测值。

程序设计

  • 完整程序和数据下载:Matlab实现GA-XGBoost遗传算法优化XGBoost的多特征分类预测
%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  读取数据
res = xlsread('data.xlsx');%%  分析数据
num_class = length(unique(res(:, end)));  % 类别数(Excel最后一列放类别)
num_res = size(res, 1);                   % 样本数(每一行,是一个样本)
num_size = 0.7;                           % 训练集占数据集的比例
res = res(randperm(num_res), :);          % 打乱数据集(不打乱数据时,注释该行)
flag_conusion = 1;                        % 标志位为1,打开混淆矩阵(要求2018版本及以上)%%  设置变量存储数据
P_train = []; P_test = [];
T_train = []; T_test = [];%%  划分数据集
for i = 1 : num_classmid_res = res((res(:, end) == i), :);           % 循环取出不同类别的样本mid_size = size(mid_res, 1);                    % 得到不同类别样本个数mid_tiran = round(num_size * mid_size);         % 得到该类别的训练样本个数P_train = [P_train; mid_res(1: mid_tiran, 1: end - 1)];       % 训练集输入T_train = [T_train; mid_res(1: mid_tiran, end)];              % 训练集输出P_test  = [P_test; mid_res(mid_tiran + 1: end, 1: end - 1)];  % 测试集输入T_test  = [T_test; mid_res(mid_tiran + 1: end, end)];         % 测试集输出
end%%  数据转置
P_train = P_train'; P_test = P_test';
T_train = T_train'; T_test = T_test';%%  得到训练集和测试样本个数
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 = 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  = [001, 001, 0.01];             % 优化参数目标下限(最大迭代次数,深度,学习率)
ub  = [ 50, 012,  0.1];             % 优化参数目标上限(最大迭代次数,深度,学习率)

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/128163536?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/kjm13182345320/article/details/128151206?spm=1001.2014.3001.5502

http://www.lryc.cn/news/383324.html

相关文章:

  • 说说 golang 中的接口和反射
  • 小程序注册
  • 工作记录2
  • linux挂载硬盘(解决linux不显示硬盘问题)
  • 运输标签扫描仪可简化运输和接收任务
  • Stable Diffusion 3 大模型文生图实践
  • Linux grep技巧 删除含有指定关键词的行,创建新文件
  • ChatMoney还能写剧本杀?
  • 优化系统小工具
  • 调幅信号AM的原理与matlab实现
  • [MySql]两阶段提交
  • 掌握rpc、grpc并探究内在本质
  • 构造,析构,垃圾回收
  • 杂记 | 搭建反向代理防止OpenAI API被封禁(对于此次收到邮件提示7月9日后将被屏蔽的解决参考)
  • 利用ref实现防抖
  • SAP ABAP 之OOALV
  • 构建实用的Flutter文件列表:从简到繁的完美演进
  • spring使用@PostConstruct踩得坑
  • 【Mac】XnViewMP for Mac(图片浏览查看器)及同类型软件介绍
  • win10修改远程桌面端口,Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南
  • 口感探险之旅:勇闯红酒世界,揭秘复杂风味的无尽奥秘
  • 吉时利 Keithley2440 数字源表
  • PPT的精细化优化与提升策略
  • awtk踩坑记录三:移植awtk-mvvm到Awtk Designer项目
  • 07 - matlab m_map地学绘图工具基础函数 - 绘制等高线
  • Kotlin设计模式:享元模式(Flyweight Pattern)
  • java压缩pdf
  • [AIGC] ClickHouse:一款高性能列式数据库管理系统
  • 深度学习21-30
  • google浏览器无法访问大端口的处理方式