lgb.train {lightgbm} | R Documentation |
Main training logic for LightGBM
Description
Low-level R interface to train a LightGBM model. Unlike lightgbm
,
this function is focused on performance (e.g. speed, memory efficiency). It is also
less likely to have breaking API changes in new releases than lightgbm
.
Usage
lgb.train(
params = list(),
data,
nrounds = 100L,
valids = list(),
obj = NULL,
eval = NULL,
verbose = 1L,
record = TRUE,
eval_freq = 1L,
init_model = NULL,
colnames = NULL,
categorical_feature = NULL,
early_stopping_rounds = NULL,
callbacks = list(),
reset_data = FALSE,
serializable = TRUE
)
Arguments
params |
a list of parameters. See the "Parameters" section of the documentation for a list of parameters and valid values. |
data |
a |
nrounds |
number of training rounds |
valids |
a list of |
obj |
objective function, can be character or custom objective function. Examples include
|
eval |
evaluation function(s). This can be a character vector, function, or list with a mixture of strings and functions.
|
verbose |
verbosity for output, if <= 0 and |
record |
Boolean, TRUE will record iteration message to |
eval_freq |
evaluation output frequency, only effective when verbose > 0 and |
init_model |
path of model file or |
colnames |
Deprecated. See "Deprecated Arguments" section below. |
categorical_feature |
Deprecated. See "Deprecated Arguments" section below. |
early_stopping_rounds |
int. Activates early stopping. When this parameter is non-null,
training will stop if the evaluation of any metric on any validation set
fails to improve for |
callbacks |
List of callback functions that are applied at each iteration. |
reset_data |
Boolean, setting it to TRUE (not the default value) will transform the booster model into a predictor model which frees up memory and the original datasets |
serializable |
whether to make the resulting objects serializable through functions such as
|
Value
a trained booster model lgb.Booster
.
Deprecated Arguments
A future release of lightgbm
will remove support for passing arguments
'categorical_feature'
and 'colnames'
. Pass those things to
lgb.Dataset
instead.
Early Stopping
"early stopping" refers to stopping the training process if the model's performance on a given validation set does not improve for several consecutive iterations.
If multiple arguments are given to eval
, their order will be preserved. If you enable
early stopping by setting early_stopping_rounds
in params
, by default all
metrics will be considered for early stopping.
If you want to only consider the first metric for early stopping, pass
first_metric_only = TRUE
in params
. Note that if you also specify metric
in params
, that metric will be considered the "first" one. If you omit metric
,
a default metric will be used based on your choice for the parameter obj
(keyword argument)
or objective
(passed into params
).
Examples
data(agaricus.train, package = "lightgbm")
train <- agaricus.train
dtrain <- lgb.Dataset(train$data, label = train$label)
data(agaricus.test, package = "lightgbm")
test <- agaricus.test
dtest <- lgb.Dataset.create.valid(dtrain, test$data, label = test$label)
params <- list(
objective = "regression"
, metric = "l2"
, min_data = 1L
, learning_rate = 1.0
, num_threads = 2L
)
valids <- list(test = dtest)
model <- lgb.train(
params = params
, data = dtrain
, nrounds = 5L
, valids = valids
, early_stopping_rounds = 3L
)