Feature selection

Nguyễn Ngọc Bình
22 Apr 2019

Feature selection là gì?

  • Feature selection: Là các kỹ thuật lựa chọn tổ hợp biến tốt nhất cho mô hình

  • Mục đích:

    • Loại những biến không có thông tin (non-informative predictors) để tăng khả năng tính toán và giảm được độ phức tạp của mô hình. VD: near zero variance, IV thấp …
    • Loại những biến có thông tin như nhau (những biến tương quan cao)

Phương pháp áp dụng

Tùy thuộc vào loại mô hình và loại dữ liệu sẽ có những phương pháp feature selection phù hợp

Ví dụ:

  • Nếu có 1000 biến numeric, có thể dùng fisher's linear discriminant function, hàm này chạy nhanh kể cả đối với dữ liệu lớn. Vì hàm này chỉ cần đầu vào là mean, variance, tỷ lệ missing

  • Nếu có ít hơn 500 biến numeric và 50 biến phân loại, bạn có thể dùng information value để chọn 250 biến phù hợp

Phương pháp áp dụng (tiếp)

  • Nếu có 300 biến có thể sử dụng stepwise regression để chọn top 150 biến (dùng forward selection), nếu còn 60 biến có thể sử dụng stepwise (kết hợp forward và backward)

  • Sau đó có thể sử dụng hệ số VIF, Eigen value để khắc phục đa cộng tuyến

  • Cuối cùng nếu mô hình còn khoảng 20 biến, có thể tiếp tục dùng stepwise kết hợp với KS, GINI … để lựa chọn tổ hợp biến tốt nhất cho mô hình

Phân loại các phương pháp feature selection

Theo John et al. 1994, có 2 phân loại chính như sau:

  • Wrapper

Phương pháp Wrapper sử dụng thủ tục thêm hoặc bớt các biến predictors để tìm kết hợp tối ưu sao cho mô hình cuối cùng có khả năng dự báo tốt nhất (maximizes model performance) hay (minimize error)

  • Filter

Phương pháp Filter đánh giá các biến predictors bên ngoài mô hình dự báo (predictive model) và qua các bước lọc, chỉ những biến thỏa mãn các tiêu chí thì sẽ được chọn

Phân loại các phương pháp feature selection (tiếp)

Ưu, nhược điểm:

  • Phương pháp Filter sử dụng không tốn nhiều tài nguyên máy tính như Wrapper, nhưng tiêu chí lựa chọn không liên quan trực tiếp đến hiệu quả của mô hình (model performance). Vì các phương pháp Filter đánh giá các biến predictor một cách riêng rẽ, nên kết quả là những predictors thừa có thể được lựa chọn và những tương tác quan trọng giữa các biến không được tính đến.

  • Phương pháp Wrapper nhược điểm là có rất nhiều mô hình phải tính toán (có thể yêu cầu parameter tuning), vì vậy làm tốn nhiều tài nguyên máy tính, ngoài ra còn làm tăng nguy cơ over-fitting do phương pháp này chủ yếu tối ưu model performance.

Filter Methods - (dummy variables)

Thêm biến giả (dummy variables)

  • Do lớp mô hình hồi quy không sử dụng trực tiếp được biến định danh. Nên phải tạo biến giả (là biến có 2 giá trị 0 và 1) như là biến predictor trong mô hình.

  • Cách tạo biến giả: Ví dụ: Biến tình trạng hôn nhân (marital) có 3 giá trị (chưa kết hôn, đã kết hôn, góa). Biến giả được tạo như sau

    • X1 = 1 nếu marital == chưa kết hôn, = 0 nếu khác
    • X2 = 1 nếu marital == đã kết hôn, = 0 nếu khác
    • X3 = 1 nếu marital == góa, = 0 nếu khác

Filter Methods - (dummy variables)

Như vậy, có 3 biến giả được tạo ra từ biến marital. Nhưng nếu sử dụng 3 biến này trong mô hình thì sẽ xảy ra hiện tượng đa cộng tuyến hoàn hảo vì khi x1 = 0 và x2 =0 tương đương với x3 = 1. Nên với biến có n phạm trù thì sẽ tạo ra n-1 biến giả.

Filter Methods - Near zero variance (nzv)

NZV là trường hợp một biến có 1 giá trị duy nhất (zero variance predictor), hay 1 biến có 1 giá trị ở hầu hết các quan sát (near zero variance predictor). Tức là biến này không có thông tin đối với mô hình

? Đối với biến phụ thuộc imbalance, biến nzv có thể là biến giải thích tốt cho biến phu thuộc -> cần kiểm tra

Filter Methods - Information value

  • Chuyển đổi WoE

    • Ưu điểm 1:
    • Tăng số bậc tự do -> tăng độ chính xác của các tham số ước lượng: Nếu sử dụng biến định danh (categorical variables) trong mô hình thì sẽ phải đưa rất nhiều biến giả vào mô hình. Thêm 1 biến sẽ làm giảm 1 bậc tự do. Vì vậy, số bậc tự do trong mô hình sẽ giảm đáng kể nếu mô hình có nhiều biến định danh, làm ảnh hưởng tới chất lượng của các tham số ước lượng. Hơn nữa, sau khi ước lượng cần phải có 1 hàm để chuyển đổi từ biến giả về biến gốc.

Filter Methods - Information value

  • Ưu điểm 2:

    • Đồng nhất thang đo: Trong mô hình sử dụng đồng thời biến định lượng và biến định danh, mỗi biến có 1 thang đo (scale) khác nhau, nếu các thang đo lệch nhau quá nhiều sẽ ảnh hướng tới tham số được ước lượng. Việc chuyển đổi này làm cho các biến sử dụng trong mô hình sẽ đồng nhất 1 thang đo

Filter Methods - Information value

  • Công thức chuyển đổi WoE:

\[ WoE = ln(\frac{DistGood_i}{DistBad_i})=ln(\frac{\frac{good_i} {GOOD}}{\frac{bad_i} {BAD}}) \]

  • Trong đó:
    • \( bad_i \) : Số lượng khách hàng xấu của nhóm i
    • BAD: Tổng số khách hàng xấu trong mẫu
    • \( good_i \) : Số lượng khách hàng tốt của nhóm i
    • GOOD: Tổng số khách hàng tốt trong mẫu

Filter Methods - Information value

  • IV (Giá trị thông tin – Information Value): Được tính toán dựa trên sự phân bổ số lượng khách hàng tốt/ xấu trong mỗi nhóm so với tổng số khách hàng tốt/xấu của mẫu. IV càng lớn thì khả năng phân biệt khách hàng tốt và khách hàng xấu của mô hình càng cao.

\[ IV = \sum_{i=1}^{k} (DistGood_i - DistBad_i) * WoE_i \]

Filter Methods - Information value

  • Quy tắc (rules of thumb) lựa chọn ngưỡng IV (Bart Baesens, Daniel Roesch, Harald Scheule - Credit risk analytics - measurement techniques, applications, and examples in SAS (2016, Wiley))

    • < 0.02: Không có khả năng phân biệt
    • 0.02 - 0.1: Khả năng phân biệt yếu
    • 0.1 - 0.3: Khả năng phân biệt trung bình
    • +0.3: Khả năng phân biệt tốt

Filter Methods - Correlation

Cộng tuyến (Collinearity) hoặc đa cộng tuyến (multicollinearity) là khi có tương quan cao giữa 2 hay nhiều biến predictors trong mô hình hồi quy.

Một số phương pháp có thể sử dụng để giải quyết vấn đề này:

  • Phân tích thành phần chính (PCA). Nhược điểm: phương pháp này phức tạp, và ý nghĩa của các component khó giải thích
  • Hệ số VIF do đa cộng tuyến ảnh hưởng tới phương sai của ước lượng các hệ số thống kê gọi là lạm phát phương sai (variance inflation factor) hệ số VIF có thể sử dụng để xác định biến nào bị tác động do đa cộng tuyến. Nhược điểm khi sử dụng hệ số này là nó không chỉ ra được biến nào nên loại bỏ khỏi mô hình

Filter Methods - Correlation

  • Để đơn giản: Chúng ta thực hiện thuật toán dựa trên kinh nghiệm (heuristic approach) sau:
  1. Tính matrix hệ số tương quan
  2. Xác định 2 biến có tương quan cao (A và B).
  3. Tính trung bình giá trị hệ số tương quan của biến A và các biến còn lại. Làm tương tự với B
  4. Nếu A có trung bình lớn hơn thì loại A, ngược lại loại B
  5. Lặp lại từ bước 2-4 đến khi không còn hệ số tương quan nào ngoài ngưỡng.

Wrapper Methods

  • Thủ tục thực hiện như sau (VD: forward linear regressiion)

  • Thuật toán mô tả như sau:

  1. Các biến predictors được đánh giá từng biến 1 trong mô hình linear regression.

  2. Kiểm định giả thiết thống kê được thực hiện xem xem biến predictors thêm mới có ý nghĩa thống kê hay không (với ngưỡng p-value xác định trước).

  3. Nếu ít nhất 1 predictor có p-value không thỏa mãn, mô hình được thực hiện lại với biến thêm mới khác.

  4. Thuật toán dừng lại khi tất cả p-values đều thỏa mãn.

Wrapper Methods

  • Đánh giá

    • (1) Thủ tục forward là thủ tục tham, khi không đánh giá lại kết quả đã làm trước đó
    • (2) Sử dụng lặp lại các kiểm định làm tốn tài nguyên máy tính
    • (3) Tối đa hóa ý nghĩa thống kê (p-value) chưa chắc đã tối đa hóa các đại lượng làm cho mô hình độ chính xác tốt hơn

Wrapper Methods

  • Vấn đề thứ 2, 3 có thể được giảm nhẹ bằng việc sử dụng thước đo khả năng dự đoán mô hình như RMSE, classification accuracy, or the error under the ROC curve

  • Giả sử rằng RMSE là hàm mục tiêu thay cho ý nghĩa thống kê. Thuật toán có thể giống hệt, nhưng thay vì sử dụng p-value, thuật toán sẽ thêm biến để đạt được RMSE nhỏ nhất. Thuật toán sẽ tiếp tục cho đến khi đạt đến số predictors cần thiết hoặc full model. Theo thuật toán này, RMSE được ghi lại qua các bước, tập hợp mô hình có RMSE nhỏ nhất sẽ được chọn. Thuật toán này có thể gặp 1 vấn đề là thu được các ước lượng tốt với tỷ lệ sai số thấp nhưng có thể gặp vấn đề overfitting

Wrapper Methods

  • Có một số tiêu chí khác có thể xử phạt (penalize) khả năng dự đoán của mô hình dựa trên số lượng predictors. Ví dụ, khi chọn giữa hai mô hình có cùng RMSE, mô hình đơn giản hơn với ít biến predictors hơn sẽ thích hợp hơn. Đối với hồi quy tuyến tính, một thống kê thường được sử dụng là Tiêu chí thông tin Akaike, một phiên bản bị phạt (penalized) của tổng bình phương các sai số (SSE):

Wrapper Methods

\[ AIC = nlog(\sum^n_{i=1}(y_i-\hat{y_i})^2) + 2P \]

Trong đó: P số lượng biến trong mô hình

AIC không có bất kỳ ngưỡng tham chiếu cho trước nào, chỉ đơn giản là mô hình có AIC nhỏ hơn thì sẽ tốt hơn (khi các yếu tố khác như nhau). Mô hình với AIC nhỏ nhất có thể tránh khỏi hiện tượng over-fitting

Wrapper Methods

  • Một cách tiếp cận khác có thể được lựa chọn là (correlation-based feature selection) (Hall and Smith 1997). Thuật toán này cố gắng chọn ra 1 tập con các biến độc lập sao cho tối đa hóa tương quan của các biến độc lập với biến phụ thuộc và tối thiểu hóa tương quan giữa các biến độc lập với nhau. Một thước đo có thể sử dụng trong trường hợp này là:

\[ G = \frac{P R_y} {\sqrt{P + P(P-1) \overline{R_x}}} \]

Trong đó: \( R_y \) đo lường mức độ tương quan giữa các biến độc lập (candidate predictor) và biến phụ thuộc (outcome). \( \overline{R_x} \) là giá trị trung bình của hệ số tương quan giữa biến x và P biến khác trong tập con đã chọn. Mỗi bước trong thuật toán sẽ xếp hạng các biến để giữ lại biến hiệu quả và loại biến thừa.

Wrapper Methods - Forward, Backward, and Stepwise Selection

  • Forward: Thuật toán đã được mô tả ở hình trên.

  • Backward: Thuật toán bắt đầu với P predictors, thuật toán lặp sẽ loại bỏ những biến không có ý nghĩa trong mô hình. Thuật toán này tránh được việc refitting nhiều mô hình tại mỗi bước. Khi full model được tạo, variable importance được tính toán để xếp hạng các predictors.

  • Stepwise là một phiên bản điều chỉnh của Forward, Backward, trong đó, cứ sau mỗi bước predictor được thêm vào mô hình, các kiểm định lại được thực hiện lại để loại bỏ khỏi mô hình. Trong nhiều trường hợp, p-value khi thêm 1 biến bất kỳ vào, khác với p-value khi loại bỏ biến đó (Derksen and Keselman 1992). Mặc dù thuật toán này bớt tham (less greedy) nhưng nó vẫn gặp vấn đề trong kiểm định các giả thiết.

Wrapper Methods - Forward, Backward, and Stepwise Selection

Thuật toán Backward:

Wrapper Methods

  • Simulated Annealing (tham khảo)

  • Genetic Algorithms (tham khảo)

Computing

Dùng dữ liệu germancredit

data("germancredit")
raw_data <- germancredit

Computing

  • Chia dữ liệu thành tập train và tập test
set.seed(1611)
train_test_split <- initial_split(raw_data, strata = "creditability")

credit_train <- training(train_test_split)
credit_test <- testing(train_test_split)

Computing

  • Tạo object recipe, mục đích để tách biến phụ thuộc khỏi các bước preprocessing (vì các bước preprocessing này là unsuppervised)
rec_obj <- recipe(creditability ~., data = credit_train)

Computing

prep_obj <- rec_obj %>% 
  # Chuyển từ character -> factor
  step_string2factor(all_nominal()) %>% 
  # Xử lý missing
  step_medianimpute(all_numeric()) %>% 
  # Xử lý trường hợp near zero variance
  step_nzv(all_predictors()) %>% 
  prep() 
  • Những biến bị loại vì near zero variance
train_data <- bake(prep_obj, new_data = credit_train)
setdiff(names(credit_train), names(train_data))
[1] "other.debtors.or.guarantors" "foreign.worker"             

Thanks