Dostrajanie hiperparametrów

Uczenie maszynowe z modelami drzewiastymi w R

Sandro Raabe

Data Scientist

Hiperparametry

  • Wpływają na kształt i złożoność drzew
  • Parametry modelu ustawiane przed treningiem, kontrolujące jego złożoność

Hiperparametry drzew decyzyjnych w parsnip:

  • min_n: minimalna liczba próbek wymagana do podziału węzła
  • tree_depth: maksymalna dozwolona głębokość drzewa
  • cost_complexity: kara za złożoność drzewa
Uczenie maszynowe z modelami drzewiastymi w R

Dlaczego warto dostrajać?

Wartości domyślne ustawiane przez parsnip:

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Działają dobrze w wielu przypadkach, lecz mogą nie być optymalne dla wszystkich zbiorów danych

 

Celem dostrajania hiperparametrów jest znalezienie optymalnego zestawu ich wartości.

Uczenie maszynowe z modelami drzewiastymi w R

Dostrajanie z tidymodels przy użyciu pakietu tune

pusta siatka dostrajania

Uczenie maszynowe z modelami drzewiastymi w R

Dostrajanie z tidymodels

specyfikacja zastępcza

Uczenie maszynowe z modelami drzewiastymi w R

Dostrajanie z tidymodels

siatka dostrajania z jednym wytrenowanym modelem na punkt siatki

Uczenie maszynowe z modelami drzewiastymi w R

Dostrajanie z tidymodels

wybierany jest najlepszy punkt siatki

Uczenie maszynowe z modelami drzewiastymi w R

Krok 1: Utwórz symbole zastępcze: 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() oznacza parametry do dostrojenia
  • Reszta specyfikacji bez zmian
Uczenie maszynowe z modelami drzewiastymi w R

Krok 2: Utwórz siatkę dostrajania: 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
  • Funkcja pomocnicza parameters()
  • levels: liczba punktów siatki dla każdego hiperparametru
Uczenie maszynowe z modelami drzewiastymi w R

Krok 3: Dostrój siatkę: tune_grid()

  • Buduje model dla każdego punktu siatki
  • Ocenia każdy model poza próbą (CV)

 

Użycie i argumenty:

  • Niedostrojona specyfikacja drzewa
  • Formuła modelu
  • Podziały CV
  • Siatka dostrajania
  • Lista metryk opakowana w metric_set()
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
Uczenie maszynowe z modelami drzewiastymi w R

Wizualizacja wyników dostrajania

autoplot(tune_results)

wyniki dostrajania

Uczenie maszynowe z modelami drzewiastymi w R

Krok 4: Użyj najlepszych parametrów: 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
Uczenie maszynowe z modelami drzewiastymi w R

Czas na dostrajanie!

Uczenie maszynowe z modelami drzewiastymi w R

Preparing Video For Download...