Rekayasa Fitur di R
Jorge Zazueta
Research Professor and Head of the Modeling Group at the School of Economics, UASLP
Berbeda dengan itu, pengkodean terawasi memakai nilai keluaran untuk menurunkan fitur numerik dari prediktor nominal.
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. |
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
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
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
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.

Rekayasa Fitur di R