分类预测 | 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_class
    mid_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/723030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试 —— ReadyAPI赋能API性能测试,助力应对高峰期流量挑战!

在当今数字驱动的市场中,API的完美性能对于企业在高峰期提升营业收入至关重要。随着消费者越来越依赖于在线购物和移动App购物,任何与API相关的故障或减速都可能导致顾客体验变差和交易流失,从而造成销售损失。因此,企业需要优先考…

优思学院|怎么选择精益生产培训才不会被坑?

在选择精益生产培训公司时,我们需要从多个角度去思考。企业若只是盲目地跟风,这样的做法无异于缘木求鱼。精益生产的核心在于发现和消除那些不增值的活动,从而提升产品的质量和生产效率,但要知道的是,发现和改进的人就…

zookeeper学习、配置文件参数详解

zookeeper学习、配置文件参数详解 zookeeper 配置文件参数详解tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系initLimit,syncLimit什么区别minSessionTimeout 默认值,**他的单位是ms** zookeeper 配置文件参数详解 ZooKeeper 是一个分布式协调服…

Java实现一个解析CURL脚本小工具

该工具可以将CURL脚本中的Header解析为KV Map结构;获取URL路径、请求类型;解析URL参数列表;解析Body请求体:Form表单、Raw Body、KV Body、XML/JSON/TEXT结构体等。 使用示例 获取一个http curl脚本: curl --locatio…

玩转OurBMC第八期:OpenBMC webui之通信交互

栏目介绍:“玩转OurBMC”是OurBMC社区开创的知识分享类栏目,主要聚焦于社区和BMC全栈技术相关基础知识的分享,全方位涵盖了从理论原理到实践操作的知识传递。OurBMC社区将通过“玩转OurBMC”栏目,帮助开发者们深入了解到社区文化、…

CentOS 7x 使用Docker 安装oracle11g完整方法

1.安装docker-ce 安装依赖的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2添加Docker的阿里云yum源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo更新软件包索引 yum makecache fast查看docker…

【日记】被客户一顿输出该怎么办(431 字)

正文 上午有个客户在电话里对着我一顿输出,说他们没有发票财务账务没法处理怎么怎么的。话里话外满满一股 “全是你们的错” 的味道。 当时我很想笑,大姐,你对我输出有啥用啊。票是上级行开的,我们又没有开票权限,对我…

给电脑bios主板设置密码

增强安全性:防止未经授权的人员更改 BIOS 中的重要设置,如启动顺序、硬件配置等。这有助于保护计算机系统的稳定性和数据的安全性。防止恶意篡改:阻止可能的攻击者或恶意软件通过修改 BIOS 设置来破坏系统或获取敏感信息。数据保护&#xff1…

Redis 主从同步

主从同步 很多企业没有使用Redis的集群,但是至少都做了主从。有了主从,当master挂掉的时候,运维让从库过来接管,服务就可以继续,否则master需要经过数据恢复和重启的过程,可能会拖很长时间,影响…

男士内裤品牌哪个好?2024公认好穿的五款男士内裤分享

男士内裤作为大家每天都要长时间穿着的贴身衣物,它的重要性不言而喻。为了确保健康与卫生,专家和医生建议您每三个月更换一次内裤,避免细菌滋生,让身体更加清爽自在。而一款优质的内裤,不仅要有舒适的弹性,…

TikTok电商带货指南:策略、技巧与流量获取全解析

随着短视频平台的迅猛发展,TikTok已成为品牌和个人进行带货营销的主要阵地之一。通过有创意的内容、有效的互动方式和精准的流量获取策略,品牌和个人都能在TikTok上取得显著的带货效果。本文Nox聚星将和大家探讨在TikTok上进行带货营销的有效策略和技巧&…

图形化编程:解锁数字创意的新钥匙

在这个日新月异的数字时代,编程已不再局限于专业人士的小圈子,它正逐渐成为一项基础技能,融入我们的日常生活与工作中。而对于那些对传统代码望而生畏的人来说,6547网认为图形化编程犹如一股清流,以其直观、易学的特点…

芝麻文件重命名 一键批量重命名 支持批量修改图片 文档 文件夹名称

芝麻文件重命名是一款专业的文件批量重命名软件,它提供了丰富的功能和灵活的命名规则,可以大大提高文件管理的效率。以下是关于芝麻文件重命名的详细介绍: 一、软件特点 支持批量重命名:芝麻文件重命名支持文件和文件夹的批量重命…

学生课程信息管理系统

摘 要 目前,随着科学经济的不断发展,高校规模不断扩大,所招收的学生人数越来越 多;所开设的课程也越来越多。随之而来的是高校需要管理更多的事务。对于日益增 长的学生相关专业的课程也在不断增多,高校对其管理具有一…

【机器学习】机器学习重要方法——无监督学习:理论、算法与实践

文章目录 引言第一章 无监督学习的基本概念1.1 什么是无监督学习1.2 无监督学习的主要任务 第二章 无监督学习的核心算法2.1 聚类算法2.1.1 K均值聚类2.1.2 层次聚类2.1.3 DBSCAN聚类 2.2 降维算法2.2.1 主成分分析(PCA)2.2.2 t-SNE 2.3 异常检测算法2.3…

扩散模型在时间序列预测中的兴起

摘要 本文探讨了扩散模型在时间序列预测中的应用。扩散模型在生成式人工智能的各个领域展示了最先进的成果。本文包括扩散模型的全面背景资料,详细说明了它们的调节方法,并回顾了它们在时间序列预测中的应用。分析涵盖了11个具体的时间序列实现&#xf…

C++11(下):线程库

线程库 1.线程1.1线程类介绍以及简单使用1.2线程函数参数1.3如何获取线程函数返回值 2.锁2.1锁的种类2.2 lock_guard与unique_lock 3.原子库3.1介绍与基本使用3.2CAS(原子操作原理) 4.条件变量 1.线程 1.1线程类介绍以及简单使用 在C11之前&#xff0c…

【操作系统】操作系统课后作业-聊天程序

无名管道与有名管道的区别 无名管道: 它是半双工的,具有固定的读端和写端。 只能用于具有亲缘关系的进程之间的通信(也是父子进程或者兄弟进程之间)。 不是普通的文件,不属于其他任何文件系统,并且只存…

实战|YOLOv10 自定义目标检测

引言 YOLOv10[1] 概述和使用自定义数据训练模型 概述 由清华大学的研究团队基于 Ultralytics Python 包研发的 YOLOv10,通过优化模型结构并去除非极大值抑制(NMS)环节,提出了一种创新的实时目标检测技术。这些改进不仅实现了行业领…

有关排序的算法

目录 选择法排序 冒泡法排序 qsort排序(快速排序) qsort排序整型 qsort排序结构体类型 排序是我们日常生活中比较常见的问题,这里我们来说叨几个排序的算法。 比如有一个一维数组 arr[8] {2,5,3,1,7,6,4,8},我们想要把它排成升序&#…