Rừng ngẫu nhiên
Rừng ngẫu nhiên (RF) là một tập hợp các cây quyết định, trong đó mỗi cây quyết định được huấn luyện bằng một nhiễu ngẫu nhiên cụ thể. Rừng ngẫu nhiên là hình thức phổ biến nhất của tập hợp cây quyết định. Bài này thảo luận một số kỹ thuật để tạo cây quyết định độc lập nhằm cải thiện khả năng xây dựng một rừng ngẫu nhiên hiệu quả.
Đóng gói
Bagging (bootstrap aggregating) có nghĩa là huấn luyện từng cây quyết định trên một tập hợp con ngẫu nhiên của các ví dụ trong tập huấn luyện. Nói cách khác, mỗi cây quyết định trong rừng ngẫu nhiên được huấn luyện trên một nhóm con khác các ví dụ.
Việc đóng gói là đặc biệt. Mỗi cây quyết định được huấn luyện trên cùng một số lượng ví dụ như trong tập huấn luyện ban đầu. Ví dụ: nếu tập huấn luyện ban đầu chứa 60 ví dụ, thì mỗi cây quyết định được huấn luyện trên 60 ví dụ. Tuy nhiên, tính năng gộp chỉ huấn luyện từng cây quyết định trên một nhóm con (thường là 67%) của các ví dụ đó. Vì vậy, một số trong số 40 ví dụ đó trong tập hợp con phải được sử dụng lại trong khi huấn luyện một cây quyết định nhất định. Việc sử dụng lại này được gọi là huấn luyện "với việc thay thế".
Ví dụ: Bảng 6 cho thấy cách tính toán túi có thể phân phối 6 ví dụ trên 3 cây quyết định. Lưu ý những điều sau:
- Mỗi cây quyết định được huấn luyện trên tổng cộng 6 ví dụ.
- Mỗi cây quyết định được huấn luyện trên một tập hợp ví dụ khác nhau.
- Mỗi cây quyết định sử dụng lại một số ví dụ nhất định. Ví dụ: ví dụ #4 được sử dụng hai lần trong quá trình huấn luyện cây quyết định 1; do đó, trọng số đã học của ví dụ #4 được tăng gấp đôi một cách hiệu quả trong cây quyết định 1.
Bảng 6. Gói sáu ví dụ huấn luyện trên ba cây quyết định. Mỗi số đại diện cho số lần lặp lại một ví dụ huấn luyện nhất định (#1-6) trong tập dữ liệu huấn luyện của một cây quyết định nhất định (1-3).
ví dụ về việc huấn luyện | ||||||
---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | #6 | |
tập dữ liệu gốc | 1 | 1 | 1 | 1 | 1 | 1 |
cây quyết định 1 | 1 | 1 | 0 | 2 | 1 | 1 |
cây quyết định 2 | 3 | 0 | 1 | 0 | 2 | 0 |
cây quyết định 3 | 0 | 1 | 3 | 1 | 0 | 1 |
Trong phương pháp gộp dữ liệu, mỗi cây quyết định hầu như luôn được huấn luyện dựa trên tổng số ví dụ trong tập huấn luyện ban đầu. Việc huấn luyện từng cây quyết định trên nhiều ví dụ hơn hoặc ít ví dụ hơn có xu hướng làm giảm chất lượng của rừng ngẫu nhiên.
Mặc dù không có trong bài báo gốc về rừng ngẫu nhiên, nhưng việc lấy mẫu các ví dụ đôi khi được thực hiện "không thay thế"; tức là một ví dụ huấn luyện không được xuất hiện nhiều lần trong một tập huấn luyện cây quyết định. Ví dụ: trong bảng trước, tất cả giá trị đều là 0 hoặc 1.
bootstrap_training_dataset=False
Lấy mẫu thuộc tính
Lấy mẫu thuộc tính có nghĩa là thay vì tìm điều kiện tốt nhất trên tất cả các tính năng hiện có, chỉ một tập hợp con ngẫu nhiên của các tính năng được kiểm thử tại mỗi nút. Tập hợp các tính năng được kiểm thử được lấy mẫu ngẫu nhiên tại mỗi nút của cây quyết định.
Cây quyết định sau đây minh hoạ việc lấy mẫu thuộc tính / tính năng. Ở đây, một cây quyết định được huấn luyện trên 5 đặc điểm (f1-f5). Các nút màu xanh dương đại diện cho các tính năng đã được kiểm thử, còn các nút màu trắng là các tính năng chưa được kiểm thử. Điều kiện này được tạo từ các tính năng được kiểm thử tốt nhất (được biểu thị bằng đường viền màu đỏ).
Hình 21. Lấy mẫu thuộc tính.
Tỷ lệ lấy mẫu thuộc tính là một tham số điều chỉnh quan trọng. Hình trước sử dụng tỷ lệ ~⅗. Theo mặc định, nhiều phương thức triển khai rừng ngẫu nhiên kiểm thử 1/3 số lượng đặc điểm cho hồi quy và sqrt(số lượng đặc điểm) cho hoạt động phân loại.
Trong TF-DF, các tham số siêu dữ liệu sau đây kiểm soát hoạt động lấy mẫu thuộc tính:
num_candidate_attributes
num_candidate_attributes_ratio
Ví dụ: nếu num_candidate_attributes_ratio=0.5
, một nửa số tính năng sẽ được kiểm thử tại mỗi nút.
Tắt tính năng chuẩn hoá cây quyết định
Các cây quyết định riêng lẻ trong rừng ngẫu nhiên được huấn luyện mà không cần cắt tỉa. (Xem phần Thừa khớp và cắt tỉa). Điều này tạo ra các cây quá phức tạp với chất lượng dự đoán kém. Thay vì điều chỉnh từng cây riêng lẻ, các cây được kết hợp để tạo ra kết quả dự đoán tổng thể chính xác hơn.
Chúng tôi dự kiến độ chính xác của quá trình huấn luyện và kiểm thử của một rừng ngẫu nhiên sẽ khác nhau. Độ chính xác của quá trình huấn luyện của rừng ngẫu nhiên thường cao hơn nhiều (đôi khi bằng 100%). Tuy nhiên, độ chính xác huấn luyện rất cao trong rừng ngẫu nhiên là bình thường và không cho thấy rằng rừng ngẫu nhiên được điều chỉnh quá mức.
Hai nguồn ngẫu nhiên (gói dữ liệu và lấy mẫu thuộc tính) đảm bảo tính độc lập tương đối giữa các cây quyết định. Độ độc lập này sẽ khắc phục tình trạng phù hợp quá mức của từng cây quyết định. Do đó, tập hợp không bị phù hợp quá mức. Chúng ta sẽ minh hoạ hiệu ứng không trực quan này trong bài học tiếp theo.
Rừng ngẫu nhiên thuần tuý được huấn luyện mà không có độ sâu tối đa hoặc số lượng quan sát tối thiểu trên mỗi lá. Trong thực tế, việc giới hạn độ sâu tối đa và số lượng quan sát tối thiểu trên mỗi lá sẽ mang lại lợi ích. Theo mặc định, nhiều rừng ngẫu nhiên sử dụng các giá trị mặc định sau:
- độ sâu tối đa khoảng 16
- số lượng quan sát tối thiểu trên mỗi lá là khoảng 5.
Bạn có thể điều chỉnh các tham số siêu dữ liệu này.
Độ rõ của tiếng ồn
Tại sao nhiễu ngẫu nhiên lại cải thiện chất lượng của rừng ngẫu nhiên? Để minh hoạ lợi ích của nhiễu ngẫu nhiên, Hình 22 cho thấy kết quả dự đoán của cây quyết định cổ điển (đã cắt tỉa) và rừng ngẫu nhiên được huấn luyện trên một số ví dụ về vấn đề hai chiều đơn giản có mẫu hình elip.
Các mẫu hình elip nổi tiếng là khó để thuật toán cây quyết định và rừng quyết định học được với các điều kiện được căn chỉnh theo trục, vì vậy, chúng là một ví dụ tốt. Lưu ý rằng cây quyết định đã cắt tỉa không thể có chất lượng dự đoán giống như rừng ngẫu nhiên.
Hình 22. Giá trị thực tế so với kết quả dự đoán do một cây quyết định đã cắt tỉa và kết quả dự đoán do một rừng ngẫu nhiên tạo ra.
Biểu đồ tiếp theo cho thấy kết quả dự đoán của 3 cây quyết định chưa được cắt tỉa đầu tiên của rừng ngẫu nhiên; tức là các cây quyết định đều được huấn luyện bằng cách kết hợp:
- đóng gói
- lấy mẫu thuộc tính
- tắt tính năng cắt bớt
Lưu ý rằng các dự đoán riêng lẻ của 3 cây quyết định này kém hơn so với dự đoán của cây quyết định đã được cắt tỉa trong hình trước. Tuy nhiên, vì các lỗi của từng cây quyết định chỉ có mối tương quan yếu, nên ba cây quyết định kết hợp với nhau để tạo ra các dự đoán hiệu quả.
Hình 23. Ba cây quyết định chưa được cắt tỉa sẽ tạo ra một tập hợp hiệu quả.
Vì cây quyết định của rừng ngẫu nhiên không được cắt tỉa, nên việc huấn luyện rừng ngẫu nhiên không yêu cầu tập dữ liệu xác thực. Trong thực tế, đặc biệt là trên các tập dữ liệu nhỏ, bạn nên huấn luyện mô hình dựa trên tất cả dữ liệu có sẵn.
Khi huấn luyện một rừng ngẫu nhiên, khi thêm nhiều cây quyết định hơn, lỗi gần như luôn giảm; tức là chất lượng của mô hình gần như luôn cải thiện. Có, việc thêm nhiều cây quyết định hơn hầu như luôn giảm lỗi của rừng ngẫu nhiên. Nói cách khác, việc thêm nhiều cây quyết định hơn không thể khiến rừng ngẫu nhiên trở nên phù hợp quá mức. Tại một thời điểm nào đó, mô hình sẽ ngừng cải thiện. Leo Breiman từng nói một câu nổi tiếng rằng: "Rừng ngẫu nhiên không bị phù hợp quá mức khi thêm nhiều cây hơn".
Ví dụ: Biểu đồ sau đây cho thấy kết quả đánh giá kiểm thử của mô hình rừng ngẫu nhiên khi thêm nhiều cây quyết định hơn. Độ chính xác cải thiện nhanh chóng cho đến khi đạt mức ổn định khoảng 0,865. Tuy nhiên, việc thêm nhiều cây quyết định hơn không làm giảm độ chính xác; nói cách khác,mô hình không bị phù hợp quá mức. Hành vi này (hầu hết) luôn đúng và độc lập với các tham số siêu dữ liệu.
Hình 24. Độ chính xác vẫn giữ nguyên khi thêm nhiều cây quyết định vào rừng ngẫu nhiên.