Feature engineering en R
Jorge Zazueta
Research Professor. Head of the Modeling Group at the School of Economics, UASLP
On peut améliorer les performances du modèle de Machine Learning en rendant les données plus faciles à traiter.
glimpse(loans_num)
Rows: 614
Columns: 6
$ Loan_Status <fct> Y, N, Y, Y, Y, Y, Y, N, Y, N, Y, Y, Y, N...
$ ApplicantIncome <dbl> 5849, 4583, 3000, 2583, 6000, 5417, 233...
$ CoapplicantIncome <dbl> 0, 1508, 0, 2358, 0, 4196, 1516, 2504, 1...
$ LoanAmount <dbl> NA, 128, 66, 120, 141, 267, 95, 158, 168...
$ Loan_Amount_Term <dbl> 360, 360, 360, 360, 360, 360, 360, 360, ...
$ Credit_History <fct> 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1...
Appliquez une transformation log aux variables numériques pour :
Montants de prêt après transformation log

Normalisez ou redimensionnez les variables numériques pour :
Par exemple, les durées de prêt varient fortement

Normalisez ou redimensionnez les variables numériques pour :
Les valeurs normalisées préservent la distribution tout en gardant de la variation.

Nous pouvons maintenant déclarer un modèle de régression logistique et ajouter une recette pour imputer, normaliser et appliquer le log aux variables concernées.
lr_model <- logistic_reg()
lr_recipe <-
recipe(Loan_Status ~.,
data = train) %>%
step_impute_knn(
all_numeric_predictors())%>%
step_normalize(Loan_Amount_Term) %>%
step_log(all_numeric_predictors(),
-Loan_Amount_Term, offset = 1)
Afficher l'objet recipe fournit un résumé des étapes appliquées.
lr_recipe
Recipe
Inputs:
role #variables
outcome 1
predictor 5
Operations:
K-nearest neighbor imputation for all_numeric_predictors()
Centering and scaling for Loan_Amount_Term
Log transformation on all_numeric_predictors(),-Loan_Amount_Term
Nous définissons un ensemble de métriques, roc_auc, accuracy et sens, pour évaluer l'objet workflow ajusté lr_fit.
class_evaluate <- metric_set(
roc_auc, accuracy, sens)
Puis nous l'exécutons comme toute fonction.
lr_aug %>%
class_evaluate(
truth = Loan_Status,
estimate = .pred_class,
.pred_Y)
Ensemble de métriques personnalisé
# A tibble: 3 × 3
.metric .estimator .estimate
<chr> <chr> <dbl>
1 accuracy binary 0.813
2 sens binary 0.467
3 roc_auc binary 0.288
Feature engineering en R