De ce transformăm caracteristicile existente?

Ingineria caracteristicilor în R

Jorge Zazueta

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

Simplificarea sarcinii modelului

Putem îmbunătăți performanța modelului de machine learning făcând datele mai ușor de gestionat.

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...
Ingineria caracteristicilor în R

Transformare logaritmică

Transformare log a caracteristicilor numerice pentru:

  • Gestionarea datelor asimetrice
  • Reducerea impactului valorilor extreme
  • Convertirea relațiilor multiplicative în aditive
  • Pregătirea datelor pentru modelare
  • Funcționează doar pentru valori pozitive

Date privind suma împrumutului transformate log

Comparație grafică între datele brute și cele transformate logaritmic

Ingineria caracteristicilor în R

Normalizare

Normalizați sau scalați caracteristicile numerice pentru a:

  • Preveni dominarea unui singur atribut
  • Facilita interpretarea printr-o magnitudine comparabilă și
  • Pregăti datele pentru modelare

ex., valorile perioadei împrumutului variază semnificativ

Histogramă cu valorile sumei împrumutului.

Ingineria caracteristicilor în R

Normalizare

Normalizați sau scalați caracteristicile numerice pentru a:

  • Preveni dominarea unui singur atribut
  • Gestiona valorile extreme și
  • Datele lipsă
  • Pregăti datele pentru modelare

Valorile normalizate păstrează distribuția, dar conțin variație.

Histogramă cu valorile sumei împrumutului suprapuse peste datele normalizate.

Ingineria caracteristicilor în R

Definirea modelului și a rețetei

Putem declara un model de regresie logistică și adăuga o rețetă pentru a imputa, normaliza și transforma logaritmic caracteristicile relevante.

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)

Afișarea obiectului rețetă prezintă un rezumat al pașilor aplicați.

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
Ingineria caracteristicilor în R

Măsurarea eficientă a performanței

Definim un set de metrici, roc_auc, accuracy și sens pentru a evalua obiectul workflow lr_fit.

class_evaluate <- metric_set(
  roc_auc, accuracy, sens)

Și rulăm ca orice funcție.

lr_aug %>% 
  class_evaluate(
    truth = Loan_Status, 
    estimate = .pred_class, 
    .pred_Y)

Set personalizat de metrici

# 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
Ingineria caracteristicilor în R

Să exersăm!

Ingineria caracteristicilor în R

Preparing Video For Download...