Koda kategorisk data med övervakad inlärning

Feature Engineering i R

Jorge Zazueta

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

Introduktion till övervakad kodning

Övervakad kodning använder utfallsvärden för att härleda numeriska särdrag från nominella prediktorer.

Feature Engineering i R

Introduktion till övervakad kodning

Övervakad kodning använder utfallsvärden för att härleda numeriska särdrag från nominella prediktorer.

Några övervakade kodningsfunktioner i embed-paketet

Funktion Definition
step_lencode_glm() Använder sannolikhetskodning för att konvertera en nominell prediktor till en uppsättning poäng härledda från en generaliserad linjär modell.
step_lencode_bayes() Tillämpar Bayesiansk sannolikhetskodning för att konvertera en nominell prediktor till en uppsättning poäng härledda från en generaliserad linjär modell skattad med Bayesiansk analys.
step_lencode_mixed() Konverterar nominella prediktorer till en uppsättning poäng härledda från en generaliserad linjär blandad modell.
Feature Engineering i R

Förutsäga framgång för bidragsansökningar

Vi vill förutsäga om en ansökan beviljas, enbart baserat på sponsorkod.

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)

Sammanfattning av arbetsflödet

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
Feature Engineering i R

Träna, komplettera och utvärdera

Vi tränar och utvärderar modellen

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)

Prestandaresultaten lagras i 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
Feature Engineering i R

Kombinera modellerna

Vi bygger bayes_model och mixed_model för att jämföra prestanda för respektive steg.

# 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)

En praktisk prestandatabell

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
Feature Engineering i R

Visualisera resultaten

Visualisera resultaten i ett parallellkoordinatdiagram från Gally-paketet.

# Libraries
library(GGally)

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

Parallellkoordinatdiagram över accuracy och roc_auc för alla modeller.

Parallellkoordinatdiagram över accuracy och roc_auc för alla modeller.

Feature Engineering i R

Nu kör vi en övning!

Feature Engineering i R

Preparing Video For Download...