R 中 XGBoost 实现梯度提升模型代码
时间: 2024-08-14 07:04:24 浏览: 55
在R语言中,XGBoost(Extreme Gradient Boosting)是一个流行的库,用于实施梯度提升算法。以下是使用xgboost包创建一个简单的梯度提升决策树模型的基本步骤:
```r
# 首先安装xgboost库(如果尚未安装)
install.packages("xgboost")
# 加载必要的库
library(xgboost)
# 假设我们有一个数据集df,其中包含特征变量x和目标变量y
data <- df[, c("x", "y")]
# 划分数据集为训练集和测试集
set.seed(123) # 设置随机种子为了复现结果
train_idx <- sample(1:nrow(data), 0.8 * nrow(data)) # 80%的数据作为训练集
train_data <- data[train_idx, ]
test_data <- data[-train_idx, ]
# 定义模型参数
params <- list(
objective = "binary:logistic", # 对于二分类任务
max_depth = 3, # 树的最大深度
learning_rate = 0.1, # 学习率
nrounds = 100 # 迭代轮数
)
# 训练模型
bst <- xgboost(data = as.matrix(train_data[, -ncol(train_data)]),
label = train_data$y,
params = params)
# 预测测试集
predictions <- predict(bst, newdata = as.matrix(test_data[, -ncol(test_data)]))
# 评估性能
accuracy <- mean(predictions == test_data$y)
print(paste("Accuracy on test set:", accuracy))
```
阅读全文