Ham verinin bilgi içeriğini artırma

R'da Feature Engineering

Jorge Zazueta

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

Ham veriyle başa çıkma

Eksik değerli tipik bir veri seti

Eksik veri örneği gösteren tablo

Değerlerin faktör olarak gösterimi

Faktör tipinde veri örneği gösteren tablo

R'da Feature Engineering

Ham veriyle başa çıkma

Atanmış değerleri olan veri seti

Atamadan sonra eksik verisi olmayan tablo

Faktörlerin sahte değişkenlerle gösterimi

Faktörlerin sahte değişkenlerle gösterimi

R'da Feature Engineering

Kredi veri seti

# A tibble: 614 × 13
   Loan_ID  Gender Married Dependents Educa…¹ Self_…² Appli…³ Coapp…⁴ LoanA…⁵ Loan_…⁶
   <fct>    <fct>  <fct>   <fct>      <fct>   <fct>     <dbl>   <dbl>   <dbl>   <dbl>
 1 LP001002 Male   No      0          Gradua… No         5849       0      NA     360
 2 LP001003 Male   Yes     1          Gradua… No         4583    1508     128     360
 3 LP001005 Male   Yes     0          Gradua… Yes        3000       0      66     360
 4 LP001006 Male   Yes     0          Not Gr… No         2583    2358     120     360
 5 LP001008 Male   No      0          Gradua… No         6000       0     141     360
 6 LP001011 Male   Yes     2          Gradua… Yes        5417    4196     267     360
 7 LP001013 Male   Yes     0          Not Gr… No         2333    1516      95     360
 8 LP001014 Male   Yes     3+         Gradua… No         3036    2504     158     360
 9 LP001018 Male   Yes     2          Gradua… No         4006    1526     168     360
10 LP001020 Male   Yes     1          Gradua… No        12841   10968     349     360
# … with 604 more rows, 3 more variables: Credit_History <dbl>, Property_Area <fct>,
#   Loan_Status <fct>, and abbreviated variable names ¹​Education, ²​Self_Employed,
#   ³​ApplicantIncome, ⁴​CoapplicantIncome, ⁵​LoanAmount, ⁶​Loan_Amount_Term
# ℹ Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names
R'da Feature Engineering

Eksik değerler

loans içindeki eksik değerleri, naniar paketindeki vis_miss(loans) ile görsel olarak belirleyebiliriz.

Tüm veri setindeki eksik değerleri gösteren grafik.

R'da Feature Engineering

Eksik değerler

Yalnızca eksik değer içeren sütunları seçerek tabloyu yakınlaştırabiliriz.

loans %>% 
select(Gender, 
       Married, 
       Dependents,
       Self_Employed,
       LoanAmount,
       Loan_Amount_Term, 
       Credit_History) %>%
  vis_miss()

Eksik değerlere daha yakından bakış

Seçilen özelliklerdeki eksik değerleri gösteren grafik.

R'da Feature Engineering

Eksik değerler ve sahte değişkenler

Eksik değerleri ele alıp sahte değişkenleri aynı tarifte oluşturabiliriz.

lr_recipe <- 
  recipe(Loan_Status ~., 
         data = train) %>%
  update_role(Loan_ID, 
              new_role = "ID" ) %>%
  step_impute_knn(all_predictors()) %>%
  step_dummy(all_nominal_predictors())

Tarifi yazdırın

lr_recipe
Recipe

Inputs:

      role #variables
        ID          1
   outcome          1
 predictor         30

Operations:

K-nearest neighbor imputation for all_predictors()
Dummy variables from all_nominal_predictors()
R'da Feature Engineering

Doğru tarif adımını bulma

Diğer atama yöntemlerini ve tüm tarif adımlarını tidymodels dokümantasyonunda bulabilirsiniz: www.tidymodels.org/find/recipes

tidymodels dokümantasyonunda recipe arama aracı.

R'da Feature Engineering

Modelimizi kurma ve değerlendirme

# Fit
lr_fit <- 
  lr_workflow %>% fit(data = train)
lr_aug <- 
  lr_fit %>% augment(test)
# Assess
lr_aug %>%
  roc_curve(truth = Loan_Status, .pred_N) %>%
  autoplot()

bind_rows(lr_aug %>%
            roc_auc(truth = Loan_Status,
                    .pred_N),
          lr_aug %>%
            accuracy(truth = Loan_Status,
                     .pred_class))
# A tibble: 2 × 3
  .metric  .estimator .estimate
  <chr>    <chr>          <dbl>
1 roc_auc  binary         0.738
2 accuracy binary         0.792

R'da Feature Engineering

Hadi pratik yapalım!

R'da Feature Engineering

Preparing Video For Download...