Skip to contents

Evolutionary learning of globally optimal classification trees. Calls evtree::evtree() fromevtree.

Initial parameter values

pmutatemajor, pmutateminor, pcrossover, psplit, and pprune, are scaled internally to sum to 100.

See also

Author

annanzrv

Super classes

mlr3::Learner -> mlr3::LearnerClassif -> LearnerClassifEvtree

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerClassifEvtree$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner
learner = lrn("classif.evtree")
print(learner)
#> 
#> ── <LearnerClassifEvtree> (classif.evtree): Evolutionary learning of globally op
#> • Model: -
#> • Parameters: list()
#> • Packages: mlr3 and evtree
#> • Predict Types: [response] and prob
#> • Feature Types: integer, numeric, and factor
#> • Encapsulation: none (fallback: -)
#> • Properties: multiclass, 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)
#> 
#> Model formula:
#> Class ~ V1 + V10 + V11 + V12 + V13 + V14 + V15 + V16 + V17 + 
#>     V18 + V19 + V2 + V20 + V21 + V22 + V23 + V24 + V25 + V26 + 
#>     V27 + V28 + V29 + V3 + V30 + V31 + V32 + V33 + V34 + V35 + 
#>     V36 + V37 + V38 + V39 + V4 + V40 + V41 + V42 + V43 + V44 + 
#>     V45 + V46 + V47 + V48 + V49 + V5 + V50 + V51 + V52 + V53 + 
#>     V54 + V55 + V56 + V57 + V58 + V59 + V6 + V60 + V7 + V8 + 
#>     V9
#> 
#> Fitted party:
#> [1] root
#> |   [2] V37 < 0.5501
#> |   |   [3] V4 < 0.0608
#> |   |   |   [4] V9 < 0.1038: R (n = 27, err = 0.0%)
#> |   |   |   [5] V9 >= 0.1038
#> |   |   |   |   [6] V49 < 0.0289: R (n = 16, err = 12.5%)
#> |   |   |   |   [7] V49 >= 0.0289: M (n = 33, err = 9.1%)
#> |   |   [8] V4 >= 0.0608: M (n = 30, err = 13.3%)
#> |   [9] V37 >= 0.5501
#> |   |   [10] V46 < 0.2047: R (n = 21, err = 9.5%)
#> |   |   [11] V46 >= 0.2047: M (n = 12, err = 16.7%)
#> 
#> Number of inner nodes:    5
#> Number of terminal nodes: 6


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

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