我终于在R中安装了LightGBM,但无法完全正常工作。以下是使用虹膜数据集的简单可重现示例。
我正在Windows 10和lightgbm_2.2.4上使用R版本3.5.2。
library(lightgbm)
library(caTools)
set.seed(42)
# Prepare the dataset for binary classification
iris$label <- 0
iris$label[iris$Species=="setosa"] <- 1
iris <- iris[,!(names(iris) %in% "Species")]
# Split into train & validation set
sample <- sample.split(iris$label, SplitRatio = .75)
train <- subset(iris, sample == TRUE)
valid <- subset(iris, sample == FALSE)
X_train <- train[,!(names(train) %in% "label")]
X_valid <- valid[,!(names(valid) %in% "label")]
y_train <- train$label
y_valid <- valid$label
# Train LightGBM
dtrain <- lgb.Dataset(data = X_train, label = y_train)
dvalid <- lgb.Dataset(data = X_valid, label = y_valid)
params <- list(objective = "binary",
verbose = 1,
seed = 42)
lgb_model <- lgb.train(params, dtrain, 200, list(eval = dvalid),
verbose_eval=200, early_stopping_round=10)
运行lgb.train时,出现以下错误消息:“ data $ construct()中的错误:lgb.Dataset.construct:不支持从'data.frame'进行构造。。
我不知道是什么导致了此错误以及如何解决。非常感谢您的帮助。
lgb.Dataset仅接受矩阵,因此
dtrain <- lgb.Dataset(data = as.matrix(X_train), label = y_train)
dvalid <- lgb.Dataset(data = as.matrix(X_valid), label = y_valid)
应该工作