Skip to contents

Tree regularization: constrained vs unconstrained CART (hmdtr)

Usage

morie_geron_tree_regularization(
  X,
  y,
  max_depth = NULL,
  min_samples_leaf = 1,
  min_samples_split = 2,
  criterion = "gini"
)

Arguments

X, y

Data.

max_depth, min_samples_leaf, min_samples_split, criterion

CART controls.

Value

List with tree, n_leaves, baseline_leaves, leaves_saved, train_score, train_score_cost.

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
morie_geron_tree_regularization(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
#> 
#> $n_leaves
#> [1] 8
#> 
#> $depth
#> [1] 7
#> 
#> $baseline_leaves
#> [1] 8
#> 
#> $baseline_depth
#> [1] 7
#> 
#> $leaves_saved
#> [1] 0
#> 
#> $train_score
#> [1] 1
#> 
#> $baseline_train_score
#> [1] 1
#> 
#> $train_score_cost
#> [1] 0
#> 
#> $constraints
#> $constraints$max_depth
#> NULL
#> 
#> $constraints$min_samples_split
#> [1] 2
#> 
#> $constraints$min_samples_leaf
#> [1] 1
#> 
#> 
#> $criterion
#> [1] "gini"
#> 
#> $estimate
#> [1] 1
#> 
#> $n
#> [1] 8
#> 
#> $method
#> [1] "constrained vs unconstrained CART, both grown via hmcart"
#>