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


LearnerClassifRandomForest$new()

Creates a new instance of this R6 class.


LearnerClassifRandomForest$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().


LearnerClassifRandomForest$oob_error()

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

Usage

LearnerClassifRandomForest$oob_error()

Returns

numeric(1).


LearnerClassifRandomForest$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', 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)

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: 18.71%
#> Confusion matrix:
#>    M  R class.error
#> M 58 11   0.1594203
#> R 15 55   0.2142857
print(learner$importance())
#>           V11           V12           V48           V13           V10 
#>  0.0338032792  0.0316177328  0.0137647354  0.0093524641  0.0088206587 
#>           V21            V9           V28           V27           V45 
#>  0.0080832715  0.0079862307  0.0077953210  0.0074365657  0.0068469613 
#>           V16           V54           V20           V17           V49 
#>  0.0057979480  0.0057275558  0.0055178279  0.0052732937  0.0045178979 
#>           V47            V4           V23           V51           V25 
#>  0.0042783654  0.0042513089  0.0040122678  0.0034402584  0.0033715269 
#>           V37           V15           V46           V36           V26 
#>  0.0032214665  0.0032059764  0.0031221219  0.0030009347  0.0029807895 
#>           V18           V44           V59           V39           V24 
#>  0.0028222908  0.0028114924  0.0024648144  0.0022945357  0.0021837192 
#>           V35            V1           V52            V6           V40 
#>  0.0020204975  0.0019181884  0.0018660265  0.0018330645  0.0018303240 
#>           V19           V30            V5           V22            V3 
#>  0.0018049387  0.0017797334  0.0017282813  0.0016948733  0.0016587542 
#>           V43           V29           V55           V14            V2 
#>  0.0016546996  0.0014693372  0.0013713896  0.0012675898  0.0012560812 
#>           V31           V33           V56           V57           V32 
#>  0.0011183412  0.0010974723  0.0009388079  0.0008466495  0.0007053434 
#>            V8           V60           V41           V42           V34 
#>  0.0005718067  0.0005596147  0.0004550673  0.0004157908  0.0003689713 
#>           V50           V38           V58            V7           V53 
#> -0.0001976641 -0.0007280325 -0.0008255145 -0.0008518404 -0.0015452868 

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

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