【MATLAB第86期】基于matlab的Catboost多输入单输出分类预测模型 catboost-1.1.1版本

2023-12-26 21:52

本文主要是介绍【MATLAB第86期】基于matlab的Catboost多输入单输出分类预测模型 catboost-1.1.1版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于matlab的Catboost多输入单输出分类预测模型 catboost-1.1.1版本

运行环境

windows10 matlab2020a
catboost版本:catboost-1.1.1
往期:
【MATLAB第20期】基于matlab的Catboost多输入单输出回归预测模型 catboost-1.1.1版本

一、导入数据

采用12输入,1输出,4分类,共357组数据,其中240个数据训练,117个数据测试。

%%  导入数据
res = xlsread('分类数据集.xlsx');%%  划分训练集和测试集
temp = randperm(357);
train_num=240;% 训练数量P_train = res(temp(1: train_num), 1: 12)';
T_train = res(temp(1: train_num), 13)';
M = size(P_train, 2);P_test = res(temp(train_num+1: end), 1: 12)';
T_test = res(temp(train_num+1: end), 13)';
N = size(P_test, 2);

二、数据归一化

%%  数据归一化
[p_train, ps_input] = mapminmax(P_train, 0, 1);
p_test  = mapminmax('apply', P_test, ps_input);

三、建立catboost模型

fit1=table(Ypred1,'VariableNames',{'RawFormulaVal'});
fit2=table(Ypred2,'VariableNames',{'RawFormulaVal'});writetable(fit1,'fit1.txt');
writetable(CD,'trainlabel.txt');
writetable(traindata,'traindata.txt');
command1 = 'catboost-1.1.1.exe fit % Catboost训练集拟合fit函数创建
status1 = system(command1)writetable(fit2,'fit2.txt');
writetable(CD,'testlabel.txt');
writetable(testdata,'testdata.txt');
command2 = 'catboost-1.1.1.exe fit % Catboost测试集拟合fit函数创建
status2 = system(command2)

Catboost常见参数设置

%params={"iterations":43, %迭代次数%"learning_rate":.001,%初始学习率%"cat_features":cat_feature,%  "depth":8,% "verbose":50,% "od_type":"Iter",#overfit detector.%"od_wait":50,%"eval_metric":"AUC",% "random_seed":SEED}

四、预测仿真

Catboost模型将非线性回归的拟合结果进行预测拟合,得到残差值(预测结果-非线性回归拟合)

Pred1=A1.RawFormulaVal;% Catboost训练集残差拟合结果
Pred1=Ypred1+Pred1;%Catboost训练集预测结果
YPRED1 = round(Pred1); %回归结果转分类结果
Y1=T_train;Pred2=A2.RawFormulaVal;% Catboost测试集残差拟合结果
Pred2=Ypred2+Pred2;%Catboost测试集预测结果
YPRED2 =round(Pred2);%回归结果转分类结果
Y2=T_test;

五、分类结果修正

因回归代码改分类,round函数转分类结果时,标签可能会新增,则需要通过代码进行判定,对错误结果进行修正。此处代码略。

六、预测结果

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

七、代码下载链接获取

后台私聊回复“第86期”可获取下载链接。限制获取,仅针对“第20期”客户。

这篇关于【MATLAB第86期】基于matlab的Catboost多输入单输出分类预测模型 catboost-1.1.1版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/540903

相关文章

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结