R代码实现XGBoost的二分类,并将预测概率值输出到CSV文件中
时间: 2024-09-15 20:15:07 浏览: 67
在R语言中,我们可以使用xgboost库来实现二分类任务并保存预测的概率值。首先,你需要安装`xgboost`和`caret`包,可以使用以下命令:
```R
install.packages("xgboost")
install.packages("caret")
```
然后加载所需的包:
```R
library(xgboost)
library(caret)
```
假设你已经有了训练数据集`df_train`,特征变量存储在`X_train`,目标变量在`y_train`,你可以创建模型如下:
```R
# 参数设置
set.seed(123) # 设置随机种子保证结果可复现
params <- list(
objective = "binary:logistic", # 使用二分类对数损失函数
max_depth = 3, # 树的最大深度
nthread = parallel::detectCores(), # 利用所有可用核心加速
booster = "gbtree" # 使用GBDT算法
)
# 训练模型
model <- xgb.train(params,
data = xgb.DMatrix(X_train, label = y_train),
num_round = 100, # 迭代次数
verbose = 0) # 静默模式
```
为了获取预测概率值,你需要先用测试数据`X_test`做预测:
```R
# 预测
preds_prob <- predict(model, newdata = xgb.DMatrix(X_test), type = "response") # 获取概率预测
```
最后,将预测概率保存到CSV文件:
```R
# 将结果写入csv文件
write.csv(preds_prob, "predictions_proba.csv", row.names = FALSE)
```
阅读全文