XGBoost算法的matlab代码
时间: 2024-05-22 13:08:51 浏览: 114
XGBoost算法使用代码示例
XGBoost算法是一种常用的梯度提升树算法,它在机器学习竞赛中表现出色。在Matlab中,可以使用xgbmatlab这个开源工具箱来实现XGBoost算法。
以下是使用xgbmatlab实现XGBoost算法的代码示例:
```matlab
% 加载数据
data = readtable('data.csv');
X = table2array(data(:,1:end-1));
y = table2array(data(:,end));
% 将数据划分为训练集和测试集
cv = cvpartition(size(X,1),'HoldOut',0.3);
idx = cv.test;
X_train = X(~idx,:);
y_train = y(~idx,:);
X_test = X(idx,:);
y_test = y(idx,:);
% 定义XGBoost参数
param = struct();
param.max_depth = 3;
param.eta = 0.1;
param.gamma = 0;
param.alpha = 0;
param.lambda = 1;
param.num_round = 50;
% 训练XGBoost模型
model = xgbtrain(X_train, y_train, param);
% 在测试集上进行预测
y_pred = xgbpredict(model, X_test);
% 计算模型评估指标
rmse = sqrt(mean((y_pred - y_test).^2));
r2 = corr(y_pred, y_test)^2;
% 输出结果
fprintf('RMSE: %.4f\n', rmse);
fprintf('R-squared: %.4f\n', r2);
```
以上代码将数据划分为训练集和测试集,并使用XGBoost算法在训练集上训练模型,在测试集上进行预测并计算模型评估指标。你可以根据自己的需求修改参数和数据集,并使用该代码实现XGBoost算法。
阅读全文