Skip to contents

Gradient Boosting Classification Algorithm. Calls gbm::gbm() from gbm.

Dictionary

This Learner can be instantiated via lrn():

lrn("classif.gbm")

Meta Information

  • Task type: “classif”

  • Predict Types: “response”, “prob”

  • Feature Types: “integer”, “numeric”, “factor”, “ordered”

  • Required Packages: mlr3, mlr3extralearners, gbm

Parameters

IdTypeDefaultLevelsRange
distributioncharacterbernoullibernoulli, adaboost, huberized, multinomial-
n.treesinteger100\([1, \infty)\)
interaction.depthinteger1\([1, \infty)\)
n.minobsinnodeinteger10\([1, \infty)\)
shrinkagenumeric0.001\([0, \infty)\)
bag.fractionnumeric0.5\([0, 1]\)
train.fractionnumeric1\([0, 1]\)
cv.foldsinteger0\((-\infty, \infty)\)
keep.datalogicalFALSETRUE, FALSE-
verboselogicalFALSETRUE, FALSE-
n.coresinteger1\((-\infty, \infty)\)
var.monotoneuntyped--

Initial parameter values

  • keep.data is initialized to FALSE to save memory.

  • n.cores is initialized to 1 to avoid conflicts with parallelization through future.

References

Friedman, H J (2002). “Stochastic gradient boosting.” Computational statistics & data analysis, 38(4), 367–378.

See also

Author

be-marc

Super classes

mlr3::Learner -> mlr3::LearnerClassif -> LearnerClassifGBM

Methods

Inherited methods


LearnerClassifGBM$new()

Creates a new instance of this R6 class.

Usage


LearnerClassifGBM$importance()

The importance scores are extracted by gbm::relative.influence() from the model.

Usage

LearnerClassifGBM$importance()

Returns

Named numeric().


LearnerClassifGBM$clone()

The objects of this class are cloneable with this method.

Usage

LearnerClassifGBM$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = lrn("classif.gbm")
print(learner)
#> 
#> ── <LearnerClassifGBM> (classif.gbm): Gradient Boosting ────────────────────────
#> • Model: -
#> • Parameters: keep.data=FALSE, n.cores=1
#> • Packages: mlr3, mlr3extralearners, and gbm
#> • Predict Types: [response] and prob
#> • Feature Types: integer, numeric, factor, and ordered
#> • Encapsulation: none (fallback: -)
#> • Properties: importance, missings, twoclass, and weights
#> • Other settings: use_weights = 'use', predict_raw = 'FALSE'

# Define a Task
task = tsk("sonar")

# Create train and test set
ids = partition(task)

# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
#> Distribution not specified, assuming bernoulli ...

print(learner$model)
#> gbm::gbm(formula = f, data = data, keep.data = FALSE, n.cores = 1L)
#> A gradient boosted model with bernoulli loss function.
#> 100 iterations were performed.
#> There were 60 predictors of which 31 had non-zero influence.
print(learner$importance())
#>        V11        V49        V52         V9        V16        V48        V36 
#> 21.0771188 12.4074681  9.7822937  9.6827183  8.7032642  8.0560653  7.6000606 
#>        V21        V47        V27        V46        V23        V45        V12 
#>  7.1065449  4.4549466  4.1471472  3.9031759  3.5721080  3.3881835  3.1621718 
#>        V17        V33         V4        V10        V55        V28        V15 
#>  3.1389512  2.7528238  2.5042598  1.8764214  1.6442439  1.6263413  1.6259194 
#>        V60         V7        V37        V51        V30        V19        V59 
#>  1.4120409  1.0917200  0.7565497  0.5725447  0.5466430  0.4627272  0.3714614 
#>        V58        V22        V13         V1        V14        V18         V2 
#>  0.3655399  0.3179571  0.2753705  0.0000000  0.0000000  0.0000000  0.0000000 
#>        V20        V24        V25        V26        V29         V3        V31 
#>  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000 
#>        V32        V34        V35        V38        V39        V40        V41 
#>  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000 
#>        V42        V43        V44         V5        V50        V53        V54 
#>  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000  0.0000000 
#>        V56        V57         V6         V8 
#>  0.0000000  0.0000000  0.0000000  0.0000000 

# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)

# Score the predictions
predictions$score()
#> classif.ce 
#>  0.2318841