【MATLAB第9期】基于MATLAB的xgboost算法安装超详细教学(踩坑避雷指南)暂时仅限于Windows系统 #末尾含源码获取链接

1.前言

网上基于MATLAB的xgboost源码资源太少了,而且找到的工具箱还不能立马用,对新手不太友好,接下来我将研究捣鼓半天的成果和经验分享给大家。

2.安装具备条件

1.有matlab软件,版本越高越好,我用的是2020a。
2.有matlab账号,需要去下载xgboost工具箱。
3.电脑可以连外网(这个绝大部分人比较难做到)

3.安装步骤

1.登录matlab社区网站
https://ww2.mathworks.cn/matlabcentral/fileexchange/
在这里插入图片描述
2.账号注册
在这里插入图片描述
3.下载工具箱
工具箱下载到一个自定义文件,路径越简单越好。
在这里插入图片描述
4.打开MATLAB软件
在这里插入图片描述
5.修改代码路径在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.下载wheel file文件(此处实现较麻烦,要用外网,有条件者可以尝试)
网址:https://s3-us-west-2.amazonaws.com/xgboost-nightly-builds/list.html
工具箱中是调用《xgboost-1.1.0+115e4c33608c3b0cee75402f1193e67fdb11ef9a-py3-none-win_amd64.whl》这个版本的whl文件。
针对windows64位系统,要注意下载后缀为win_amd64的文件,当然版本不需要严格用1.10的 ,用1.6版本的也可以,本文演示用1.2版本的whl文件。
在这里插入图片描述
将whl文件下载到你的xgboost文件夹根目录里。

7.继续修改xgboost_install路径
在这里插入图片描述
8.下载xgboost.h代码
在这里插入图片描述
建议要把outfilename变量隐藏,这个代码可以生成xgboost.h文件,但是我的matlab无法访问。
这种情况下,用浏览器打开对应的url网址,正常情况下可以访问,得到一大段代码,其就是xgboost的c语言代码,可以整体复制下来。
在这里插入图片描述
然后新建脚本,粘贴代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.修改xgboost_train路径
在这里插入图片描述
在这里插入图片描述

10.继续修改xgboost_test路径
同上
在这里插入图片描述

11.安装matlab插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
12.右键运行xgboost_install
会多一个lib文件夹
在这里插入图片描述
然后把xgboost.h文件放在lib里
在这里插入图片描述
13.找到案例代码,试运行
打开xgboost_train
在这里插入图片描述
将这段代码复制下来。
新建main.m的主程序代码,将内容粘贴进去。
在这里插入图片描述

clear all
warning off
 load carsmall; Xtrain = [Acceleration Cylinders Displacement Horsepower MPG]; ytrain = cellstr(Origin); ytrain = double(ismember(ytrain,'USA'));
X = Xtrain(1:70,:); y = ytrain(1:70); Xtest = Xtrain(size(X,1)+1:end,:); ytest = ytrain(size(X,1)+1:end);
 model_filename = []; model = xgboost_train(X,y,[],999,'AUC',model_filename); %%% model_filename = 'xgboost_model.xgb'
 loadmodel = 0; Yhat = xgboost_test(Xtest,model,loadmodel);
 [XX,YY,~,AUC] = perfcurve(ytest,Yhat,1);
figure; plot(XX,YY,'LineWidth',2); xlabel('False positive rate'); ylabel('True positive rate'); title('ROC for Classification by Logistic Regression'); grid on
figure; scatter(Yhat,ytest + 0.1*rand(length(ytest),1)); grid on

最后右键main运行

在这里插入图片描述
运行成功~

4.源码获取

如果你无法连接外网下载whl文件,以及xgboost.h文件,我这里可以分享相应资源,并包含用xgboost进行回归预测的代码。点击下方获取链接,即可下载。
获取链接
1.阅读首页置顶文章
2.关注优快云
3.根据自动回复消息,回复“9期”以及相应指令,即可获取对应下载方式。
运行展示如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后是想说整理不易,目前网上很少有介绍如何去安装matlab的xgboost算法工具箱的文章,如果本文对你有帮助,希望能够捧个场,感谢~

### 如何在MATLAB中实现和应用XGBoost算法 #### 安装XGBoost工具箱 为了能够在 MATLAB 中使用 XGBoost 算法,首先需要安装相应的工具箱。可以通过以下命令来下载并编译 XGBoost: ```matlab !git clone --recursive https://github.com/dmlc/xgboost cd xgboost !make -j4 ``` 完成上述操作之后,在 MATLAB 命令窗口输入 `addpath('xgboost/matlab-package')` 将路径添加到 MATLAB#### 数据准备 加载数据集,并将其划分为训练集和测试集。这里以鸢尾花 (Iris) 数据为例说明如何处理数据: ```matlab load fisheriris; species = categorical(species); predictors = meas; % 划分训练集与测试集 cv = cvpartition(size(predictors, 1), 'HoldOut', 0.3); trainPredictors = predictors(training(cv), :); testPredictors = predictors(test(cv), :); trainLabels = species(training(cv)); testLabels = species(test(cv)); ``` #### 创建DMatrix对象 创建 DMatrix 对象用于存储特征矩阵以及标签向量,这是 XGBoost 所需的数据结构形式[^1]。 ```matlab dtrain = xgb.create.DMatrix(trainPredictors, trainLabels); dtest = xgb.create.DMatrix(testPredictors, testLabels); ``` #### 设置参数并训练模型 定义一组初始超参数设置,并调用 `fit` 函数来进行模型拟合过程。可以调整这些参数获得更好的效果。 ```matlab params = struct(... 'objective','multi:softmax',... 'num_class', numel(unique(trainLabels)), ... 'max_depth',7,... 'eta',0.1,... 'subsample',0.8,... 'colsample_bytree',0.9,... 'eval_metric','mlogloss'); model = xgb.train(params,dtrain,'num_rounds',100); ``` #### 使用PSO优化XGBoost超参数 对于更复杂的场景下,可能希望通过粒子群优化(Particle Swarm Optimization, PSO)寻找最优的超参数配置。这有助于找到更适合当前任务的最佳参数组合,进而改善最终分类器的表现[^2]。 ```matlb function optimizedParams = psoOptimizeXGB() % 实现PSO-XGBoost的具体逻辑 end ``` 注意:实际编写时应根据具体需求设计适应度函数、初始化种群等细节部分。 #### 预测新样本类别 最后一步就是利用已训练好的模型对未知实例做出预测判断。 ```matlab predictedLabels = predict(model,testPredictors); accuracy = sum(strcmp(char(predictedLabels),char(testLabels)))/length(testLabels)*100; disp(['Accuracy on the testing set is ', num2str(accuracy),'%.']); ``` 通过以上步骤可以在 MATLAB 平台上成功构建起基于 XGBoost 的机器学习流程,并应用于各类多分类问题求解之中。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风飘摇的土木狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值