Feature Engineering в R
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
На відміну від інших підходів, супервізоване кодування використовує значення цілі, щоб отримати числові ознаки з номінативних предикторів.
Супервізоване кодування використовує значення цілі, щоб отримати числові ознаки з номінативних предикторів.
Деякі функції супервізованого кодування в пакеті embed
| Function | Definition |
|---|---|
| step_lencode_glm() | Використовує правдоподібнісне кодування, щоб перетворити номінативний предиктор на один набір оцінок, отриманих із узагальненої лінійної моделі. |
| step_lencode_bayes() | Застосовує баєсівське правдоподібнісне кодування, щоб перетворити номінативний предиктор на один набір оцінок, отриманих із узагальненої лінійної моделі, оціненої за баєсівським підходом. |
| step_lencode_mixed() | Перетворює номінативні предиктори на один набір оцінок, отриманих із узагальненої змішаної лінійної моделі. |
Ми хочемо передбачити успіх заявки на грант лише за кодом спонсора.
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)
Підсумок 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
Навчимо та оцінимо модель
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)
Результати якості збережено в 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
Створимо bayes_model і mixed_model, щоб порівняти якість відповідних кроків.
# 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)
Зручна таблиця продуктивності
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
Візуалізуйте результати на діаграмі паралельних координат із пакета Gally.
# Libraries
library(GGally)
# Parallel coordinates chart
ggparcoord(models,
columns = 2:4,
groupColumn = 1,
scale="globalminmax",
showPoints = TRUE)
Діаграма паралельних координат для accuracy та roc_auc: порівняння всіх моделей.

Feature Engineering в R