Classification Logistic Model Trees Learner
mlr_learners_classif.LMT.Rd
Classification tree with logistic regression models at the leaves.
Calls RWeka::LMT()
from RWeka.
Meta Information
Task type: “classif”
Predict Types: “response”, “prob”
Feature Types: “integer”, “numeric”, “factor”, “ordered”
Required Packages: mlr3, mlr3extralearners, RWeka
Parameters
Id | Type | Default | Levels | Range |
subset | untyped | - | - | |
na.action | untyped | - | - | |
B | logical | FALSE | TRUE, FALSE | - |
R | logical | FALSE | TRUE, FALSE | - |
C | logical | FALSE | TRUE, FALSE | - |
P | logical | FALSE | TRUE, FALSE | - |
I | integer | - | \([1, \infty)\) | |
M | integer | 15 | \([1, \infty)\) | |
W | numeric | 0 | \([0, 1]\) | |
A | logical | FALSE | TRUE, FALSE | - |
doNotMakeSplitPointActualValue | logical | FALSE | TRUE, FALSE | - |
output_debug_info | logical | FALSE | TRUE, FALSE | - |
do_not_check_capabilities | logical | FALSE | TRUE, FALSE | - |
num_decimal_places | integer | 2 | \([1, \infty)\) | |
batch_size | integer | 100 | \([1, \infty)\) | |
options | untyped | NULL | - |
Custom mlr3 parameters
output_debug_info
:original id: output-debug-info
do_not_check_capabilities
:original id: do-not-check-capabilities
num_decimal_places
:original id: num-decimal-places
batch_size
:original id: batch-size
Reason for change: This learner contains changed ids of the following control arguments since their ids contain irregular pattern
References
Landwehr, Niels, Hall, Mark, Frank, Eibe (2005). “Logistic model trees.” Machine learning, 59(1), 161–205.
See also
as.data.table(mlr_learners)
for a table of available Learners in the running session (depending on the loaded packages).Chapter in the mlr3book: https://mlr3book.mlr-org.com/basics.html#learners
mlr3learners for a selection of recommended learners.
mlr3cluster for unsupervised clustering learners.
mlr3pipelines to combine learners with pre- and postprocessing steps.
mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.
Super classes
mlr3::Learner
-> mlr3::LearnerClassif
-> LearnerClassifLMT
Examples
# Define the Learner
learner = mlr3::lrn("classif.LMT")
print(learner)
#> <LearnerClassifLMT:classif.LMT>: Tree-based Model
#> * Model: -
#> * Parameters: list()
#> * Packages: mlr3, mlr3extralearners, RWeka
#> * Predict Types: [response], prob
#> * Feature Types: integer, numeric, factor, ordered
#> * Properties: multiclass, twoclass
# Define a Task
task = mlr3::tsk("sonar")
# Create train and test set
ids = mlr3::partition(task)
# Train the learner on the training ids
learner$train(task, row_ids = ids$train)
print(learner$model)
#> Logistic model tree
#> ------------------
#> : LM_1:53/53 (139)
#>
#> Number of Leaves : 1
#>
#> Size of the Tree : 1
#> LM_1:
#> Class M :
#> -2.94 +
#> [V1] * 5.75 +
#> [V10] * -1.34 +
#> [V11] * 3.44 +
#> [V12] * 1.85 +
#> [V15] * -0.37 +
#> [V16] * -0.76 +
#> [V2] * 3.56 +
#> [V21] * 1.15 +
#> [V24] * 1.18 +
#> [V28] * -0.39 +
#> [V3] * -7.59 +
#> [V30] * 0.84 +
#> [V31] * -1.17 +
#> [V36] * -1.52 +
#> [V37] * -0.43 +
#> [V38] * 0.52 +
#> [V39] * 0.49 +
#> [V4] * 7.19 +
#> [V40] * -1.61 +
#> [V44] * 2.91 +
#> [V45] * 2.24 +
#> [V48] * 4.53 +
#> [V49] * 10.64 +
#> [V50] * -21.57 +
#> [V51] * 24.93 +
#> [V52] * 21.72 +
#> [V54] * 30.72 +
#> [V55] * -18.47 +
#> [V57] * -24.76 +
#> [V59] * 31.81 +
#> [V6] * -1.4 +
#> [V7] * -2.31 +
#> [V8] * -2.4 +
#> [V9] * 1.62
#>
#> Class R :
#> 2.94 +
#> [V1] * -5.75 +
#> [V10] * 1.34 +
#> [V11] * -3.44 +
#> [V12] * -1.85 +
#> [V15] * 0.37 +
#> [V16] * 0.76 +
#> [V2] * -3.56 +
#> [V21] * -1.15 +
#> [V24] * -1.18 +
#> [V28] * 0.39 +
#> [V3] * 7.59 +
#> [V30] * -0.84 +
#> [V31] * 1.17 +
#> [V36] * 1.52 +
#> [V37] * 0.43 +
#> [V38] * -0.52 +
#> [V39] * -0.49 +
#> [V4] * -7.19 +
#> [V40] * 1.61 +
#> [V44] * -2.91 +
#> [V45] * -2.24 +
#> [V48] * -4.53 +
#> [V49] * -10.64 +
#> [V50] * 21.57 +
#> [V51] * -24.93 +
#> [V52] * -21.72 +
#> [V54] * -30.72 +
#> [V55] * 18.47 +
#> [V57] * 24.76 +
#> [V59] * -31.81 +
#> [V6] * 1.4 +
#> [V7] * 2.31 +
#> [V8] * 2.4 +
#> [V9] * -1.62
#>
# Make predictions for the test rows
predictions = learner$predict(task, row_ids = ids$test)
# Score the predictions
predictions$score()
#> classif.ce
#> 0.173913