Là lựa chọn tính năng cần thiết?


10

Tôi muốn chạy một số mô hình học máy như rừng ngẫu nhiên, tăng cường độ dốc hoặc SVM trên tập dữ liệu của tôi. Có hơn 200 biến dự đoán trong tập dữ liệu của tôi và các lớp mục tiêu của tôi là một biến nhị phân.

Tôi có cần chạy lựa chọn tính năng trước khi lắp mô hình không? Nó có ảnh hưởng đáng kể đến hiệu suất mô hình hay không có nhiều khác biệt nếu tôi trực tiếp điều chỉnh mô hình bằng cách sử dụng tất cả các biến dự đoán?


Dữ liệu của bạn lớn như thế nào? Nếu bạn có hàng ngàn mẫu và 200 biến dự đoán, khả năng khá cao là với một mô hình như Rừng ngẫu nhiên, bạn sẽ có thể đạt được hiệu suất khá cao. Lựa chọn tính năng hơn nữa sau đó sẽ cải thiện hơn nữa hiệu suất của bạn.
Archie

@Archie Có, kích thước tập dữ liệu của tôi tương tự như những gì bạn đã đề cập. 'Lựa chọn tính năng khác', bạn có nghĩa là tiến hành lựa chọn tính năng trước khi phù hợp với mô hình và nó có thể có lợi cho hiệu suất mô hình không?
LUSAQX

Ý tôi là trước tiên tôi sẽ thử nghiệm tất cả các tính năng, Random Forests sẽ là một phân loại tuyệt vời để bắt đầu. Nếu sau đó bạn muốn đẩy hiệu suất cao hơn, tôi sẽ xem xét ví dụ về các tính năng quan trọng để chọn các tính năng quan trọng nhất.
Archie

Đồng ý. Đó là những gì tôi đã làm cho đến nay. Tôi sẽ thử một số phương pháp lựa chọn tính năng trước khi mô hình phù hợp để xem liệu sau đó có cải thiện gì không.
LUSAQX

Một câu trả lời ngắn từ thực tiễn gần đây của tôi, việc lựa chọn tính năng là cần thiết để so sánh mô hình. Một số thuật toán sẽ hoạt động tốt hơn trên một số bộ tính năng trong khi một số thuật toán khác trên bộ khác.
LUSAQX

Câu trả lời:


11

Lựa chọn tính năng có thể được xem xét một giai đoạn để tránh. Bạn phải dành thời gian tính toán để xóa các tính năng và thực sự mất dữ liệu và các phương pháp mà bạn phải thực hiện lựa chọn tính năng không tối ưu vì vấn đề là NP-Complete . Sử dụng nó không giống như một lời đề nghị mà bạn không thể từ chối.

Vì vậy, những lợi ích của việc sử dụng nó là gì?

  1. Nhiều tính năng và tỷ lệ mẫu / tính năng thấp sẽ đưa tiếng ồn vào tập dữ liệu của bạn. Trong trường hợp như vậy, thuật toán phân loại của bạn có khả năng phù hợp hơn và mang lại cho bạn cảm giác sai về hiệu suất tốt.
  2. Giảm số lượng tính năng sẽ giảm thời gian chạy trong các giai đoạn sau. Điều đó sẽ cho phép bạn sử dụng các thuật toán có độ phức tạp cao hơn, tìm kiếm nhiều tham số siêu hơn hoặc thực hiện nhiều đánh giá hơn.
  3. Một bộ tính năng nhỏ hơn dễ hiểu hơn đối với con người. Điều đó sẽ cho phép bạn tập trung vào các nguồn dự đoán chính và thực hiện kỹ thuật tính năng chính xác hơn. Nếu bạn sẽ phải giải thích mô hình của mình cho khách hàng, bạn nên trình bày một mô hình có 5 tính năng hơn là một mô hình có 200 tính năng.

Bây giờ cho trường hợp cụ thể của bạn: Tôi khuyên bạn sẽ bắt đầu tính toán các mối tương quan giữa các tính năng và khái niệm. Tính toán tương quan giữa tất cả các tính năng cũng là thông tin. Lưu ý rằng có nhiều loại tương quan hữu ích (ví dụ: Pearson , Thông tin lẫn nhau ) và nhiều thuộc tính có thể ảnh hưởng đến chúng (ví dụ: độ thưa thớt, mất cân bằng khái niệm). Kiểm tra chúng thay vì mù quáng với thuật toán lựa chọn tính năng có thể giúp bạn tiết kiệm nhiều thời gian trong tương lai.

Tôi không nghĩ rằng bạn sẽ gặp nhiều vấn đề về thời gian với bộ dữ liệu của mình. Tuy nhiên, tỷ lệ mẫu / tính năng của bạn không quá cao để bạn có thể hưởng lợi từ việc lựa chọn tính năng.

Chọn một bộ phân loại có độ phức tạp thấp (ví dụ: hồi quy tuyến tính, cây quyết định nhỏ) và sử dụng nó làm điểm chuẩn. Hãy thử nó trên tập dữ liệu đầy đủ và trên một số tập dữ liệu với một tập hợp các tính năng. Một điểm chuẩn như vậy sẽ hướng dẫn bạn trong việc sử dụng lựa chọn tính năng. Bạn sẽ cần hướng dẫn như vậy vì có nhiều tùy chọn (ví dụ: số lượng tính năng cần chọn, thuật toán chọn tính năng) vì mục tiêu thường là mục đích và không phải là lựa chọn tính năng nên phản hồi cách xa ít nhất một bước.


Cảm ơn rất nhiều. Nhưng đối với một bộ phân loại phi tuyến tính như rừng ngẫu nhiên, nó cũng yêu cầu các biến dự đoán độc lập với nhau? Tôi đoán là không nhưng có thể sai. Làm thế nào các mối tương quan hướng dẫn lựa chọn tính năng?
LUSAQX

Rừng ngẫu nhiên là một tập hợp các cây đối phó tốt với biến phụ thuộc. Đó là vì trong mỗi nút trong cây, tập dữ liệu được điều chỉnh bởi tất cả các biến ở trên nó. Vấn đề là việc trồng cây là heuristic nên việc lựa chọn biến trên có thể không được tối ưu.
DaL

Mối tương quan chỉ so sánh các cặp biến và do đó không thể cung cấp cho bạn bức tranh đầy đủ. Mặt khác, bạn nhận được kết quả bằng O (n ^ 2) chứ không phải O (2 ^ n) ... Hướng dẫn thường dành riêng cho tập dữ liệu nên tôi thấy khó giải thích theo cách này. Một số ví dụ là loại bỏ các biến là dư thừa (rất tương quan với các biến khác). Kiểm tra sức mạnh của mối tương quan có thể cho biết bạn có thể sử dụng một mô hình nhỏ hay sẽ cần thiết để sử dụng nhiều người học yếu. Xác định tập hợp con không quá tương quan với nhau có thể cho thấy việc đồng đào tạo sẽ hữu ích.
DaL


0

Có, lựa chọn tính năng là một trong những nhiệm vụ quan trọng nhất đối với các vấn đề về máy học, sau khi thực hiện sắp xếp dữ liệu và dọn dẹp. bạn có thể tìm thấy các chức năng thực hiện quy trình lựa chọn tính năng bằng cách sử dụng tính năng quan trọng của XGBOOST tại đây.

https://github.com/abhisheksharma4194/Machine-learning

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.