【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个数据测试。

bash 复制代码
%%  导入数据
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);

二、数据归一化

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

三、建立catboost模型

bash 复制代码
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常见参数设置

bash 复制代码
%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模型将非线性回归的拟合结果进行预测拟合,得到残差值(预测结果-非线性回归拟合)

bash 复制代码
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期"客户。

相关推荐
严肃小白兔1 天前
优秀 MATLAB 作者、书籍推荐:国外经典教材与技术资源整理
matlab
熊猫_豆豆2 天前
buck-boost电路MATLAB仿真
matlab·电路·电力电子技术
逆向编程3 天前
MATLAB高级数据结构:cell、struct与table深度应用
开发语言·数据结构·matlab
星夜离尘563 天前
MATLAB 刚体坐标变换:点、方向和逆变换为什么不能混用
matlab
Evand J4 天前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
机器学习之心4 天前
基于贝叶斯物理信息神经网络的矿产预测与不确定性量化,MATLAB代码及复现报告
人工智能·神经网络·matlab·贝叶斯物理信息神经网络
Evand J5 天前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm
slandarer5 天前
MATLAB | 文艺复兴:万圣节使用 MATLAB 绘制黑人抬棺动画
matlab·黑人抬棺
大江东去浪淘尽千古风流人物5 天前
【FLORA】机器人视频标注引擎解析:三模型如何产出动作指令与四类奖励信号
matlab·机器人·跨模态·遥感·图像匹配·1024程序员节·特征描述符
星夜离尘565 天前
MATLAB ADC 码流触顶诊断:命中数、缺口分段与削顶不可辨识性
开发语言·matlab