Lựa chọn tính năng với Rừng ngẫu nhiên


16

Tôi có một bộ dữ liệu với hầu hết các biến tài chính (120 tính năng, ví dụ 4k) hầu hết có tương quan cao và rất ồn (ví dụ: các chỉ số kỹ thuật) vì vậy tôi muốn chọn khoảng 20-30 để sử dụng sau này với đào tạo mô hình (phân loại nhị phân - tăng giảm).

Tôi đã suy nghĩ về việc sử dụng rừng ngẫu nhiên để xếp hạng tính năng. Có phải là một ý tưởng tốt để sử dụng chúng đệ quy? Ví dụ: giả sử trong vòng đầu tiên tôi giảm 20% tệ nhất, thứ hai cũng như vậy cho đến khi tôi nhận được số lượng tính năng mong muốn. Tôi có nên sử dụng xác nhận chéo với RF? (Đó là trực giác đối với tôi không sử dụng CV vì đó là khá nhiều những gì RF đã làm.)

Ngoài ra, nếu tôi đi với các khu rừng ngẫu nhiên, tôi có nên sử dụng chúng làm phân loại cho nhị phân hoặc hồi quy cho mức tăng / giảm thực tế để có được các tính năng quan trọng không?

Nhân tiện, các mô hình tôi muốn thử sau khi lựa chọn tính năng là: SVM, mạng lưới thần kinh, hồi quy trọng số cục bộ và rừng ngẫu nhiên. Tôi chủ yếu làm việc với Python.


2
muốn kết nối để trao đổi cái nhìn sâu sắc. tôi đang làm việc trên một cái gì đó tương tự
user670186

Có bất kỳ lý do tại sao không ai đề nghị chỉ sử dụng built-inthuộc tính của RandomForestClassifier trong sklearnđược gọi là feature_importances_....? Bạn sẽ thấy nó trong liên kết.
Candic3

Coi chừng vì multicollinearitycó thể bóp méo tính năng quan trọng và lựa chọn tính năng. kiểm tra nó ở đây
Candic3

Cảnh giác với các thuật toán mặc định: parrt.cs.usfca.edu/doc/rf-importance/index.html
Tim

Câu trả lời:


12

Để chọn tính năng, chúng tôi cần một chức năng cho điểm cũng như phương pháp tìm kiếm để tối ưu hóa chức năng cho điểm.

Bạn có thể sử dụng RF làm phương pháp xếp hạng tính năng nếu bạn xác định một số điểm quan trọng có liên quan. RF sẽ chọn các tính năng dựa trên ngẫu nhiên với phương pháp thay thế và nhóm mọi tập hợp con trong một không gian con riêng biệt (được gọi là không gian con ngẫu nhiên). Một chức năng ghi điểm quan trọng có thể dựa trên việc gán độ chính xác của mỗi cây cho mọi tính năng trong không gian con ngẫu nhiên đó. Sau đó, bạn làm điều này cho mỗi cây riêng biệt. Vì, nguồn tạo ra các không gian con là ngẫu nhiên, bạn có thể đặt ngưỡng để tính điểm quan trọng.

Tóm lược:

Bước 1 : Nếu tính năng X2 xuất hiện ở 25% số cây, thì hãy chấm điểm. Mặt khác, không xem xét xếp hạng tính năng vì chúng tôi không có đủ thông tin về hiệu suất của tính năng

Bước2 : Bây giờ, chỉ định điểm hiệu suất của mỗi cây trong đó X2 xuất hiện cho X2 và tính điểm trung bình. Ví dụ: perf (Tree1) = 0,85 perf (Tree2) = 0,70 perf (Tree3) = 0,30

Khi đó, tầm quan trọng của tính năng X2 = (0,85 + 0,70 + 0,30) / 3 = 0,6167

Bạn có thể xem xét cài đặt nâng cao hơn bằng cách bao gồm độ sâu phân chia của tính năng hoặc giá trị tăng thông tin trong cây quyết định. Có thể có nhiều cách để thiết kế chức năng chấm điểm dựa trên cây quyết định và RF.

Về phương pháp tìm kiếm , phương pháp đệ quy của bạn có vẻ hợp lý như một cách để chọn những thứ được xếp hạng hàng đầu.

Cuối cùng, bạn có thể sử dụng RF làm phân loại hoặc mô hình hồi quy trong việc chọn các tính năng của mình vì cả hai đều cung cấp cho bạn điểm hiệu suất. Điểm số được biểu thị vì nó dựa trên các mẫu OOB ngoài túi và bạn có thể không xem xét xác nhận chéo trong một cài đặt đơn giản hơn.


Cảm ơn các đầu vào. Đã muốn chỉ ra rằng (0.85+0.70+0.30)/3 = 0.6167.
Hendy

5
Nếu bạn đang làm việc với python, bạn có thể trực tiếp sử dụng tầm quan trọng của biến được tính trong sklearn khi gọi một khu rừng ngẫu nhiên.
Cào

5

Tôi có một bộ dữ liệu với hầu hết các biến tài chính (120 tính năng, ví dụ 4k) hầu hết có tương quan cao và rất ồn (ví dụ: các chỉ số kỹ thuật) vì vậy tôi muốn chọn khoảng 20-30 để sử dụng sau này với đào tạo mô hình (phân loại nhị phân - tăng giảm).

Các ví dụ 4k thực sự không đủ để ước tính bất cứ điều gì rất phức tạp - bạn cần sử dụng các mô hình đơn giản nhất có thể (hồi quy tuyến tính / logistic, svm tuyến tính) và số lượng biến nhỏ

Cho rằng dữ liệu của bạn ồn ào và tương quan, PCA có lẽ là lựa chọn tốt nhất của bạn [nó xác định hiệu quả các tín hiệu phổ biến trung bình trên các chỉ số riêng lẻ]

Chuẩn hóa L2 (đối với mô hình tuyến tính) cũng sẽ giúp lấy trung bình nhiễu [ví dụ: nếu bạn có n bản sao nhiễu của cùng một tín hiệu, chính quy hóa l2 sẽ khuyến khích các trọng số giống nhau - lấy trung bình các biến n đó]

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.