Lựa chọn tính năng đệ quy: Bổ sung hay Loại bỏ?

Mar 22 2022
Một cách thông minh để thực hiện lựa chọn tính năng hoàn chỉnh
Khi xây dựng một mô hình học máy, việc có nhiều tính năng quan trọng hơn là có ít hơn. Nhưng chỉ sử dụng những thứ bạn cần sẽ hữu ích hơn là chỉ sử dụng tất cả.
Ảnh của Rodion Kutsaev trên Unsplash

Khi xây dựng một mô hình học máy, việc có nhiều tính năng quan trọng hơn là có ít hơn. Nhưng chỉ sử dụng những thứ bạn cần sẽ hữu ích hơn là chỉ sử dụng tất cả . Vì vậy, sau lần thử nghiệm mô hình đầu tiên, chúng tôi cần một quy trình bán tự động có thể chỉ lọc các tính năng hữu ích cho nhiệm vụ được giám sát của chúng tôi.

Chúng tôi chỉ đơn giản là đề cập đến quá trình lựa chọn tính năng. Nó bao gồm tất cả các thuật toán chỉ chọn một tập hợp con của các biến, từ tập dữ liệu ban đầu, để sử dụng làm đầu vào trong mô hình dự đoán của chúng tôi. Có nhiều kỹ thuật khác nhau để thực hiện việc lựa chọn tính năng và mỗi phương pháp đều có những ưu và nhược điểm khác nhau cần xem xét.

Một số ít các tính năng có hiệu quả trong việc sản xuất các đường ống đơn giản và có thể bảo trì; cải thiện tính khái quát hóa; giảm không gian lưu trữ hoặc chi phí có thể có; giảm thời gian suy luận (bất kể dự đoán cuối cùng là gì) hoặc cung cấp các kết quả có thể diễn giải tốt hơn.

Đồng thời, việc chỉ tạo ra một tập hợp con các tính năng tiên đoán hữu ích có thể tốn kém, khó khăn và mơ hồ. Một thuật toán lựa chọn tính năng tốt nên thử tất cả các kết hợp tính năng có thể có và chú thích kết hợp tính năng nào dẫn đến cải thiện hiệu suất theo chiến lược xác thực của chúng tôi. Do hạn chế về thời gian, các nhà khoa học dữ liệu không khuyến khích áp dụng các phương pháp tiếp cận lựa chọn tính năng với bộ dữ liệu khổng lồ. Ngoài ra, các tính năng được chọn phụ thuộc vào kiểu máy và các thông số được sử dụng. Vì vậy, chỉ cần thay đổi một trong số chúng có thể làm thay đổi kết quả cuối cùng theo hướng xấu. Bạn cũng có thể nghi ngờ về vị trí đặt lựa chọn tính năng trong quy trình học máy của chúng tôi để đạt được hiệu quả tốt nhất.

Để chống lại những thách thức này, chúng tôi đã phát hành shap-hypetune : một gói python để điều chỉnh đồng thời siêu tham số và lựa chọn tính năng. Nó nhằm mục đích tối ưu hóa, trong một đường dẫn duy nhất, số lượng tính năng tối ưu trong khi tìm kiếm cấu hình thông số tốt nhất của các mô hình tăng cường độ dốc. Nó cung cấp các phương pháp tìm kiếm tham số khác nhau (tìm kiếm theo lưới, ngẫu nhiên hoặc bayesian) và các chiến lược lựa chọn tính năng (Loại bỏ / Bổ sung tính năng đệ quy và Boruta) cũng sử dụng các giá trị SHAP để cải thiện tính tổng quát .

Trong bài đăng này, chúng tôi tập trung vào vẻ đẹp của các thuật toán lựa chọn tính năng đệ quy. Lựa chọn tính năng đệ quy cho phép tìm kiếm một tập hợp con đáng tin cậy của các tính năng trong khi xem xét các cải tiến hiệu suất và duy trì chi phí tính toán có thể chấp nhận được . Vì vậy, nó có tất cả các điều kiện tiên quyết để trở thành một trong những phương pháp lọc tính năng hiệu quả nhất trong các ứng dụng thế giới thực. Chúng tôi mong muốn khám phá cách tiếp cận cộng ít được biết đến (Phép cộng tính năng đệ quy), so sánh nó với cách tiếp cận phép trừ nổi tiếng nhất (Loại bỏ tính năng đệ quy) trong một bài toán phân loại tiêu chuẩn.

Bổ sung tính năng đệ quy

Phép cộng tính năng đệ quy chọn các tính năng theo quy trình bổ sung đệ quy. Quy trình làm việc được toán học dưới đây:

  1. Phù hợp với một công cụ ước tính (một công cụ tăng độ dốc trong trường hợp của chúng tôi) bằng cách sử dụng tất cả các tính năng có sẵn.
  2. Trích xuất xếp hạng nhập khẩu tính năng (mức độ quan trọng dựa trên cây tiêu chuẩn hoặc SHAP đều hợp lệ).
  3. Thứ tự các tính năng theo đóng góp của họ.
  4. Điều chỉnh công cụ ước tính chỉ bằng cách sử dụng các tính năng phù hợp nhất và tính toán hiệu suất trên dữ liệu xác thực.
  5. Bao gồm tính năng quan trọng nhất tiếp theo và phù hợp với công cụ ước tính mới.
  6. Tính toán sự khác biệt về hiệu suất giữa các mô hình trong bước 5 và bước 6.
  7. Nếu hiệu suất được cải thiện, tính năng này được coi là một yếu tố dự đoán có giá trị.
  8. Lặp lại các bước từ 5 đến 7 cho đến khi tất cả các tính năng đã được tính đến.

rfa = BoostRFA(
    LGBMClassifier(), 
    step=3, min_features_to_select=1
)
rfa.fit(X_train, y_train, eval_set=[(X_val, y_val)])

Đối với nhiệm vụ phân loại của chúng tôi, chúng tôi sử dụng BoostRFA , cùng với LGBMClassifier , tính toán tìm kiếm tham số Bayes. Kết quả được báo cáo dưới đây.

Kết quả được xác thực chéo trên các mẫu ngoài màn hình đầu tiên (hình ảnh của tác giả)

Loại bỏ tính năng đệ quy

Loại bỏ tính năng đệ quy chọn các tính năng theo quy trình loại bỏ đệ quy. Quy trình làm việc được toán học dưới đây:

  1. Phù hợp với một công cụ ước tính (một công cụ tăng độ dốc trong trường hợp của chúng tôi) bằng cách sử dụng tất cả các tính năng có sẵn.
  2. Trích xuất xếp hạng nhập khẩu tính năng (mức độ quan trọng dựa trên cây tiêu chuẩn hoặc SHAP đều hợp lệ).
  3. Thứ tự các tính năng theo đóng góp của họ.
  4. Loại trừ tính năng ít quan trọng nhất và phù hợp với công cụ ước tính mới.
  5. Tính toán sự khác biệt về hiệu suất giữa các mô hình ở bước 4 giữa các lần lặp lại liên tiếp.
  6. Nếu hiệu suất được cải thiện, tính năng sẽ bị loại bỏ.
  7. Lặp lại các bước từ 4 đến 7 cho đến khi tất cả các tính năng đã được tính đến.

rfe = BoostRFE(
    LGBMClassifier(), 
    step=3, min_features_to_select=1
)
rfe.fit(X_train, y_train, eval_set=[(X_val, y_val)])

Đối với nhiệm vụ phân loại của chúng tôi, chúng tôi sử dụng BoostRFE , cùng với LGBMClassifier , tính toán tìm kiếm tham số Bayes. Kết quả được báo cáo dưới đây.

Kết quả được xác thực chéo trên các mẫu ngoài màn hình đầu tiên (hình ảnh của tác giả)

Kết luận

Cả RFA và RFE đều cho thấy kết quả đáng kinh ngạc trong nhiệm vụ phân loại mô phỏng của chúng tôi. Chúng cũng thể hiện khả năng lọc tốt. Nhìn vào kết quả xác nhận chéo, các đối tượng địa lý thông tin được lựa chọn nhiều nhất, tiếp theo là các đối tượng địa lý kết hợp tuyến tính (dư thừa) và các đối tượng địa lý nhiễu.

So sánh khả năng lựa chọn của RFA và RFE bằng cách sử dụng xác nhận chéo (hình ảnh của tác giả)

Kết luận, chúng tôi đã chứng minh tính tốt của các thuật toán đệ quy đối với việc lựa chọn tính năng. Chúng tôi đã giới thiệu cách bổ sung tính năng đệ quy ít được biết đến, so sánh nó với phương pháp loại bỏ tính năng đệ quy phổ biến nhất. Cả hai quy trình đều cho kết quả khả quan. Tuy nhiên, phương pháp chọn lọc hoàn hảo không tồn tại. Chúng tôi phải tìm và tối ưu hóa chiến lược lọc chính xác theo nhiệm vụ của chúng tôi.

KIỂM TRA BÁO CÁO GITHUB CỦA TÔI

Giữ liên lạc: Linkedin

© Copyright 2021 - 2023 | vngogo.com | All Rights Reserved