Thuật toán rừng ngẫu nhiên và cây quyết định


14

Một khu rừng ngẫu nhiên là một tập hợp các cây quyết định theo khái niệm đóng bao. Khi chúng ta chuyển từ cây quyết định này sang cây quyết định tiếp theo thì làm thế nào để thông tin học được từ cây quyết định cuối cùng chuyển sang cây quyết định tiếp theo?

Bởi vì, theo sự hiểu biết của tôi, không có gì giống như một mô hình được đào tạo được tạo ra cho mỗi cây quyết định và sau đó được tải trước khi cây quyết định tiếp theo bắt đầu học từ lỗi phân loại sai.

Vì vậy, làm thế nào nó hoạt động?


"Khi chúng ta chuyển từ cây quyết định này sang cây quyết định tiếp theo". Điều này cho thấy một quá trình tuyến tính. Chúng tôi đã xây dựng các triển khai song song trong đó chúng tôi làm việc trên một cây trên mỗi lõi CPU; điều này hoạt động hoàn toàn tốt trừ khi bạn sử dụng một trình tạo số ngẫu nhiên riêng biệt cho mỗi lõi CPU trong đào tạo, tất cả đều có chung một hạt giống. Trong trường hợp đó, bạn có thể kết thúc với rất nhiều cây giống hệt nhau.
MSalters

Câu trả lời:


23

Không có thông tin được truyền giữa các cây. Trong một khu rừng ngẫu nhiên, tất cả các cây được phân phối giống hệt nhau, bởi vì cây được trồng bằng chiến lược ngẫu nhiên giống nhau cho tất cả các cây. Đầu tiên, lấy một mẫu bootstrap của dữ liệu, sau đó phát triển cây bằng cách sử dụng các phần tách từ một tập hợp con các tính năng được chọn ngẫu nhiên. Điều này xảy ra cho từng cây riêng lẻ mà không chú ý đến bất kỳ cây nào khác trong đoàn. Tuy nhiên, các cây được tương quan hoàn toàn nhờ vào từng cây được đào tạo trên một mẫu từ một nhóm dữ liệu đào tạo chung; nhiều mẫu từ cùng một tập dữ liệu sẽ có xu hướng giống nhau, vì vậy các cây sẽ mã hóa một số điểm tương tự đó.

Bạn có thể thấy hữu ích khi đọc phần giới thiệu về các khu rừng ngẫu nhiên từ một văn bản chất lượng cao. Một là "Khu rừng ngẫu nhiên" của Leo Breiman. Ngoài ra còn có một chương về các yếu tố của học thống kê của Hastie et al.

Có thể bạn đã nhầm lẫn các khu rừng ngẫu nhiên với các phương pháp tăng cường như AdaBoost hoặc cây được tăng cường độ dốc. Các phương pháp tăng không giống nhau, bởi vì chúng sử dụng thông tin về Misfit từ các vòng tăng trước đó để thông báo cho vòng tăng tiếp theo. Xem: Rừng ngẫu nhiên là một thuật toán thúc đẩy?


10

Các khu rừng ngẫu nhiên là một tập hợp nhiều cây quyết định được đào tạo độc lập với nhau . Vì vậy, không có khái niệm về đào tạo phụ thuộc tuần tự (đó là trường hợp trong việc tăng cường các thuật toán ). Kết quả của điều này, như đã đề cập trong một câu trả lời khác, có thể thực hiện đào tạo song song các cây.

Bạn có thể muốn biết "ngẫu nhiên" trong rừng ngẫu nhiên đến từ đâu: có hai cách mà tính ngẫu nhiên được đưa vào trong quá trình tìm hiểu cây. Đầu tiên là lựa chọn ngẫu nhiên các điểm dữ liệu được sử dụng để đào tạo từng cây và thứ hai là lựa chọn ngẫu nhiên các tính năng được sử dụng trong việc xây dựng mỗi cây. Vì một cây quyết định duy nhất thường có xu hướng quá phù hợp với dữ liệu, việc tiêm ngẫu nhiên theo cách này dẫn đến việc có một bó cây trong đó mỗi cây có độ chính xác tốt (và có thể phù hợp) trên một tập hợp con khác nhau của dữ liệu huấn luyện có sẵn . Do đó, khi chúng ta lấy trung bình các dự đoán được thực hiện bởi tất cả các cây, chúng ta sẽ quan sát thấy việc giảm quá mức (so với trường hợp đào tạo một cây quyết định duy nhất trên tất cả các dữ liệu có sẵn ).

MN

  1. i=0
  2. MMSi
  3. iTiSTôi
    • quá trình đào tạo cũng giống như đào tạo một cây quyết định ngoại trừ sự khác biệt là tại mỗi nút trong cây chỉ có một lựa chọn ngẫu nhiên các tính năng được sử dụng để phân chia trong nút đó.
  1. i=i+1
  2. i<N

T1T2TN

  • Nếu nó được sử dụng cho một nhiệm vụ hồi quy, hãy lấy trung bình của các dự đoán làm dự đoán cuối cùng của khu rừng ngẫu nhiên.

  • Nếu nó được sử dụng cho một nhiệm vụ phân loại, hãy sử dụng chiến lược bỏ phiếu mềm : lấy trung bình các xác suất được dự đoán bởi các cây cho mỗi lớp, sau đó khai báo lớp có xác suất trung bình cao nhất là dự đoán cuối cùng của rừng ngẫu nhiên.

Hơn nữa, điều đáng nói là có thể huấn luyện cây theo cách phụ thuộc tuần tự và đó chính xác là thuật toán cây tăng cường độ dốc , đây là một phương pháp hoàn toàn khác với rừng ngẫu nhiên.


8

Rừng ngẫu nhiên là một thuật toán đóng gói chứ không phải là một thuật toán thúc đẩy.

Rừng ngẫu nhiên xây dựng cây độc lập bằng cách sử dụng mẫu dữ liệu ngẫu nhiên. Một thực hiện song song là có thể.

Bạn có thể muốn kiểm tra tăng cường độ dốc nơi các cây được xây dựng tuần tự, nơi cây mới cố gắng sửa lỗi đã gây ra trước đó.


6

Vậy nó hoạt động như thế nào?

Rừng ngẫu nhiên là một tập hợp các cây quyết định. Các cây được xây dựng độc lập. Mỗi cây được đào tạo về tập hợp con các tính năng và tập hợp con của một mẫu được chọn thay thế.

Khi dự đoán, giả sử Phân loại, các tham số đầu vào được đưa ra cho từng cây trong rừng và mỗi cây "phiếu" trên phân loại, nhãn có hầu hết phiếu bầu sẽ thắng.

Tại sao nên sử dụng Rừng ngẫu nhiên trên Cây quyết định đơn giản? Xu hướng / Phương sai đánh đổi. Rừng ngẫu nhiên được xây dựng từ những cây đơn giản hơn nhiều khi so sánh với một cây quyết định. Nhìn chung, các khu rừng ngẫu nhiên cung cấp một sự giảm thiểu sai số lớn do phương sai và sự gia tăng nhỏ về sai số do sai lệch.


Nếu chúng ta đang chọn các tính năng khác nhau cho mỗi Cây quyết định, thì việc học theo một bộ tính năng trong Cây quyết định trước sẽ cải thiện như thế nào trong khi chúng ta gửi các giá trị bị phân loại đi trước như đối với Cây quyết định tiếp theo, hoàn toàn có một bộ tính năng mới?
Abhay Raj Singh

3
@AbhayRajSingh - bạn không "gửi các giá trị phân loại sai trước" trong Khu rừng ngẫu nhiên. Như Akavall nói, "Những cái cây được xây dựng độc lập"
Henry

1

Vâng, như các tác giả ở trên đã nói, thuật toán Random Forest là một thuật toán đóng gói, không thúc đẩy.

Đóng bao có thể làm giảm phương sai của phân loại, bởi vì các thuật toán cơ bản, được trang bị trên các mẫu khác nhau và các lỗi của chúng được bù trừ lẫn nhau trong biểu quyết. Đóng bao đề cập đến việc lấy trung bình các phiên bản hơi khác nhau của cùng một mô hình như một phương tiện để cải thiện sức mạnh dự đoán. Để áp dụng đóng bao, chúng tôi chỉ cần xây dựng cây hồi quy B bằng cách sử dụng các bộ huấn luyện khởi động B và lấy trung bình các dự đoán kết quả

Một ứng dụng phổ biến và khá thành công của việc đóng bao là Rừng ngẫu nhiên

Nhưng khi xây dựng các cây quyết định này trong rừng ngẫu nhiên, mỗi lần xem xét phân chia trong cây, một mẫu mdự đoán ngẫu nhiên được chọn làm ứng cử viên tách khỏi nhóm dự đoán p đầy đủ. Việc phân chia chỉ được phép sử dụng một trong những mdự đoá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.