Güçlendirilmiş ensemble’ı optimize et

R ile Ağaç Tabanlı Modellerle Machine Learning

Sandro Raabe

Data Scientist

Başlangıç noktası: ayarsız performans

collect_metrics(cv_results)
# A tibble: 1 x 3
  .metric   .mean       n   
  <chr>     <dbl>   <int>             
1 roc_auc   0.951       5  
  • %95 — ayarsız model için fena değil!
R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

tune fonksiyonu

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

ızgara oluşturma

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

çapraz doğrulama

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

tune_grid fonksiyonu

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

select_best fonksiyonu

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

ince ayar iş akışı

R ile Ağaç Tabanlı Modellerle Machine Learning

İnce ayar iş akışı

final_fit fonksiyonu

R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 1: İnce ayar özelliklerini oluşturma

# Yer tutucularla özellik oluşturun
boost_spec <- boost_tree(

trees = 500, learn_rate = tune(), tree_depth = tune(), sample_size = tune()) %>%
set_mode("classification") %>% set_engine("xgboost")
Güçlendirilmiş Ağaç Model Özelliği (sınıflandırma)

Ana Argümanlar:
  trees = 500
  tree_depth = tune()
  learn_rate = tune()
  sample_size = tune()

Hesaplama motoru: xgboost
  • Alışılmış özellik tanımı
  • Temel fark: ayarlanacak değerler için tune() ile yer tutucu kullanın
R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 2: İnce ayar ızgarasını oluşturma

# Düzenli bir ızgara oluşturun
tunegrid_boost <- grid_regular(parameters(boost_spec), 

levels = 2)
# A tibble: 8 x 3
  tree_depth     learn_rate sample_size
       <int>          <dbl>       <dbl>
1          1   0.0000000001         0.1
2         15   0.0000000001         0.1
3          1   0.1                  0.1
4         15   0.1                  0.1
5          1   0.0000000001         1  
6         15   0.0000000001         1  
7          1   0.1                  1  
8         15   0.1                  1
# Rastgele bir ızgara oluşturun
grid_random(parameters(boost_spec),

size = 8)
# A tibble: 8 x 3
  tree_depth    learn_rate   sample_size
       <int>         <dbl>         <dbl>
1         11   0.0000000249        0.858
2         12   0.00000000392       0.856
3         15   0.0000000131        0.220
4         15   0.0000216           0.125
5         10   0.00000000537       0.759
6         14   0.0395              0.270
7          2   0.000000828         0.904
8          9   0.0000254           0.473
R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 3: İnce ayar

tune_grid() için argümanlar:

  • Sahte özellik tanımı
  • Model formülü
  • Yeniden örneklemeler/katlamalar
  • Parametre ızgarası
  • metric_set() içindeki metrik listesi

Fonksiyon çağrısı:

# Izgara boyunca ince ayar yapın
tune_results <- tune_grid(

boost_spec,
still_customer ~ .,
resamples = vfold_cv(customers_train, v = 6),
grid = tunegrid_boost,
metrics = metric_set(roc_auc))
R ile Ağaç Tabanlı Modellerle Machine Learning

Sonucu görselleştirme

# Sonuçları görselleştirin
autoplot(tune_results)

ince ayar sonuçları

R ile Ağaç Tabanlı Modellerle Machine Learning

Adım 4: Modeli nihayete erdirme

# Nihai hiperparametreleri seçin
best_params <- select_best(tune_results)

best_params
# A tibble: 1 x 4
  tree_depth learn_rate sample_size .config
       <int>      <dbl>       <dbl> <chr> 
1          8        0.1        0.55 Model17
# Özelliği nihayete erdirin
final_spec <- finalize_model(boost_spec, 
                             best_params)
final_spec
Güçlendirilmiş Ağaç Model Özelliği

Ana Argümanlar:
  trees = 500
  tree_depth = 8
  learn_rate = 0.1
  sample_size = 0.55

Hesaplama motoru: xgboost
R ile Ağaç Tabanlı Modellerle Machine Learning

Son adım: Nihai modeli eğitme

final_model <- final_spec %>% fit(formula = still_customer ~ .,
                                  data = customers_train)

final_model
Uygunluk süresi:  2.3s 
##### xgb.Booster
raw: 343.8 Kb 
nfeatures : 37 
evaluation_log:
    iter training_error
       1       0.046403                  
     100       0.002592
R ile Ağaç Tabanlı Modellerle Machine Learning

Sıra sizde!

R ile Ağaç Tabanlı Modellerle Machine Learning

Preparing Video For Download...