多输入多输出 | Matlab实现XGboost多输入多输出预测
目录
- 多输入多输出 | 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