Hiperparametre ayarlama

R ile Ağaç Tabanlı Modellerle Machine Learning

Sandro Raabe

Data Scientist

Hiperparametreler

  • Ağaçların şeklini ve karmaşıklığını etkiler
  • Model eğitimi öncesi ayarlanan ve karmaşıklığı kontrol eden model parametreleridir

parsnip karar ağaçlarındaki hiperparametreler:

  • min_n: Bir düğümü bölmek için gereken en az örnek
  • tree_depth: izin verilen en büyük derinlik
  • cost_complexity: ağaç karmaşıklığı cezası
R ile Ağaç Tabanlı Modellerle Machine Learning

Neden ayarlama?

parsnip tarafından belirlenen varsayılanlar:

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Birçok durumda işe yarar, ancak tüm veri kümeleri için en iyisi olmayabilir

 

Hiperparametre ayarlamanın amacı, en iyi hiperparametre kümesini bulmaktır.

R ile Ağaç Tabanlı Modellerle Machine Learning

tune paketiyle tidymodels kullanarak ayarlama

boş bir ayar ızgarası

R ile Ağaç Tabanlı Modellerle Machine Learning

tidymodels ile ayarlama

örnek tanım

R ile Ağaç Tabanlı Modellerle Machine Learning

tidymodels ile ayarlama

her ızgara noktası için bir eğitilmiş model içeren ayar ızgarası

R ile Ağaç Tabanlı Modellerle Machine Learning

tidymodels ile ayarlama

en iyi performans gösteren ızgara noktası seçilir

R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 1: Yer tutucular oluşturun: 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() ayarlanacak parametreleri işaretler
  • Diğer tanım her zamanki gibi
R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 2: Ayar ızgarası oluşturun: 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
  • Yardımcı fonksiyon parameters()
  • levels: her hiperparametre için ızgara nokta sayısı
R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 3: Izgarayı ayarlayın: tune_grid()

  • Her ızgara noktası için model kurar
  • Her modeli örneklem dışı değerlendirir (CV)

 

Kullanım ve argümanlar:

  • Ayarlanmamış ağaç tanımı
  • Model formülü
  • CV katları
  • Ayar ızgarası
  • metric_set() içine sarılmış metrik listesi
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
R ile Ağaç Tabanlı Modellerle Machine Learning

Ayar sonuçlarını görselleştirin

autoplot(tune_results)

ayar sonuçları

R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 4: En iyi parametreleri kullanın: finalize_model()

# En iyi parametreleri seçin
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
# Tanıma ekleyin
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
R ile Ağaç Tabanlı Modellerle Machine Learning

Haydi ayarlayalım!

R ile Ağaç Tabanlı Modellerle Machine Learning

Preparing Video For Download...