Mengenkode data kategorikal dengan pembelajaran terawasi

Rekayasa Fitur di R

Jorge Zazueta

Research Professor and Head of the Modeling Group at the School of Economics, UASLP

Mengenal pengkodean terawasi

Berbeda dengan itu, pengkodean terawasi memakai nilai keluaran untuk menurunkan fitur numerik dari prediktor nominal.

Rekayasa Fitur di R

Mengenal pengkodean terawasi

Pengkodean terawasi memakai nilai keluaran untuk menurunkan fitur numerik dari prediktor nominal.

Beberapa fungsi pengkodean terawasi di paket embed

Function Definition
step_lencode_glm() Menggunakan likelihood encoding untuk mengonversi prediktor nominal menjadi satu set skor yang diturunkan dari generalized linear model.
step_lencode_bayes() Menerapkan Bayesian likelihood encoding untuk mengonversi prediktor nominal menjadi satu set skor yang diturunkan dari generalized linear model yang diestimasi dengan analisis Bayesian.
step_lencode_mixed() Mengonversi prediktor nominal menjadi satu set skor yang diturunkan dari generalized linear mixed model.
Rekayasa Fitur di R

Memprediksi keberhasilan aplikasi hibah

Kita ingin memprediksi keberhasilan aplikasi hibah hanya dari kode sponsor.

lr_model <- logistic_reg() # declare model

lr_recipe_glm <- # Set recipe glm
  recipe(class ~ sponsor_code, 
         data = grants_train) %>%
  step_lencode_glm(sponsor_code, 
                   # Declare outcome variable
                   outcome = vars(class))

lr_workflow_glm <- # Create Workflow
  workflow() %>%
  add_model(lr_model) %>%
  add_recipe(lr_recipe_glm)

Ringkasan workflow

lr_workflow_glm
-- Workflow ------------------------------------
Preprocessor: Recipe
Model: logistic_reg()

-- Preprocessor --------------------------------
1 Recipe Step

- step_lencode_glm()

-- Model --------------------------------------
Logistic Regression Model Specification (classification)

Computational engine: glm
Rekayasa Fitur di R

Fitting, augmenting, dan assessing

Kita melakukan fitting dan evaluasi model

lr_fit_glm <- # Fit
  lr_workflow_glm %>%
  fit(grants_train)

lr_aug_glm <- # Augment
  lr_fit_glm %>%
  augment(grants_test)

glm_model <- lr_aug_glm %>% # Assess
  class_evaluate(truth = class,
                 estimate = .pred_class,
                 .pred_successful)

Hasil kinerja disimpan di glm_model

glm_model
# A tibble: 2 × 3
  .metric  .estimator .estimate
  <chr>    <chr>          <dbl>
1 accuracy binary         0.728
2 roc_auc  binary         0.684
Rekayasa Fitur di R

Menggabungkan model

Kita membuat bayes_model dan mixed_model untuk membandingkan kinerja tiap langkah terkait.

# Define model names
model <- c("glm", "glm",
           "bayes","bayes",
           "mixed", "mixed")
# Bind models in a tibble
models <- 
bind_rows(glm_model,
          bayes_model,
          mixed_model)%>%
  add_column(model = model)%>%
  select(-.estimator) %>%
  spread(model,.estimate)

Tabel kinerja yang praktis

models
# A tibble: 2 × 4
  .metric  bayes   glm mixed
  <chr>    <dbl> <dbl> <dbl>
1 accuracy 0.718 0.728 0.720
2 roc_auc  0.686 0.684 0.682
Rekayasa Fitur di R

Memvisualisasikan hasil

Visualisasikan hasil dalam bagan koordinat paralel dari paket Gally.

# Libraries
library(GGally)

# Parallel coordinates chart
ggparcoord(models,
           columns = 2:4, 
           groupColumn = 1,
           scale="globalminmax",
           showPoints = TRUE)

Bagan koordinat paralel untuk accuracy dan roc_auc yang membandingkan semua model.

Bagan koordinat paralel untuk accuracy dan roc_auc yang membandingkan semua model.

Rekayasa Fitur di R

Ayo berlatih!

Rekayasa Fitur di R

Preparing Video For Download...