Trong RandomForestClassifier
giá trị mặc định cho max_features
là sqrt(n_features)
và trong RandomForestRegressor
nó là n_features
, bất kỳ lý do cụ thể nào cho điều đó?Tại sao giá trị mặc định cho max_features trong RandomForestClassifier khác với giá trị trong RandomForestRegressor?
5
A
Trả lời
6
Đây là một heuristic dựa trên kết quả thực nghiệm. Trung bình, nó có vẻ là một lựa chọn tốt hơn, như là một thiết lập mặc định, để thiết lập max_features = sqrt (n_features) để phân loại và max_features = n_features cho hồi quy.
dựa trên kinh nghiệm này xuất phát từ bài viết này: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf
Trong mọi trường hợp, nó là tất nhiên luôn luôn là một ý tưởng tốt hơn chéo Xác thực lại thông số này.
0
Lưu ý rằng bạn có thể cần phải thiết lập:
max_features = 'sqrt'
Thay vì đề nghị:
max_features=sqrt(n_features)
tùy theo phiên bản bạn đang chạy.
Cảm ơn bạn đã tham khảo! Nếu tôi đang sử dụng rừng ngẫu nhiên với max_features = n_features và bootstrap = False, sẽ đúng khi nói rằng về cơ bản nó hoạt động giống như một cây quyết định duy nhất (chỉ với nhiều chi phí tính toán) – d1337
Vâng, trong trường hợp đó tất cả các cây là tương tự (modulo một số mối quan hệ có thể xảy ra khi tìm kiếm các phần tách tốt nhất). –
Nếu max_features = n_features, thì phương thức không gian con ngẫu nhiên thậm chí không được sử dụng? –