Skip to contents

Random forest for classification. Calls randomForest::randomForest() from randomForest.

Dictionary

This Learner can be instantiated via lrn():

lrn("classif.randomForest")

Meta Information

  • Task type: “classif”

  • Predict Types: “response”, “prob”

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

  • Required Packages: mlr3, mlr3extralearners, randomForest

Parameters

IdTypeDefaultLevelsRange
ntreeinteger500\([1, \infty)\)
mtryinteger-\([1, \infty)\)
replacelogicalTRUETRUE, FALSE-
classwtuntypedNULL-
cutoffuntyped--
stratauntyped--
sampsizeuntyped--
nodesizeinteger1\([1, \infty)\)
maxnodesinteger-\([1, \infty)\)
importancecharacterFALSEaccuracy, gini, none-
localImplogicalFALSETRUE, FALSE-
proximitylogicalFALSETRUE, FALSE-
oob.proxlogical-TRUE, FALSE-
norm.voteslogicalTRUETRUE, FALSE-
do.tracelogicalFALSETRUE, FALSE-
keep.forestlogicalTRUETRUE, FALSE-
keep.inbaglogicalFALSETRUE, FALSE-
predict.alllogicalFALSETRUE, FALSE-
nodeslogicalFALSETRUE, FALSE-

References

Breiman, Leo (2001). “Random Forests.” Machine Learning, 45(1), 5–32. ISSN 1573-0565, doi:10.1023/A:1010933404324 .

See also

Author

pat-s

Super classes

mlr3::Learner -> mlr3::LearnerClassif -> LearnerClassifRandomForest

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.


Method importance()

The importance scores are extracted from the slot importance. Parameter 'importance' must be set to either "accuracy" or "gini".

Usage

LearnerClassifRandomForest$importance()

Returns

Named numeric().


Method oob_error()

OOB errors are extracted from the model slot err.rate.

Usage

LearnerClassifRandomForest$oob_error()

Returns

numeric(1).


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerClassifRandomForest$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = lrn("classif.randomForest", importance = "accuracy")
print(learner)
#> 
#> ── <LearnerClassifRandomForest> (classif.randomForest): Random Forest ──────────
#> • Model: -
#> • Parameters: importance=accuracy
#> • Packages: mlr3, mlr3extralearners, and randomForest
#> • Predict Types: [response] and prob
#> • Feature Types: logical, integer, numeric, factor, and ordered
#> • Encapsulation: none (fallback: -)
#> • Properties: importance, multiclass, oob_error, twoclass, and weights
#> • Other settings: use_weights = 'use'

# 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)

print(learner$model)
#> 
#> Call:
#>  randomForest(formula = formula, data = data, classwt = classwt,      cutoff = cutoff, importance = TRUE) 
#>                Type of random forest: classification
#>                      Number of trees: 500
#> No. of variables tried at each split: 7
#> 
#>         OOB estimate of  error rate: 19.42%
#> Confusion matrix:
#>    M  R class.error
#> M 66  7  0.09589041
#> R 20 46  0.30303030
print(learner$importance())
#>           V11           V46            V9           V49           V12 
#>  2.149306e-02  1.303853e-02  1.270259e-02  1.257787e-02  1.239478e-02 
#>           V48           V10           V20           V13            V4 
#>  9.594104e-03  9.350289e-03  9.169662e-03  8.942942e-03  8.054126e-03 
#>           V45           V47           V16           V21           V18 
#>  8.001914e-03  7.636911e-03  5.331896e-03  4.397556e-03  4.094982e-03 
#>           V27           V44           V51           V31           V19 
#>  3.864285e-03  3.683499e-03  3.593009e-03  3.224122e-03  3.021729e-03 
#>           V42           V37           V50           V54           V15 
#>  2.968945e-03  2.954751e-03  2.933879e-03  2.877436e-03  2.677633e-03 
#>           V29           V28           V52           V22           V43 
#>  2.627352e-03  2.617658e-03  2.257927e-03  1.928297e-03  1.924005e-03 
#>           V36           V30            V1           V32           V38 
#>  1.911702e-03  1.874922e-03  1.696440e-03  1.689376e-03  1.655204e-03 
#>           V41           V17            V7           V26           V14 
#>  1.613820e-03  1.602538e-03  1.560251e-03  1.533503e-03  1.510058e-03 
#>           V59            V6           V58           V23           V39 
#>  1.484464e-03  1.437414e-03  1.383361e-03  1.373362e-03  1.355256e-03 
#>           V35            V8           V53           V55            V5 
#>  1.229607e-03  1.190785e-03  1.043537e-03  1.031794e-03  9.278910e-04 
#>            V2            V3           V60           V33           V56 
#>  6.738709e-04  4.388991e-04  3.675236e-04  3.360776e-04  2.710605e-04 
#>           V25           V57           V40           V34           V24 
#>  2.461356e-04  1.486063e-04 -7.145667e-05 -4.040398e-04 -6.019170e-04 

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

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