首页 > 编程语言 >分类预测 | Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测

分类预测 | Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测

时间:2024-08-07 22:25:41浏览次数:13  
标签:分类 PSO %% res XGBoost mid train test

分类预测 | Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测

目录

效果一览

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

基本介绍

Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测,输入多个特征,分四类。

1.Matlab实现PSO-XGBoost粒子群算法优化XGBoost的多特征分类预测,运行环境Matlab2018b及以上;

2.输入12个特征,输出分4类,可视化展示分类准确率,可在下载区获取数据和程序内容。

3.优化参数为最大迭代次数,深度,学习率。

4.data为数据集,main为主程序,其他为函数文件,无需运行。

注:程序和数据放在一个文件夹。

XGBoost的核心算法思想基本就是:不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数f(x),去拟合上次预测的残差。

在这里插入图片描述

程序设计

  • 完整程序和数据下载私信博主回复Matlab实现PSO-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

标签:分类,PSO,%%,res,XGBoost,mid,train,test
From: https://blog.csdn.net/kjm13182345320/article/details/141002809

相关文章

  • 几种常见分类神经网络
    时间:2024年8月4日AlexNet(2012)背景AlexNet问世之前1.浅层网络结构主要使用较浅的神经网络,深层网络尚未广泛应用,限制了模型的表现力和复杂任务处理能力。2.依赖手工设计特征图像识别任务依赖手工设计的特征提取方法(如SIFT和HOG),需要大量领域知识进行特征工程。3.计算资......
  • 164首经典常用方剂分类歌诀 – 经方派
    入门方歌歌诀164首经典常用方剂分类歌诀1786阅读第一章解表剂1.麻黄汤方歌:麻黄汤中用桂枝,杏仁甘草四般施,发热恶寒头项痛,喘而无汗宜服之。2.桂枝汤方歌:桂枝汤治太阳风,芍药甘草姜枣同,解肌发表调营卫,表虚有汗此为功。3.九味羌活汤方歌:九味羌活用防风,细辛苍芷与川芎,黄芩生地同......
  • 基于springboot+vue开发的垃圾分类识别系统
    背景随着社会的快速发展,计算机的影响是全面且深入的。日常生活中,“垃圾”无处不在,家庭公寓里的垃圾桶、街头巷尾的垃圾箱、城市郊区的垃圾场、校园的垃圾站点等等,你也常常会发现,垃圾处理时通常有着多种分类,随着垃圾分类的普及,用户的数量和管理员的工作量在不断增加,工作也更......
  • pytorch深度学习分类代码简单示例
    train.py代码如下importtorchimporttorch.nnasnnimporttorch.optimasoptimmodel_save_path="my_model.pth"#定义简单的线性神经网络模型classMyModel(nn.Module):def__init__(self):super(MyModel,self).__init__()self.output=n......
  • HSSFColor.HSSFColorPredefined 颜色分类
    原文:https://blog.csdn.net/shanghaojiabohetang/article/details/51837242   ......
  • 深入解析:23种软件设计模式详解及其分类(创建型、结构型、行为型)附代码示例DEMO
    目录引言一、创建型模式1.简单工厂模式(SimpleFactoryPattern)2.抽象工厂模式(AbstractFactoryPattern)3.单例模式(SingletonPattern)4.建造者模式(BuilderPattern)5.原型模式(PrototypePattern)二、结构型模式1.适配器模式(AdapterPattern)2.桥接模式(BridgePatt......
  • 微信小程序教程011-4:京西购物商城实战之分类页实现
    文章目录4、分类4.0创建cate分支4.1渲染分类页面的基本结构4.2获取分类数据4.3动态渲染左侧的一级分类列表4.4动态渲染右侧的二级分类列表4.5动态渲染右侧的三级分类列表4.6切换一级分类后重置滚动条的位置4.7点击三级分类跳转到商品列表页面4.8分......
  • pytorch实现神经网络图像分类
    Tensor在PyTorch中,最核心的数据结构就是Tensor了,可以认为Tensor与Numpy中的ndarrays非常类似,但是Tensor可以使用GPU加速而ndarrays不可以。在pytorch进行GPU运算iftorch.cuda.is_available():x=x.cuda()y=y.cuda()print(x+y)numpy与pytorch互相转换importtorch......
  • 排序算法 堆排序 HeapSort -- C语言实现
    堆排序堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:大顶堆:每个节点的值都大于或等于其子......
  • 001topsolid软件操作工具漏孔漏槽解决方案
            使用topsolid软件拆单经常会遇到漏孔漏槽问题,在设备加工试装后被试装师傅数落不知多少次!老话说吃一堑长一智,明明已点操作工具,但还是防不胜防,甚是头疼。总结如下原因:1、调入标准件时,最后一步未点击操作工具;2、在修改模型过程中,操作工具偶尔失效,软件自身bug;......