Menyetel hiperparameter

Machine Learning dengan Model Berbasis Pohon di R

Sandro Raabe

Data Scientist

Hiperparameter

  • Mempengaruhi bentuk dan kompleksitas pohon
  • Parameter model yang mengontrol kompleksitas dan ditetapkan sebelum pelatihan

Hiperparameter di pohon keputusan parsnip:

  • min_n: jumlah minimum sampel untuk membagi node
  • tree_depth: kedalaman maksimum pohon
  • cost_complexity: penalti untuk kompleksitas pohon
Machine Learning dengan Model Berbasis Pohon di R

Mengapa menyetel?

Nilai default yang ditetapkan oleh parsnip:

decision_tree(min_n = 20, tree_depth = 30, cost_complexity = 0.01)
  • Cukup baik di banyak kasus, tetapi mungkin bukan yang terbaik untuk semua dataset

 

Tujuan penyetelan hiperparameter adalah mencari set nilai hiperparameter yang optimal.

Machine Learning dengan Model Berbasis Pohon di R

Penyetelan dengan tidymodels menggunakan paket tune

grid penyetelan kosong

Machine Learning dengan Model Berbasis Pohon di R

Penyetelan dengan tidymodels

spesifikasi dummy

Machine Learning dengan Model Berbasis Pohon di R

Penyetelan dengan tidymodels

grid penyetelan dengan satu model terlatih per titik grid

Machine Learning dengan Model Berbasis Pohon di R

Penyetelan dengan tidymodels

titik grid dengan kinerja terbaik dipilih

Machine Learning dengan Model Berbasis Pohon di R

Langkah 1: Buat placeholder: 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() menandai parameter untuk disetel
  • Spesifikasi lainnya seperti biasa
Machine Learning dengan Model Berbasis Pohon di R

Langkah 2: Buat grid penyetelan: 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
  • Fungsi bantu parameters()
  • levels: jumlah titik grid per hiperparameter
Machine Learning dengan Model Berbasis Pohon di R

Langkah 3: Setel grid: tune_grid()

  • Membangun model untuk setiap titik grid
  • Mengevaluasi tiap model di luar sampel (CV)

 

Penggunaan dan argumen:

  • Spesifikasi pohon belum disetel
  • Rumus model
  • Lipatan CV
  • Grid penyetelan
  • Daftar metrik dalam metric_set()
tune_results <- tune_grid(

spec_untuned,
outcome ~ .,
resamples = my_folds,
grid = tree_grid,
metrics = metric_set(accuracy))
Machine Learning dengan Model Berbasis Pohon di R

Visualisasikan hasil penyetelan

autoplot(tune_results)

hasil penyetelan

Machine Learning dengan Model Berbasis Pohon di R

Langkah 4: Gunakan parameter terbaik: finalize_model()

# Pilih parameter dengan kinerja terbaik
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
# Masukkan ke spesifikasi
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 dengan Model Berbasis Pohon di R

Mari menyetel!

Machine Learning dengan Model Berbasis Pohon di R

Preparing Video For Download...