Mengapa mentransformasi fitur yang ada?

Rekayasa Fitur di R

Jorge Zazueta

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

Mempermudah kerja model Anda

Kita dapat meningkatkan kinerja model pembelajaran mesin dengan membuat data lebih mudah diolah.

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...
Rekayasa Fitur di R

Transformasi log

Transformasi log pada fitur numerik untuk:

  • Menangani data miring
  • Mengurangi dampak pencilan
  • Mengubah relasi multiplikatif menjadi aditif
  • Membuat data lebih sesuai untuk pemodelan
  • Hanya berfungsi untuk nilai positif

Data jumlah pinjaman yang ditransformasi log

Perbandingan grafis data mentah dan transformasi log

Rekayasa Fitur di R

Normalisasi

Normalisasi atau penskalaan fitur numerik untuk:

  • Mencegah satu fitur mendominasi yang lain
  • Memudahkan interpretasi karena memberi skala sebanding dan
  • Membuat data lebih sesuai untuk pemodelan

mis., nilai jangka waktu pinjaman bervariasi signifikan

Histogram yang menampilkan nilai jangka waktu pinjaman.

Rekayasa Fitur di R

Normalisasi

Normalisasi atau penskalaan fitur numerik untuk:

  • Mencegah satu fitur mendominasi yang lain
  • Membantu menangani pencilan dan
  • Data hilang
  • Membuat data lebih sesuai untuk pemodelan

Nilai ternormalisasi mempertahankan distribusi, namun tetap bervariasi.

Histogram yang menampilkan nilai jumlah pinjaman dilapisi data ternormalisasi.

Rekayasa Fitur di R

Mendefinisikan model dan recipe

Kita kini dapat mendeklarasikan model regresi logistik dan menambahkan recipe untuk imputasi, normalisasi, dan transformasi log pada fitur terkait.

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)

Mencetak objek recipe menampilkan ringkasan langkah yang diterapkan.

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
Rekayasa Fitur di R

Mengukur kinerja secara efisien

Kita mendefinisikan metrik roc_auc, accuracy dan sens untuk menilai objek workflow terpasang lr_fit.

class_evaluate <- metric_set(
  roc_auc, accuracy, sens)

Dan jalankan seperti fungsi biasa.

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

Kumpulan metrik kustom

# 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
Rekayasa Fitur di R

Ayo berlatih!

Rekayasa Fitur di R

Preparing Video For Download...