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] V40 < 0.6121
#> |   |   [3] V37 < 0.4786
#> |   |   |   [4] V11 < 0.1995
#> |   |   |   |   [5] V54 < 0.0172: R (n = 31, err = 3.2%)
#> |   |   |   |   [6] V54 >= 0.0172: M (n = 8, err = 12.5%)
#> |   |   |   [7] V11 >= 0.1995: M (n = 52, err = 11.5%)
#> |   |   [8] V37 >= 0.4786
#> |   |   |   [9] V45 < 0.2662: R (n = 24, err = 4.2%)
#> |   |   |   [10] V45 >= 0.2662: M (n = 15, err = 6.7%)
#> |   [11] V40 >= 0.6121: R (n = 9, err = 11.1%)
#> 
#> 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.3478261