Skip to contents

Growth is delegated to morie_geron_cart_algorithm; this adds the per-row class probability vector read off the leaf frequencies, so a pure leaf predicts with probability 1.

Usage

morie_geron_classification_tree(
  X,
  y,
  criterion = "gini",
  max_depth = NULL,
  min_samples_leaf = 1
)

Arguments

X, y

Design and discrete labels.

criterion

"gini" or "entropy".

max_depth

Optional cap.

min_samples_leaf

Minimum leaf size.

Value

List with tree, predictions, probabilities, classes, n_leaves, depth, n_splits, train_accuracy, feature_importances, estimate, n.

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_classification_tree(V, V)
#> $tree
#> $tree$leaf
#> [1] FALSE
#> 
#> $tree$feature
#> [1] 0
#> 
#> $tree$threshold
#> [1] 1.5
#> 
#> $tree$impurity
#> [1] 0.875
#> 
#> $tree$impurity_decrease
#> [1] 0.125
#> 
#> $tree$n
#> [1] 8
#> 
#> $tree$depth
#> [1] 0
#> 
#> $tree$left
#> $tree$left$leaf
#> [1] TRUE
#> 
#> $tree$left$value
#> [1] 1
#> 
#> $tree$left$proba
#> $tree$left$proba$`1`
#> [1] 1
#> 
#> 
#> $tree$left$n
#> [1] 1
#> 
#> $tree$left$impurity
#> [1] 0
#> 
#> $tree$left$depth
#> [1] 1
#> 
#> 
#> $tree$right
#> $tree$right$leaf
#> [1] FALSE
#> 
#> $tree$right$feature
#> [1] 0
#> 
#> $tree$right$threshold
#> [1] 2.5
#> 
#> $tree$right$impurity
#> [1] 0.8571429
#> 
#> $tree$right$impurity_decrease
#> [1] 0.1428571
#> 
#> $tree$right$n
#> [1] 7
#> 
#> $tree$right$depth
#> [1] 1
#> 
#> $tree$right$left
#> $tree$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$left$value
#> [1] 2
#> 
#> $tree$right$left$proba
#> $tree$right$left$proba$`2`
#> [1] 1
#> 
#> 
#> $tree$right$left$n
#> [1] 1
#> 
#> $tree$right$left$impurity
#> [1] 0
#> 
#> $tree$right$left$depth
#> [1] 2
#> 
#> 
#> $tree$right$right
#> $tree$right$right$leaf
#> [1] FALSE
#> 
#> $tree$right$right$feature
#> [1] 0
#> 
#> $tree$right$right$threshold
#> [1] 3.5
#> 
#> $tree$right$right$impurity
#> [1] 0.8333333
#> 
#> $tree$right$right$impurity_decrease
#> [1] 0.1666667
#> 
#> $tree$right$right$n
#> [1] 6
#> 
#> $tree$right$right$depth
#> [1] 2
#> 
#> $tree$right$right$left
#> $tree$right$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$right$left$value
#> [1] 3
#> 
#> $tree$right$right$left$proba
#> $tree$right$right$left$proba$`3`
#> [1] 1
#> 
#> 
#> $tree$right$right$left$n
#> [1] 1
#> 
#> $tree$right$right$left$impurity
#> [1] 0
#> 
#> $tree$right$right$left$depth
#> [1] 3
#> 
#> 
#> $tree$right$right$right
#> $tree$right$right$right$leaf
#> [1] FALSE
#> 
#> $tree$right$right$right$feature
#> [1] 0
#> 
#> $tree$right$right$right$threshold
#> [1] 4.5
#> 
#> $tree$right$right$right$impurity
#> [1] 0.8
#> 
#> $tree$right$right$right$impurity_decrease
#> [1] 0.2
#> 
#> $tree$right$right$right$n
#> [1] 5
#> 
#> $tree$right$right$right$depth
#> [1] 3
#> 
#> $tree$right$right$right$left
#> $tree$right$right$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$right$right$left$value
#> [1] 4
#> 
#> $tree$right$right$right$left$proba
#> $tree$right$right$right$left$proba$`4`
#> [1] 1
#> 
#> 
#> $tree$right$right$right$left$n
#> [1] 1
#> 
#> $tree$right$right$right$left$impurity
#> [1] 0
#> 
#> $tree$right$right$right$left$depth
#> [1] 4
#> 
#> 
#> $tree$right$right$right$right
#> $tree$right$right$right$right$leaf
#> [1] FALSE
#> 
#> $tree$right$right$right$right$feature
#> [1] 0
#> 
#> $tree$right$right$right$right$threshold
#> [1] 5.5
#> 
#> $tree$right$right$right$right$impurity
#> [1] 0.75
#> 
#> $tree$right$right$right$right$impurity_decrease
#> [1] 0.25
#> 
#> $tree$right$right$right$right$n
#> [1] 4
#> 
#> $tree$right$right$right$right$depth
#> [1] 4
#> 
#> $tree$right$right$right$right$left
#> $tree$right$right$right$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$right$right$right$left$value
#> [1] 5
#> 
#> $tree$right$right$right$right$left$proba
#> $tree$right$right$right$right$left$proba$`5`
#> [1] 1
#> 
#> 
#> $tree$right$right$right$right$left$n
#> [1] 1
#> 
#> $tree$right$right$right$right$left$impurity
#> [1] 0
#> 
#> $tree$right$right$right$right$left$depth
#> [1] 5
#> 
#> 
#> $tree$right$right$right$right$right
#> $tree$right$right$right$right$right$leaf
#> [1] FALSE
#> 
#> $tree$right$right$right$right$right$feature
#> [1] 0
#> 
#> $tree$right$right$right$right$right$threshold
#> [1] 6.5
#> 
#> $tree$right$right$right$right$right$impurity
#> [1] 0.6666667
#> 
#> $tree$right$right$right$right$right$impurity_decrease
#> [1] 0.3333333
#> 
#> $tree$right$right$right$right$right$n
#> [1] 3
#> 
#> $tree$right$right$right$right$right$depth
#> [1] 5
#> 
#> $tree$right$right$right$right$right$left
#> $tree$right$right$right$right$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$right$right$right$right$left$value
#> [1] 6
#> 
#> $tree$right$right$right$right$right$left$proba
#> $tree$right$right$right$right$right$left$proba$`6`
#> [1] 1
#> 
#> 
#> $tree$right$right$right$right$right$left$n
#> [1] 1
#> 
#> $tree$right$right$right$right$right$left$impurity
#> [1] 0
#> 
#> $tree$right$right$right$right$right$left$depth
#> [1] 6
#> 
#> 
#> $tree$right$right$right$right$right$right
#> $tree$right$right$right$right$right$right$leaf
#> [1] FALSE
#> 
#> $tree$right$right$right$right$right$right$feature
#> [1] 0
#> 
#> $tree$right$right$right$right$right$right$threshold
#> [1] 7.5
#> 
#> $tree$right$right$right$right$right$right$impurity
#> [1] 0.5
#> 
#> $tree$right$right$right$right$right$right$impurity_decrease
#> [1] 0.5
#> 
#> $tree$right$right$right$right$right$right$n
#> [1] 2
#> 
#> $tree$right$right$right$right$right$right$depth
#> [1] 6
#> 
#> $tree$right$right$right$right$right$right$left
#> $tree$right$right$right$right$right$right$left$leaf
#> [1] TRUE
#> 
#> $tree$right$right$right$right$right$right$left$value
#> [1] 7
#> 
#> $tree$right$right$right$right$right$right$left$proba
#> $tree$right$right$right$right$right$right$left$proba$`7`
#> [1] 1
#> 
#> 
#> $tree$right$right$right$right$right$right$left$n
#> [1] 1
#> 
#> $tree$right$right$right$right$right$right$left$impurity
#> [1] 0
#> 
#> $tree$right$right$right$right$right$right$left$depth
#> [1] 7
#> 
#> 
#> $tree$right$right$right$right$right$right$right
#> $tree$right$right$right$right$right$right$right$leaf
#> [1] TRUE
#> 
#> $tree$right$right$right$right$right$right$right$value
#> [1] 8
#> 
#> $tree$right$right$right$right$right$right$right$proba
#> $tree$right$right$right$right$right$right$right$proba$`8`
#> [1] 1
#> 
#> 
#> $tree$right$right$right$right$right$right$right$n
#> [1] 1
#> 
#> $tree$right$right$right$right$right$right$right$impurity
#> [1] 0
#> 
#> $tree$right$right$right$right$right$right$right$depth
#> [1] 7
#> 
#> 
#> 
#> 
#> 
#> 
#> 
#> 
#> 
#> $predictions
#> [1] 1 2 3 4 5 6 7 8
#> 
#> $probabilities
#>      1 2 3 4 5 6 7 8
#> [1,] 1 0 0 0 0 0 0 0
#> [2,] 0 1 0 0 0 0 0 0
#> [3,] 0 0 1 0 0 0 0 0
#> [4,] 0 0 0 1 0 0 0 0
#> [5,] 0 0 0 0 1 0 0 0
#> [6,] 0 0 0 0 0 1 0 0
#> [7,] 0 0 0 0 0 0 1 0
#> [8,] 0 0 0 0 0 0 0 1
#> 
#> $classes
#> [1] 1 2 3 4 5 6 7 8
#> 
#> $n_leaves
#> [1] 8
#> 
#> $depth
#> [1] 7
#> 
#> $n_splits
#> [1] 7
#> 
#> $train_accuracy
#> [1] 1
#> 
#> $feature_importances
#> [1] 1
#> 
#> $criterion
#> [1] "gini"
#> 
#> $estimate
#> [1] 1
#> 
#> $n
#> [1] 8
#> 
#> $method
#> [1] "CART classification tree (growth delegated to hmcart) with leaf-frequency probabilities"
#>