R写一个LightGBM代码,用于回归预测
时间: 2023-12-03 11:45:51 浏览: 237
以下是一个简单的LightGBM回归模型的R代码:
```R
# 加载必要的库
library(data.table)
library(lightgbm)
# 读取数据
data <- fread("data.csv")
# 划分训练集和测试集
train_idx <- sample(nrow(data), 0.8 * nrow(data))
train_data <- data[train_idx, ]
valid_data <- data[-train_idx, ]
# 准备LightGBM数据
train_lgb <- lgb.Dataset(train_data[, -1], label = train_data$target)
valid_lgb <- lgb.Dataset(valid_data[, -1], label = valid_data$target)
# 设置LightGBM参数
params <- list(
objective = "regression",
metric = "rmse",
learning_rate = 0.05,
num_leaves = 31,
min_data_in_leaf = 20,
bagging_fraction = 0.8,
bagging_freq = 5,
feature_fraction = 0.8
)
# 训练LightGBM模型
model <- lgb.train(
params = params,
data = train_lgb,
valids = list(valid_lgb),
num_boost_round = 1000,
early_stopping_rounds = 50
)
# 预测测试集并计算RMSE
pred <- predict(model, valid_data[, -1])
rmse <- sqrt(mean((pred - valid_data$target) ^ 2))
cat("RMSE:", rmse, "\n")
```
这个代码假设数据已经存储在一个名为"data.csv"的文件中,其中第一列是目标变量,其他列是特征。代码首先将数据读入一个data.table对象中,然后将其划分为训练集和测试集。接下来,它使用lgb.Dataset函数将数据转换为LightGBM格式,并使用lgb.train函数训练模型。最后,它用训练好的模型预测测试集并计算RMSE。你可以根据你自己的数据和需求修改参数以及其他细节。
阅读全文