Alur kerja machine learning

Pemodelan dengan tidymodels di R

David Svancer

Data Scientist

Klasifikasi dengan pohon keputusan

Pohon keputusan membagi ruang prediktor menjadi wilayah berbentuk persegi panjang

Pemecahan biner rekursif

  • Algoritme yang membagi ruang prediktor menjadi wilayah persegi panjang yang tidak tumpang tindih

Plot sebar data lead scoring

Pemodelan dengan tidymodels di R

Klasifikasi dengan pohon keputusan

Pohon keputusan membagi ruang prediktor menjadi wilayah berbentuk persegi panjang

Pemecahan biner rekursif

  • Algoritme yang membagi ruang prediktor menjadi wilayah persegi panjang yang tidak tumpang tindih
  • Pemisahan keputusan ditambahkan secara iteratif
    • Titik potong horizontal atau vertikal

Sebaran dengan pemisahan pertama pada pohon keputusan

Pemodelan dengan tidymodels di R

Klasifikasi dengan pohon keputusan

Pohon keputusan membagi ruang prediktor menjadi wilayah berbentuk persegi panjang

Pemecahan biner rekursif

  • Algoritme yang membagi ruang prediktor menjadi wilayah persegi panjang yang tidak tumpang tindih
  • Pemisahan keputusan ditambahkan secara iteratif
    • Titik potong horizontal atau vertikal

Sebaran dengan pemisahan kedua pada pohon keputusan

Pemodelan dengan tidymodels di R

Klasifikasi dengan pohon keputusan

Pohon keputusan membagi ruang prediktor menjadi wilayah berbentuk persegi panjang

Pemecahan biner rekursif

  • Algoritme yang membagi ruang prediktor menjadi wilayah persegi panjang yang tidak tumpang tindih
  • Pemisahan keputusan ditambahkan secara iteratif
    • Titik potong horizontal atau vertikal

Sebaran dengan pemisahan ketiga pada pohon keputusan

Pemodelan dengan tidymodels di R

Klasifikasi dengan pohon keputusan

Pohon keputusan membagi ruang prediktor menjadi wilayah berbentuk persegi panjang

Pemecahan biner rekursif

  • Algoritme yang membagi ruang prediktor menjadi wilayah persegi panjang yang tidak tumpang tindih
  • Pemisahan keputusan ditambahkan secara iteratif
    • Titik potong horizontal atau vertikal

 

Menghasilkan wilayah persegi panjang yang berbeda

  • Untuk klasifikasi, kelas mayoritas diprediksi

Sebaran dengan empat wilayah prediksi persegi panjang

Pemodelan dengan tidymodels di R

Diagram pohon

  • Node interior
    • Titik pemisahan pohon keputusan (kotak gelap)
  • Node terminal
    • Wilayah yang tidak dipecah lagi
    • Kotak hijau dan ungu

Diagram pohon keputusan

Node interior berupa garis putus-putus dan node terminal adalah wilayah persegi panjang yang disorot

Sebaran dengan empat wilayah prediksi persegi panjang

Pemodelan dengan tidymodels di R

Spesifikasi model

Spesifikasi model di parsnip

  • decision_tree()
    • Antarmuka umum untuk model pohon keputusan di parsnip
    • Engine umum adalah 'rpart'
    • Mode dapat 'classification' atau 'regression'
      • Untuk data lead scoring, gunakan 'classification'
dt_model <- decision_tree() %>% 

set_engine('rpart') %>%
set_mode('classification')
Pemodelan dengan tidymodels di R

Resep rekayasa fitur

Transformasi data untuk lead scoring

  • Dikodekan dalam objek recipe
    • Menghapus multikolinearitas
    • Menormalkan prediktor numerik
    • Membuat variabel dummy untuk prediktor nominal

Dua objek R yang perlu dikelola

  • Model parsnip dan spesifikasi recipe
  • Menggabungkannya menjadi satu objek akan lebih mudah
leads_recipe <- recipe(purchased ~ .,
                       data = leads_training) %>%

step_corr(all_numeric(), threshold = 0.9) %>% step_normalize(all_numeric()) %>% step_dummy(all_nominal(), -all_outcomes())
leads_recipe
Data Recipe
Inputs:
      role #variables
   outcome          1
 predictor          6

Operations:
Correlation filter on all_numeric()
Centering and scaling for all_numeric()
Dummy variables from all_nominal(), -all_outcomes()
Pemodelan dengan tidymodels di R

Menggabungkan model dan resep

Paket workflows dibuat untuk merampingkan proses pemodelan

  • Menggabungkan model parsnip dan objek recipe menjadi satu objek workflow

 

Diinisialisasi dengan fungsi workflow()

  • Tambahkan objek model dengan add_model()
  • Tambahkan objek recipe dengan add_recipe()
    • Harus berupa spesifikasi, bukan recipe yang sudah dilatih
leads_wkfl <- workflow() %>%

add_model(dt_model) %>%
add_recipe(leads_recipe)
leads_wkfl
== Workflow =====================
Preprocessor: Recipe
Model: decision_tree()
-- Preprocessor -----------------
3 Recipe Steps
* step_corr()
* step_normalize()
* step_dummy()
-- Model --------------------------
Decision Tree Model Specification (classification)
Computational engine: rpart
Pemodelan dengan tidymodels di R

Pelatihan model dengan workflow

Melatih objek workflow

  • Berikan workflow ke last_fit() dan sediakan objek pemisahan data
  • Lihat hasil evaluasi model dengan collect_metrics()

Di balik layar

  • Dataset latih dan uji dibuat
  • recipe dilatih dan diterapkan
  • Pohon keputusan dilatih dengan data latih
  • Prediksi dan metrik pada data uji
leads_wkfl_fit <- leads_wkfl %>% 
  last_fit(split = leads_split)

leads_wkfl_fit %>% collect_metrics()
# A tibble: 2 x 3
  .metric  .estimator .estimate
  <chr>    <chr>          <dbl>
1 accuracy binary         0.771
2 roc_auc  binary         0.775
Pemodelan dengan tidymodels di R

Mengumpulkan prediksi

workflow yang dilatih dengan last_fit() dapat diberikan ke collect_predictions()

  • Menghasilkan hasil rinci pada data uji
  • Seperti sebelumnya, dapat digunakan dengan fungsi yardstick untuk mengeksplor metrik kinerja kustom
leads_wkfl_preds <- leads_wkfl_fit %>% 
  collect_predictions()

leads_wkfl_preds
# A tibble: 332 x 6
   id          .pred_yes .pred_no  .row .pred_class purchased
  <chr>           <dbl>   <dbl>    <int>   <fct>       <fct>
train/test split  0.120    0.880     2      no          no
train/test split  0.755    0.245    17      yes         yes
train/test split  0.120    0.880    21      no          no
train/test split  0.120    0.880    22      no          no
train/test split  0.755    0.245    24      yes         yes
# ... with 327 more rows
Pemodelan dengan tidymodels di R

Mengeksplor metrik kustom

Buat himpunan metrik kustom dengan metric_set()

  • Area di bawah kurva ROC, sensitivitas, dan spesifisitas

 

Berikan dataset prediksi ke leads_metrics() untuk menghitung metrik

leads_metrics <- metric_set(roc_auc, sens, spec)

leads_wkfl_preds %>% leads_metrics(truth = purchased, estimate = .pred_class, .pred_yes)
# A tibble: 3 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 sens    binary         0.75 
2 spec    binary         0.783
3 roc_auc binary         0.775
Pemodelan dengan tidymodels di R

Dataset gagal bayar pinjaman

Data keuangan untuk pinjaman konsumen di bank

  • Variabel keluaran adalah loan_default

 

loans_df
# A tibble: 872 x 8
loan_default  loan_purpose   missed_payment_2_yr loan_amount interest_rate installment annual_income debt_to_income
 <fct>           <fct>            <fct>             <int>        <dbl>         <dbl>         <dbl>       <dbl>
 no        debt_consolidation      no              25000         5.47          855.         62823        39.4 
 yes       medical                 no              10000        10.2           364.         40000        24.1 
 no        small_business          no              13000         6.22          442.         65000        14.0 
 no        small_business          no              36000         5.97         1152.        125000         8.09
 yes       small_business          yes             12000        11.8           308.         65000        20.1 
# ... with 867 more rows
Pemodelan dengan tidymodels di R

Ayo berlatih membangun workflow!

Pemodelan dengan tidymodels di R

Preparing Video For Download...