Làm rừng ngẫu nhiên quá sức?


24

Tôi đã đọc xung quanh về Khu rừng ngẫu nhiên nhưng tôi thực sự không thể tìm thấy câu trả lời dứt khoát về vấn đề thừa. Theo bài báo gốc của Breiman, họ không nên quá phù hợp khi tăng số lượng cây trong rừng, nhưng dường như không có sự đồng thuận về điều này. Điều này đang tạo cho tôi khá nhiều nhầm lẫn về vấn đề này.

Có lẽ ai đó chuyên gia hơn tôi có thể cho tôi một câu trả lời cụ thể hơn hoặc chỉ cho tôi đi đúng hướng để hiểu rõ hơn vấn đề.


3
Tất cả các thuật toán sẽ phù hợp ở một mức độ nào đó. Đây không phải là về việc chọn một cái gì đó không phù hợp, mà là xem xét cẩn thận lượng quá mức và hình thức của vấn đề bạn đang giải quyết để tối đa hóa các số liệu phù hợp hơn.
indico

1
ISTR rằng Breiman đã có một bằng chứng dựa trên Luật số lượng lớn. Có ai đó đã phát hiện ra một lỗ hổng trong bằng chứng đó?
JenSCDC

@AndyBlankertz ISTR = internetslang.com/ISTR-meaning-def định.asp ?
Hack-R

Câu trả lời:


22

Mỗi thuật toán ML có độ phức tạp cao có thể vượt quá. Tuy nhiên, OP đang hỏi liệu một RF sẽ không phù hợp khi tăng số lượng cây trong rừng.

Nói chung, các phương pháp tập hợp làm giảm phương sai dự đoán gần như không có gì, cải thiện độ chính xác của đoàn. Nếu chúng ta xác định phương sai của lỗi tổng quát hóa dự kiến ​​của một mô hình ngẫu nhiên riêng lẻ là:

Từ đây , phương sai của lỗi tổng quát hóa dự kiến ​​của một bản hòa tấu tương ứng với:

trong đó p(x)hệ số tương quan của Pearson giữa các dự đoán của hai mô hình ngẫu nhiên được đào tạo trên cùng một dữ liệu từ hai hạt giống độc lập. Nếu chúng ta tăng số lượng DT trong RF, lớn hơn M, phương sai của đoàn sẽ giảm khi ρ(x)<1. Do đó, phương sai của một nhóm là nhỏ hơn hoàn toàn so với phương sai của một mô hình riêng lẻ.

Tóm lại, việc tăng số lượng các mô hình ngẫu nhiên riêng lẻ trong một nhóm sẽ không bao giờ làm tăng lỗi tổng quát hóa.


1
Đó chắc chắn là những gì Leo Breiman và lý thuyết nói, nhưng theo kinh nghiệm có vẻ như họ chắc chắn làm quá sức. Ví dụ, tôi hiện có một mô hình với CV MSE 10 lần là 0,02 nhưng khi được đo dựa trên sự thật cơ bản thì CV MSE là .4. OTOH nếu tôi giảm độ sâu của cây và số cây, hiệu suất mô hình sẽ cải thiện đáng kể.
Hack-R

4
Nếu bạn giảm độ sâu của cây là một trường hợp khác bởi vì bạn đang thêm chính quy, điều này sẽ làm giảm quá mức. Cố gắng vẽ đồ thị MSE khi bạn tăng số lượng cây trong khi vẫn giữ các tham số còn lại không thay đổi. Vì vậy, bạn có MSE trong trục y và num_tress trong trục x. Bạn sẽ thấy rằng khi thêm nhiều cây, lỗi sẽ giảm nhanh, và sau đó nó có một cao nguyên; nhưng nó sẽ không bao giờ tăng
tashuhka

9

Bạn có thể muốn kiểm tra xác thực chéo - một trang web stachexchange cho nhiều thứ, bao gồm cả học máy.

Đặc biệt, câu hỏi này (với cùng một tiêu đề) đã được trả lời nhiều lần. Kiểm tra các liên kết sau: /stats//search?q=random+forest+overfit

Nhưng tôi có thể cung cấp cho bạn câu trả lời ngắn gọn cho nó: vâng, nó quá phù hợp và đôi khi bạn cần kiểm soát sự phức tạp của cây trong rừng hoặc thậm chí cắt tỉa khi chúng mọc quá nhiều - nhưng điều này phụ thuộc vào thư viện bạn sử dụng xây dựng rừng. Ví dụ: trong randomForestR bạn chỉ có thể kiểm soát độ phức tạp


3
  1. Rừng ngẫu nhiên làm quá sức.
  2. Rừng ngẫu nhiên không làm tăng lỗi tổng quát hóa khi thêm nhiều cây vào mô hình. Phương sai tổng quát hóa sẽ bằng không với nhiều cây được sử dụng.

Tôi đã thực hiện một thí nghiệm rất đơn giản. Tôi đã tạo dữ liệu tổng hợp:

y = 10 * x + noise

Tôi đã đào tạo hai mô hình Rừng ngẫu nhiên:

  • một với đầy đủ cây
  • một với những cây được cắt tỉa

Mô hình với cây đầy đủ có lỗi tàu thấp hơn nhưng lỗi thử nghiệm cao hơn mô hình với cây bị cắt tỉa. Câu trả lời của cả hai mô hình:

phản hồi

Đó là bằng chứng rõ ràng của quá mức. Sau đó, tôi lấy siêu tham số của mô hình quá mức và kiểm tra lỗi trong khi thêm ở mỗi bước 1 cây. Tôi có cốt truyện sau:

trồng cây

Như bạn có thể thấy lỗi overfit không thay đổi khi thêm nhiều cây nhưng mô hình bị quá mức. Đây là liên kết cho thí nghiệm tôi đã thực hiện.


1

CƠ SỞ CẤU TRÚC CẤU TRÚC -> RỦI RO OOB

Tôi đã tìm thấy trường hợp thú vị của RF quá mức trong thực hành công việc của tôi. Khi dữ liệu được cấu trúc trang phục RF trên các quan sát OOB.

Chi tiết :

Tôi cố gắng dự đoán giá điện trên thị trường điện tại mỗi giờ (mỗi hàng tập dữ liệu chứa giá và thông số hệ thống (tải, công suất, v.v.) cho một giờ đó).
Giá điện được tạo ra theo đợt (24 giá được tạo ra trên thị trường điện trong một lần cố định trong một thời điểm).
Vì vậy, OOB obs cho mỗi cây là tập hợp con ngẫu nhiên của bộ giờ, nhưng nếu bạn dự đoán trong 24 giờ tới, bạn sẽ làm tất cả cùng một lúc (trong khoảnh khắc đầu tiên bạn có được tất cả các tham số hệ thống, sau đó bạn dự đoán 24 giá, sau đó sẽ có bản sửa lỗi tạo ra những mức giá đó), do đó dễ dàng hơn để đưa ra dự đoán OOB, sau đó cho cả ngày hôm sau. Sự quan sát của OOB không được bao gồm trong các khối 24 giờ, nhưng phân tán đồng đều, vì có sự tự tương quan các lỗi dự đoán, việc dự đoán giá sẽ dễ dàng hơn trong một giờ bị thiếu sau đó cho toàn bộ khối giờ bị thiếu.

dễ dự đoán hơn trong trường hợp tự tương quan lỗi: đã
biết, đã biết, dự đoán, đã biết, dự đoán - trường hợp OBB
khó hơn: đã
biết, đã biết, đã biết, dự đoán, dự đoán - trường hợp dự đoán trong thế giới thực

Tôi hy vọng nó thú vị

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.