Câu hỏi thực tế về điều chỉnh Rừng ngẫu nhiên


65

Câu hỏi của tôi là về Rừng ngẫu nhiên. Khái niệm về phân loại đẹp này đối với tôi rõ ràng, nhưng vẫn còn rất nhiều câu hỏi sử dụng thực tế. Thật không may, tôi đã không tìm thấy bất kỳ hướng dẫn thực tế nào về RF (Tôi đã tìm kiếm một cái gì đó như "Hướng dẫn thực hành về đào tạo máy Boltzman bị hạn chế" của Geoffrey Hinton, nhưng cho Rừng ngẫu nhiên!

Làm thế nào một người có thể điều chỉnh RF trong thực tế?

Có đúng là số lượng cây lớn hơn luôn luôn tốt hơn? Có giới hạn hợp lý (ngoại trừ khả năng tính toán của khóa học) về việc tăng số lượng cây và cách ước tính nó cho tập dữ liệu đã cho không?

Độ sâu của cây thì sao? Làm thế nào để chọn một cái hợp lý? Có ý nghĩa trong việc thử nghiệm các cây có chiều dài khác nhau trong một khu rừng và hướng dẫn cho điều đó là gì?

Có bất kỳ thông số nào khác đáng xem khi đào tạo RF không? Algos để xây dựng cây riêng lẻ có thể là?

Khi họ nói RF có khả năng chống lại quá mức, điều đó đúng như thế nào?

Tôi sẽ đánh giá cao bất kỳ câu trả lời và / hoặc liên kết đến các hướng dẫn hoặc bài viết mà tôi có thể đã bỏ lỡ trong khi tìm kiếm.


Để điều chỉnh perfoamnce, xem thêm SO: "Cách cải thiện hiệu suất ngẫu nhiên"
smci

Câu trả lời:


43

Tôi không phải là một nhân vật có thẩm quyền, vì vậy hãy xem xét các ghi chú của học viên ngắn gọn này:

Nhiều cây luôn tốt hơn với lợi nhuận giảm dần. Cây sâu hơn hầu như luôn luôn là đối tượng tốt hơn để yêu cầu nhiều cây hơn cho hiệu suất tương tự.

Hai điểm trên trực tiếp là kết quả của sự đánh đổi sai lệch. Cây sâu hơn làm giảm sự thiên vị; nhiều cây làm giảm phương sai.

Thông số siêu quan trọng nhất là có bao nhiêu tính năng để kiểm tra cho mỗi lần phân tách. Càng có nhiều tính năng vô dụng, bạn càng nên thử nhiều tính năng hơn. Điều này cần điều chỉnh. Bạn có thể điều chỉnh nó thông qua các ước tính OOB nếu bạn chỉ muốn biết hiệu suất của mình trên dữ liệu đào tạo của mình và không có kết nghĩa (~ các biện pháp lặp đi lặp lại). Mặc dù đây là tham số quan trọng nhất, nhưng tối ưu của nó vẫn thường khá gần với mặc định đề xuất ban đầu (sqrt (p) hoặc (p / 3) để phân loại / hồi quy).

Nghiên cứu gần đây cho thấy bạn thậm chí không cần thực hiện tìm kiếm phân tách toàn diện bên trong một tính năng để có hiệu suất tốt. Chỉ cần thử một vài điểm cắt cho mỗi tính năng được chọn và di chuyển trên. Điều này làm cho đào tạo thậm chí nhanh hơn. (~ Rừng / Cây cực kỳ ngẫu nhiên).


Một vài lưu ý khác: trong thực tế tôi thường xác nhận sự hội tụ bằng cách so sánh các dự đoán từ một nửa số cây với nhau. Theo như quá mức, đó là một chức năng của những gì bạn đang cố gắng khái quát hóa. Họ sẽ không phù hợp nếu bạn đang đào tạo một mẫu đại diện, nhưng điều đó hiếm khi làm thế nào nó thực sự hoạt động.
Shea Parkes

'Cây sâu hơn = tốt hơn, tất cả các hằng số khác' có đúng với dữ liệu cực kỳ ồn ào với cấu trúc phụ thuộc thay đổi theo thời gian, trong đó mối quan hệ tuyến tính là mạnh mẽ nhất để không thay đổi giữa tập huấn luyện và tập kiểm tra không?
Jase

Tôi có thể thấy tiềm năng cho cây nông sẽ tốt hơn nếu bạn gặp tình huống chỉ nên học các mối quan hệ nông cạn, nhưng tôi thực sự muốn sử dụng bằng chứng thực nghiệm để chứng minh điều đó (và không có thời gian để làm việc đó). Nếu bạn tin hoặc có bằng chứng cho thấy các mối quan hệ tuyến tính là kiên cường nhất, thì tôi sẽ cân nhắc mạnh mẽ một cái gì đó không dựa trên cây. Có lẽ mạng lưới thần kinh với bỏ qua các lớp?
Shea Parkes

Hãy giả sử rằng bạn có một bộ dữ liệu với 3 tính năng có liên quan và 100 tính năng là nhiễu trắng và 50 biểu dữ liệu. Nhưng bạn không biết đâu là tiếng ồn trắng và có liên quan trước thời hạn, bạn chỉ biết rằng dữ liệu của bạn quá ồn nên đây là trường hợp. Rõ ràng cây cực kỳ nông với một cây lớn mtrylà tốt hơn, không cần bằng chứng hoặc bằng chứng thực nghiệm để thấy điều này.
Jase

22
  • Số lượng cây : càng lớn càng tốt: có. Một cách để đánh giá và biết khi nào nên dừng là theo dõi tỷ lệ lỗi của bạn trong khi xây dựng khu rừng của bạn (hoặc bất kỳ tiêu chí đánh giá nào khác bạn có thể sử dụng) và phát hiện khi nào nó hội tụ. Bạn có thể làm điều đó trên chính bộ học tập hoặc, nếu có, trên một bộ kiểm tra độc lập. Ngoài ra, cần lưu ý rằng số lượng nút kiểm tra trong cây của bạn bị giới hạn trên bởi số lượng đối tượng, vì vậy nếu bạn có nhiều biến và không có nhiều đối tượng đào tạo, rừng lớn hơn sẽ được khuyến nghị để tăng cơ hội đánh giá tất cả các mô tả ít nhất một lần trong khu rừng của bạn.

  • Độ sâu của cây : có một số cách để kiểm soát độ sâu của cây của bạn (giới hạn độ sâu tối đa, giới hạn số nút, giới hạn số lượng đối tượng cần tách, ngừng phân tách nếu việc phân tách không đủ cải thiện sự phù hợp, ... ). Hầu hết thời gian, nên cắt tỉa (giới hạn độ sâu) của cây nếu bạn đang xử lý dữ liệu ồn ào. Cuối cùng, bạn có thể sử dụng các cây được phát triển đầy đủ của mình để tính toán hiệu suất của các cây ngắn hơn vì đây là một "tập hợp con" của các cây được phát triển đầy đủ.

  • Có bao nhiêu tính năng để kiểm tra tại mỗi nút : xác thực chéo trải nghiệm của bạn với một loạt các giá trị (bao gồm cả các giá trị được đề xuất), bạn nên có được đường cong hiệu suất và có thể xác định tối đa chỉ ra đâu là giá trị tốt nhất cho tham số này + Shea Parkes trả lời.

  • Shea Parkes đã đề cập đến Extra-Plants, đây là bài báo gốc mô tả chi tiết về phương pháp: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf

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.