Random classification forest.Callsranger::ranger()
from packageranger.
Custom mlr3 parameters
mtry
:This hyperparameter can alternatively be set via our hyperparameter
mtry.ratio
asmtry = max(ceiling(mtry.ratio * n_features), 1)
.Note thatmtry
andmtry.ratio
are mutually exclusive.
Initial parameter values
num.threads
:Actual default:
2
, using two threads, while also respecting environment variableR_RANGER_NUM_THREADS
,options(ranger.num.threads = N)
, oroptions(Ncpus = N)
, withprecedence in that order.Adjusted value: 1.
Reason for change: Conflicting with parallelization viafuture.
Dictionary
Thismlr3::Learner can be instantiated via thedictionarymlr3::mlr_learners or with the associated sugar functionmlr3::lrn()
:
Meta Information
Task type: “classif”
Predict Types: “response”, “prob”
Feature Types: “logical”, “integer”, “numeric”, “character”, “factor”, “ordered”
Required Packages:mlr3,mlr3learners,ranger
Parameters
Id | Type | Default | Levels | Range |
always.split.variables | untyped | - | - | |
class.weights | untyped | NULL | - | |
holdout | logical | FALSE | TRUE, FALSE | - |
importance | character | - | none, impurity, impurity_corrected, permutation | - |
keep.inbag | logical | FALSE | TRUE, FALSE | - |
max.depth | integer | NULL | \([1, \infty)\) | |
min.bucket | untyped | 1L | - | |
min.node.size | untyped | NULL | - | |
mtry | integer | - | \([1, \infty)\) | |
mtry.ratio | numeric | - | \([0, 1]\) | |
na.action | character | na.learn | na.learn, na.omit, na.fail | - |
num.random.splits | integer | 1 | \([1, \infty)\) | |
node.stats | logical | FALSE | TRUE, FALSE | - |
num.threads | integer | 1 | \([1, \infty)\) | |
num.trees | integer | 500 | \([1, \infty)\) | |
oob.error | logical | TRUE | TRUE, FALSE | - |
regularization.factor | untyped | 1 | - | |
regularization.usedepth | logical | FALSE | TRUE, FALSE | - |
replace | logical | TRUE | TRUE, FALSE | - |
respect.unordered.factors | character | - | ignore, order, partition | - |
sample.fraction | numeric | - | \([0, 1]\) | |
save.memory | logical | FALSE | TRUE, FALSE | - |
scale.permutation.importance | logical | FALSE | TRUE, FALSE | - |
seed | integer | NULL | \((-\infty, \infty)\) | |
split.select.weights | untyped | NULL | - | |
splitrule | character | gini | gini, extratrees, hellinger | - |
verbose | logical | TRUE | TRUE, FALSE | - |
write.forest | logical | TRUE | TRUE, FALSE | - |
References
Wright, N. M, Ziegler, Andreas (2017).“ranger: A Fast Implementation of Random Forests for High Dimensional Data in C++ and R.”Journal of Statistical Software,77(1), 1–17.doi:10.18637/jss.v077.i01.
Breiman, Leo (2001).“Random Forests.”Machine Learning,45(1), 5–32.ISSN 1573-0565,doi:10.1023/A:1010933404324.
See also
Chapter in themlr3book:https://mlr3book.mlr-org.com/chapters/chapter2/data_and_basic_modeling.html#sec-learners
Packagemlr3extralearners for more learners.
as.data.table(mlr_learners)
for a table of availableLearners in the running session (depending on the loaded packages).mlr3pipelines to combine learners with pre- and postprocessing steps.
Extension packages for additional task types:
mlr3proba for probabilistic supervised regression and survival analysis.
mlr3cluster for unsupervised clustering.
mlr3tuning for tuning of hyperparameters,mlr3tuningspacesfor established default tuning spaces.
Other Learner:mlr_learners_classif.cv_glmnet
,mlr_learners_classif.glmnet
,mlr_learners_classif.kknn
,mlr_learners_classif.lda
,mlr_learners_classif.log_reg
,mlr_learners_classif.multinom
,mlr_learners_classif.naive_bayes
,mlr_learners_classif.nnet
,mlr_learners_classif.qda
,mlr_learners_classif.svm
,mlr_learners_classif.xgboost
,mlr_learners_regr.cv_glmnet
,mlr_learners_regr.glmnet
,mlr_learners_regr.kknn
,mlr_learners_regr.km
,mlr_learners_regr.lm
,mlr_learners_regr.nnet
,mlr_learners_regr.ranger
,mlr_learners_regr.svm
,mlr_learners_regr.xgboost
Super classes
mlr3::Learner
->mlr3::LearnerClassif
->LearnerClassifRanger
Methods
Methodimportance()
The importance scores are extracted from the model slotvariable.importance
.Parameterimportance.mode
must be set to"impurity"
,"impurity_corrected"
, or"permutation"
Returns
Namednumeric()
.
Examples
if(requireNamespace("ranger", quietly=TRUE)){# Define the Learner and set parameter valueslearner=lrn("classif.ranger")print(learner)# Define a Tasktask=tsk("sonar")# Create train and test setids=partition(task)# Train the learner on the training idslearner$train(task, row_ids=ids$train)# print the modelprint(learner$model)# importance methodif("importance"%in%learner$properties)print(learner$importance)# Make predictions for the test rowspredictions=learner$predict(task, row_ids=ids$test)# Score the predictionspredictions$score()}#> <LearnerClassifRanger:classif.ranger>: Random Forest#> * Model: -#> * Parameters: num.threads=1#> * Packages: mlr3, mlr3learners, ranger#> * Predict Types: [response], prob#> * Feature Types: logical, integer, numeric, character, factor, ordered#> * Properties: hotstart_backward, importance, missings, multiclass,#> oob_error, selected_features, twoclass, weights#> Ranger result#>#> Call:#> ranger::ranger(dependent.variable.name = task$target_names, data = task$data(), probability = self$predict_type == "prob", num.threads = 1L)#>#> Type: Classification#> Number of trees: 500#> Sample size: 139#> Number of independent variables: 60#> Mtry: 7#> Target node size: 1#> Variable importance mode: none#> Splitrule: gini#> OOB prediction error: 19.42 %#> function ()#> .__LearnerClassifRanger__importance(self = self, private = private,#> super = super)#> <environment: 0x559c03c87ad8>#> classif.ce#> 0.173913