lightgbm.Rd 5.64 KB
Newer Older
James Lamb's avatar
James Lamb committed
1
2
3
4
5
6
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/lightgbm.R
\name{lightgbm}
\alias{lightgbm}
\title{Train a LightGBM model}
\usage{
7
8
9
lightgbm(
  data,
  label = NULL,
10
  weights = NULL,
11
  params = list(),
12
  nrounds = 100L,
13
  verbose = 1L,
14
15
16
17
  eval_freq = 1L,
  early_stopping_rounds = NULL,
  init_model = NULL,
  callbacks = list(),
18
  serializable = TRUE,
19
20
  objective = "regression",
  init_score = NULL,
21
  num_threads = NULL,
22
23
  ...
)
James Lamb's avatar
James Lamb committed
24
25
}
\arguments{
26
27
28
\item{data}{a \code{lgb.Dataset} object, used for training. Some functions, such as \code{\link{lgb.cv}},
may allow you to pass other types of data like \code{matrix} and then separately supply
\code{label} as a keyword argument.}
James Lamb's avatar
James Lamb committed
29
30
31

\item{label}{Vector of labels, used if \code{data} is not an \code{\link{lgb.Dataset}}}

32
33
\item{weights}{Sample / observation weights for rows in the input data. If \code{NULL}, will assume that all
observations / rows have the same importance / weight.}
James Lamb's avatar
James Lamb committed
34

35
36
\item{params}{a list of parameters. See \href{https://lightgbm.readthedocs.io/en/latest/Parameters.html}{
the "Parameters" section of the documentation} for a list of parameters and valid values.}
James Lamb's avatar
James Lamb committed
37
38
39
40
41
42
43

\item{nrounds}{number of training rounds}

\item{verbose}{verbosity for output, if <= 0, also will disable the print of evaluation during training}

\item{eval_freq}{evaluation output frequency, only effect when verbose > 0}

44
45
46
47
48
\item{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 \code{early_stopping_rounds} consecutive boosting rounds.
If training stops early, the returned model will have attribute \code{best_iter}
set to the iteration number of the best iteration.}
James Lamb's avatar
James Lamb committed
49
50
51

\item{init_model}{path of model file of \code{lgb.Booster} object, will continue training from this model}

52
\item{callbacks}{List of callback functions that are applied at each iteration.}
James Lamb's avatar
James Lamb committed
53

54
55
56
\item{serializable}{whether to make the resulting objects serializable through functions such as
\code{save} or \code{saveRDS} (see section "Model serialization").}

57
58
\item{objective}{Optimization objective (e.g. `"regression"`, `"binary"`, etc.).
For a list of accepted objectives, see
59
60
\href{https://lightgbm.readthedocs.io/en/latest/Parameters.html#objective}{
the "objective" item of the "Parameters" section of the documentation}.}
61
62
63

\item{init_score}{initial score is the base prediction lightgbm will boost from}

64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
\item{num_threads}{Number of parallel threads to use. For best speed, this should be set to the number of
                   physical cores in the CPU - in a typical x86-64 machine, this corresponds to half the
                   number of maximum threads.

                   Be aware that using too many threads can result in speed degradation in smaller datasets
                   (see the parameters documentation for more details).

                   If passing zero, will use the default number of threads configured for OpenMP
                   (typically controlled through an environment variable \code{OMP_NUM_THREADS}).

                   If passing \code{NULL} (the default), will try to use the number of physical cores in the
                   system, but be aware that getting the number of cores detected correctly requires package
                   \code{RhpcBLASctl} to be installed.

                   This parameter gets overriden by \code{num_threads} and its aliases under \code{params}
                   if passed there.}

James Lamb's avatar
James Lamb committed
81
82
\item{...}{Additional arguments passed to \code{\link{lgb.train}}. For example
\itemize{
83
84
   \item{\code{valids}: a list of \code{lgb.Dataset} objects, used for validation}
   \item{\code{obj}: objective function, can be character or custom objective function. Examples include
James Lamb's avatar
James Lamb committed
85
86
              \code{regression}, \code{regression_l1}, \code{huber},
               \code{binary}, \code{lambdarank}, \code{multiclass}, \code{multiclass}}
87
88
89
90
91
92
93
   \item{\code{eval}: evaluation function, can be (a list of) character or custom eval function}
   \item{\code{record}: Boolean, TRUE will record iteration message to \code{booster$record_evals}}
   \item{\code{colnames}: feature names, if not null, will use this to overwrite the names in dataset}
   \item{\code{categorical_feature}: categorical features. This can either be a character vector of feature
                       names or an integer vector with the indices of the features (e.g. \code{c(1L, 10L)} to
                       say "the first and tenth columns").}
   \item{\code{reset_data}: Boolean, setting it to TRUE (not the default value) will transform the booster model
James Lamb's avatar
James Lamb committed
94
95
96
                     into a predictor model which frees up memory and the original datasets}
}}
}
97
98
99
\value{
a trained \code{lgb.Booster}
}
James Lamb's avatar
James Lamb committed
100
\description{
101
Simple interface for training a LightGBM model.
James Lamb's avatar
James Lamb committed
102
}
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
\section{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 \code{eval}, their order will be preserved. If you enable
         early stopping by setting \code{early_stopping_rounds} in \code{params}, by default all
         metrics will be considered for early stopping.

         If you want to only consider the first metric for early stopping, pass
         \code{first_metric_only = TRUE} in \code{params}. Note that if you also specify \code{metric}
         in \code{params}, that metric will be considered the "first" one. If you omit \code{metric},
         a default metric will be used based on your choice for the parameter \code{obj} (keyword argument)
         or \code{objective} (passed into \code{params}).
}