Ajustarea hiperparametrilor

Machine Learning cu modele bazate pe arbori în R

Sandro Raabe

Data Scientist

Hiperparametri

  • Influențează forma și complexitatea arborilor
  • Parametri ai modelului setați înainte de antrenare, care controlează complexitatea

Hiperparametri în arborii de decizie parsnip:

  • min_n: Numărul minim de exemple pentru a împărți un nod
  • tree_depth: adâncimea maximă admisă a arborelui
  • cost_complexity: penalizare pentru complexitatea arborelui
Machine Learning cu modele bazate pe arbori în R

De ce ajustăm?

Valori implicite setate de parsnip:

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Funcționează bine în multe cazuri, dar pot să nu fie optime pentru toate seturile de date

 

Scopul ajustării hiperparametrilor este găsirea setului optim de valori.

Machine Learning cu modele bazate pe arbori în R

Ajustare cu tidymodels folosind pachetul tune

o grilă de ajustare goală

Machine Learning cu modele bazate pe arbori în R

Ajustare cu tidymodels

specificație substituent

Machine Learning cu modele bazate pe arbori în R

Ajustare cu tidymodels

o grilă de ajustare cu un model antrenat per punct

Machine Learning cu modele bazate pe arbori în R

Ajustare cu tidymodels

cel mai bun punct din grilă este selectat

Machine Learning cu modele bazate pe arbori în R

Pasul 1: Creați substituenți: tune()

spec_untuned <- decision_tree(

min_n = tune(), tree_depth = tune()
) %>% set_engine("rpart") %>% set_mode("classification")
Decision Tree Model Specification 
(classification)


Main Arguments: tree_depth = tune() min_n = tune()
  • tune() marchează parametrii pentru ajustare
  • Restul specificației rămâne neschimbat
Machine Learning cu modele bazate pe arbori în R

Pasul 2: Creați o grilă de ajustare: grid_regular()

tree_grid <- grid_regular(

parameters(spec_untuned),
levels = 3 )
# A tibble: 9 x 2
  min_n tree_depth
1     2          1
2    21          1
3    40          1
4     2          8
5    21          8
6    40          8
7     2         15
8    21         15
9    40         15
  • Funcție ajutătoare parameters()
  • levels: numărul de puncte din grilă pentru fiecare hiperparametru
Machine Learning cu modele bazate pe arbori în R

Pasul 3: Ajustați grila: tune_grid()

  • Construiește un model pentru fiecare punct din grilă
  • Evaluează fiecare model out-of-sample (CV)

 

Utilizare și argumente:

  • Specificație neajustată a arborelui
  • Formula modelului
  • Folduri CV
  • Grila de ajustare
  • Listă de metrici în metric_set()
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
Machine Learning cu modele bazate pe arbori în R

Vizualizați rezultatele ajustării

autoplot(tune_results)

rezultatele ajustării

Machine Learning cu modele bazate pe arbori în R

Pasul 4: Utilizați cei mai buni parametri: finalize_model()

# Select the best performing parameters
final_params <- select_best(tune_results)

final_params
# A tibble: 1 x 3
    min_n    tree_depth    .config
    <int>         <int>      <chr>
1      2              8     Model4
# Plug them into the specification
best_spec <- finalize_model(spec_untuned, 
                            final_params)

best_spec
Decision Tree Model Specification 
                 (classification)

Main Arguments:
  tree_depth = 8
  min_n = 2

Computational engine: rpart
Machine Learning cu modele bazate pe arbori în R

Să ajustăm!

Machine Learning cu modele bazate pe arbori în R

Preparing Video For Download...