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.

Mã YDF
Bạn có thể bật tính năng huấn luyện mà không cần thay thế bằng cách gán giá trị sau trong YDF: 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 đỏ).

Ba nút, tất cả đều hiển thị 5 tính năng. Nút gốc và một trong các nút con của nút đó kiểm thử 3 trong số 5 tính năng. Nút con khác kiểm thử 2 trong số 5 tính năng.

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.

Mã YDF
Trình điều chỉnh của YDF là một cách đơn giản để điều chỉnh các tham số siêu dữ liệu. Hãy xem Hướng dẫn điều chỉnh YDF để biết thêm thông tin chi tiết.

Độ 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.

3 hình minh hoạ. Hình minh hoạ đầu tiên, được gắn nhãn Ground Truth (Sự thật cơ bản), là một hình elip hoàn hảo. Hình minh hoạ thứ hai, có nhãn Cây quyết định đã được cắt bớt, nằm giữa hình elip và hình chữ nhật. Hình minh hoạ thứ ba, được gắn nhãn Rừng ngẫu nhiên, không hoàn toàn là hình elip, nhưng gần với hình elip hơn so với hình minh hoạ được gắn nhãn Cây quyết định đã cắt bớt.

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ả.

Ba hình elip rất nhiễu.

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.

Biểu đồ độ chính xác so với số lượng cây quyết định được mô tả trong đoạn trước.

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.