Skip to contents

Setup hyperparameters for LightRF training.

Usage

setup_LightRF(
  nrounds = 500L,
  num_leaves = 4096L,
  max_depth = -1L,
  feature_fraction = 0.7,
  subsample = 0.623,
  lambda_l1 = 0,
  lambda_l2 = 0,
  max_cat_threshold = 32L,
  min_data_per_group = 32L,
  linear_tree = FALSE,
  ifw = FALSE,
  objective = NULL,
  device_type = "cpu",
  tree_learner = "serial",
  force_col_wise = TRUE
)

Arguments

nrounds

(Tunable) Positive integer: Number of boosting rounds.

num_leaves

(Tunable) Positive integer: Maximum number of leaves in one tree.

max_depth

(Tunable) Integer: Maximum depth of trees.

feature_fraction

(Tunable) Numeric: Fraction of features to use.

subsample

(Tunable) Numeric: Fraction of data to use.

lambda_l1

(Tunable) Numeric: L1 regularization.

lambda_l2

(Tunable) Numeric: L2 regularization.

max_cat_threshold

(Tunable) Positive integer: Maximum number of categories for categorical features.

min_data_per_group

(Tunable) Positive integer: Minimum number of observations per categorical group.

linear_tree

Logical: If TRUE, use linear trees.

ifw

Logical: If TRUE, use Inverse Frequency Weighting in classification.

objective

Character: Objective function.

device_type

Character: "cpu" or "gpu".

tree_learner

Character: "serial", "feature", "data", or "voting".

force_col_wise

Logical: Use only with CPU - If TRUE, force col-wise histogram building.

Value

LightRFHyperparameters object.

Details

Get more information from lightgbm::lgb.train. Note that hyperparameters subsample_freq and early_stopping_rounds are fixed, and cannot be set because they are what makes lightgbm train a random forest. These can all be set when training gradient boosting with LightGBM.

Author

EDG

Examples

lightrf_hyperparams <- setup_LightRF(nrounds = 1000L, ifw = FALSE)
lightrf_hyperparams
#> <LightRFHyperparameters>
#>         hyperparameters: 
#>                                        nrounds: <int> 1000
#>                                     num_leaves: <int> 4096
#>                                      max_depth: <int> -1
#>                               feature_fraction: <nmr> 0.70
#>                                      subsample: <nmr> 0.62
#>                                      lambda_l1: <nmr> 0.00
#>                                      lambda_l2: <nmr> 0.00
#>                              max_cat_threshold: <int> 32
#>                             min_data_per_group: <int> 32
#>                                    linear_tree: <lgc> FALSE
#>                                            ifw: <lgc> FALSE
#>                                      objective: <NUL> NULL
#>                                    device_type: <chr> cpu
#>                                   tree_learner: <chr> serial
#>                                 force_col_wise: <lgc> TRUE
#>                                  boosting_type: <chr> rf
#>                                  learning_rate: <nmr> 1.00
#>                                 subsample_freq: <int> 1
#>                          early_stopping_rounds: <int> -1
#> tunable_hyperparameters: <chr> nrounds, num_leaves, max_depth, feature_fraction, subsample, lambda_l1, lambda_l2, max_cat_threshold, min_data_per_group, ifw
#>   fixed_hyperparameters: <chr> objective, device_type, tree_learner, boosting_type, learning_rate, subsample_freq, early_stopping_rounds, force_col_wise
#>                   tuned: <int> -1
#>               resampled: <int> 0
#>               n_workers: <int> 1
#> 
#>   No search values defined for tunable hyperparameters.