Cắt bớt và che phủ quá mức
Bằng cách sử dụng thuật toán được mô tả ở trên, chúng ta có thể huấn luyện một cây quyết định giúp phân loại hoàn hảo các ví dụ huấn luyện, giả sử các ví dụ tách biệt được. Tuy nhiên, nếu tập dữ liệu chứa độ nhiễu, cây này sẽ dùng quá nhiều dữ liệu và cho thấy kết quả kiểm thử độ chính xác kém.
Hình dưới đây cho thấy một tập dữ liệu nhiễu có mối quan hệ tuyến tính giữa đặc điểm x và nhãn y. Hình này cũng cho thấy cây quyết định được huấn luyện trên tập dữ liệu này mà không cần bất kỳ quy tắc chuẩn hoá nào. Mô hình này dự đoán chính xác tất cả các ví dụ huấn luyện (thông tin dự đoán của mô hình khớp với các ví dụ huấn luyện). Tuy nhiên, trên một tập dữ liệu mới có chứa cùng một mẫu tuyến tính và một thực thể nhiễu khác, mô hình sẽ hoạt động kém hiệu quả.
Hình 12. Một tập dữ liệu gây nhiễu.
Để hạn chế việc điều chỉnh quá mức cây quyết định, hãy áp dụng một hoặc cả hai tiêu chí chính quy sau đây trong khi huấn luyện cây quyết định:
- Đặt độ sâu tối đa: Ngăn cây quyết định phát triển vượt quá độ sâu tối đa, chẳng hạn như 10.
- Đặt số lượng ví dụ tối thiểu trong lá: Một lá có ít hơn một số lượng ví dụ nhất định sẽ không được xem xét để tách.
Hình sau đây minh hoạ mức độ ảnh hưởng của số lượng ví dụ tối thiểu khác nhau cho mỗi lá. Mô hình này chụp ít tạp âm hơn.
Hình 13. Số lượng ví dụ tối thiểu khác nhau trên mỗi lá.
Bạn cũng có thể điều chỉnh sau quá trình huấn luyện bằng cách chọn lọc (cắt bớt) một số nhánh, tức là bằng cách chuyển đổi một số nút không phải lá thành lá. Một giải pháp phổ biến để chọn các nhánh cần xoá là sử dụng tập dữ liệu xác thực. Nghĩa là, nếu việc xoá một nhánh cải thiện chất lượng của mô hình trên tập dữ liệu xác thực, thì nhánh đó sẽ bị xoá.
Hình vẽ sau đây minh hoạ ý tưởng này. Ở đây, chúng tôi sẽ kiểm tra xem độ chính xác xác thực của cây quyết định có được cải thiện hay không nếu nút màu xanh lục không có lá được chuyển thành một lá (tức là việc cắt giảm các nút màu cam).
Hình 14. Cắt một điều kiện và các phần tử con của điều kiện đó thành một chiếc lá.
Hình sau đây minh hoạ hiệu quả của việc sử dụng 20% tập dữ liệu để xác thực để cắt giảm cây quyết định:
Hình 15. Sử dụng 20% tập dữ liệu để cắt bỏ cây quyết định.
Lưu ý rằng việc sử dụng tập dữ liệu xác thực sẽ làm giảm số lượng ví dụ có sẵn để huấn luyện ban đầu cây quyết định.
Nhiều người tạo mô hình áp dụng nhiều tiêu chí. Ví dụ: bạn có thể thực hiện tất cả thao tác sau:
- Áp dụng số lượng ví dụ tối thiểu cho mỗi lá.
- Áp dụng độ sâu tối đa để hạn chế sự phát triển của cây quyết định.
- Cắt bỏ cây quyết định.
- Số lượng ví dụ tối thiểu là 5 (
min_examples = 5
) - 10% tập dữ liệu huấn luyện được giữ lại để xác thực (
validation_ratio = 0.1
).
validation_ratio=0.0
.
Các tiêu chí đó đưa ra các siêu tham số mới cần được điều chỉnh (ví dụ: độ sâu cây tối đa), thường là bằng tính năng điều chỉnh siêu tham số tự động. Cây quyết định thường đủ nhanh để huấn luyện sử dụng tính năng điều chỉnh siêu tham số bằng tính năng xác thực chéo. Ví dụ: trên tập dữ liệu có ví dụ "n":
- Chia các ví dụ huấn luyện thành các nhóm p không chồng chéo nhau. Ví dụ:
p=10
. - Đối với tất cả các giá trị siêu tham số có thể có; ví dụ: độ sâu tối đa trong {3,5,6,7,8,9}, ví dụ tối thiểu trong {5,8,10,20}.
- Hãy đánh giá chất lượng của cây quyết định được huấn luyện trên các nhóm p-1 khác trên mỗi nhóm.
- Điểm đánh giá trung bình của các nhóm.
- Chọn giá trị siêu tham số có kết quả đánh giá trung bình chính xác nhất.
- Huấn luyện cây quyết định cuối cùng bằng cách sử dụng tất cả các ví dụ "n" với các siêu tham số đã chọn.
Trong phần này, chúng ta đã thảo luận về cách cây quyết định hạn chế tình trạng quá mức. Mặc dù có các phương pháp này, nhưng việc thiếu hiệu quả và quá mức là những điểm yếu chính của cây quyết định. Rừng quyết định giới thiệu các phương pháp mới để hạn chế tình trạng quá mức (overfiting) mà chúng ta sẽ xem ở phần sau.
Diễn giải cây quyết định trực tiếp
Cây quyết định rất dễ diễn giải. Tuy nhiên, việc thay đổi ngay cả một vài ví dụ cũng có thể thay đổi hoàn toàn cấu trúc (và cách diễn giải) của cây quyết định.
Do cách xây dựng cây quyết định, phân vùng các ví dụ huấn luyện, người ta có thể sử dụng cây quyết định để diễn giải chính tập dữ liệu (trái ngược với mô hình). Mỗi lá đại diện cho một góc cụ thể của tập dữ liệu.
model.describe()
.
Bạn cũng có thể truy cập và lập biểu đồ cho từng cây thông qua model.get_tree()
.
Hãy xem
hướng dẫn kiểm tra mô hình của YDF để biết thêm thông tin chi tiết.
Tuy nhiên, phần diễn giải gián tiếp cũng cung cấp thông tin.