多输入多输出 | Matlab实现XGboost多输入多输出预测

发布于:2024-04-14 ⋅ 阅读:(215) ⋅ 点赞:(0)

多输入多输出 | Matlab实现XGboost多输入多输出预测

预测效果

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

基本介绍

Matlab实现XGboost多输入多输出预测
1.data为数据集,10个输入特征,3个输出变量。
2.main.m为主程序文件。
3.命令窗口输出MBE、MAE和R2,可在下载区获取数据和程序内容。

程序设计

  • 完整程序和数据下载方式:私信博主回复MMatlab实现XGboost多输入多输出预测
function Yhat = xgboost_test(p_test, model)

%%  读取模型
h_booster_ptr = model.h_booster_ptr;

%%  得到输入数据相关属性
rows = uint64(size(p_test, 1));
cols = uint64(size(p_test, 2));
p_test = p_test'; 

%%  设置必要的指针
h_test_ptr = libpointer;
h_test_ptr_ptr = libpointer('voidPtrPtr', h_test_ptr);
test_ptr = libpointer('singlePtr', single(p_test));
calllib('xgboost', 'XGDMatrixCreateFromMat', test_ptr, rows, cols, model.missing, h_test_ptr_ptr);

%%  预测
out_len_ptr = libpointer('uint64Ptr', uint64(0));
f = libpointer('singlePtr');
f_ptr = libpointer('singlePtrPtr', f);
calllib('xgboost', 'XGBoosterPredict', h_booster_ptr, h_test_ptr, int32(0), uint32(0), int32(0), out_len_ptr, f_ptr);

%%  提取预测
n_outputs = out_len_ptr.Value;
setdatatype(f, 'singlePtr', n_outputs);

%%  得到最终输出
Yhat = double(f.Value);

end

往期精彩

MATLAB实现RBF径向基神经网络多输入多输出预测
MATLAB实现BP神经网络多输入多输出预测
MATLAB实现DNN神经网络多输入多输出预测

参考资料

[1] https://blog.csdn.net/kjm13182345320/article/details/116377961
[2] https://blog.csdn.net/kjm13182345320/article/details/127931217
[3] https://blog.csdn.net/kjm13182345320/article/details/127894261


网站公告

今日签到

点亮在社区的每一天
去签到