赞
踩
网上基于MATLAB的xgboost源码资源太少了,而且找到的工具箱还不能立马用,对新手不太友好,接下来我将研究捣鼓半天的成果和经验分享给大家。
1.有matlab软件,版本越高越好,我用的是2020a。
2.有matlab账号,需要去下载xgboost工具箱。
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运行
运行成功~
如果你无法连接外网下载whl文件,以及xgboost.h文件,我这里可以分享相应资源,并包含用xgboost进行回归预测的代码。点击下方获取链接,即可下载。
获取链接
运行展示如下:
最后是想说整理不易,目前网上很少有介绍如何去安装matlab的xgboost算法工具箱的文章,如果本文对你有帮助,希望能够捧个场,感谢~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。