Vì sao biến đổi đặc trưng hiện có?

Kỹ thuật đặc trưng (Feature Engineering) với R

Jorge Zazueta

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

Giúp mô hình của bạn đỡ vất vả

Ta có thể cải thiện hiệu năng mô hình máy học bằng cách làm dữ liệu dễ xử lý hơn.

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...
Kỹ thuật đặc trưng (Feature Engineering) với R

Biến đổi log

Biến đổi log các đặc trưng số để:

  • Xử lý dữ liệu lệch
  • Giảm ảnh hưởng của ngoại lệ
  • Chuyển quan hệ nhân thành cộng
  • Làm dữ liệu phù hợp hơn cho mô hình hóa
  • Chỉ áp dụng cho giá trị dương

Dữ liệu khoản vay sau biến đổi log

So sánh trực quan giữa dữ liệu gốc và sau log-transform

Kỹ thuật đặc trưng (Feature Engineering) với R

Chuẩn hóa

Chuẩn hóa/scale đặc trưng số để:

  • Ngăn một đặc trưng lấn át các đặc trưng khác
  • Dễ so sánh do cùng bậc độ lớn và
  • Làm dữ liệu phù hợp hơn cho mô hình hóa

ví dụ, kỳ hạn khoản vay có độ biến thiên lớn

Biểu đồ histogram giá trị kỳ hạn khoản vay.

Kỹ thuật đặc trưng (Feature Engineering) với R

Chuẩn hóa

Chuẩn hóa/scale đặc trưng số để:

  • Tránh một đặc trưng lấn át phần còn lại
  • Xử lý ngoại lệ và
  • Thiếu dữ liệu
  • Làm dữ liệu phù hợp hơn cho mô hình hóa

Giá trị đã chuẩn hóa giữ nguyên phân phối nhưng vẫn có biến thiên.

Biểu đồ histogram giá trị khoản vay chồng lên dữ liệu đã chuẩn hóa.

Kỹ thuật đặc trưng (Feature Engineering) với R

Định nghĩa mô hình và recipe

Ta khai báo mô hình hồi quy logistic và thêm recipe để bù khuyết, chuẩn hóa và log-transform các đặc trưng liên quan.

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)

In recipe khi in ra sẽ tóm tắt các bước đã áp dụng.

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
Kỹ thuật đặc trưng (Feature Engineering) với R

Đo lường hiệu năng hiệu quả

Định nghĩa bộ metric roc_auc, accuracysens để đánh giá đối tượng workflow khớp lr_fit.

class_evaluate <- metric_set(
  roc_auc, accuracy, sens)

Và chạy như một hàm thông thường.

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

Bộ metric tùy chỉnh

# 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
Kỹ thuật đặc trưng (Feature Engineering) với R

Ayo berlatih!

Kỹ thuật đặc trưng (Feature Engineering) với R

Preparing Video For Download...