CẮT TỈA CÂY QUYẾT ĐỊNH

Một phần của tài liệu Một số phương pháp xây dựng cây quyết định trong khai phá dữ liệu (Trang 59)

Khi xây dựng cây quyết định bằng cách phát triển nhánh cây đầy đủ theo chiều sâu để phân lớp hoàn toàn các mẫu huấn luyện như thuật toán CLS và ID3, đôi khi gặp khó khăn trong các trường hợp dữ liệu bị nhiễu hoặc số lượng các mẫu huấn luyện quá nhỏ không đủ để đại diện cho một quy luật. Nghĩa là chúng ta có thể tạo nên các nút có số lượng mẫu quá nhỏ, không đủ tốt cho cây quyết định gây nên tình trạng over-fitting[10].

Để giải quyết vấn đề này, người ta thường phải tiến hành cắt tỉa cây quyết định, với cách thức sử dụng có thể là cắt tỉa trước (prepruning) hay cắt tỉa sau (postpruning). Chiến thuật cắt tỉa trước là chiến thuật dừng việc phát triển cây trước khi nó phát triển đến điểm hoàn thành phân lớp dữ liệu. Chiến thuật cắt tỉa sau thì ngược lại, cho phép phát triển cây đầy đủ sau đó mới cắt bỏ các nhánh không hợp lý gây nên hiện tượng over-fitting[9]

Thông thường người ta thường sử dụng chiến thuật hậu cắt tỉa để tìm ra các giả thiết có độ chính xác cao. Chiến thuật này được tiến hành thông qua việc tính toán các lỗi của các nút như sau:

Bước 1. Lập giả thuyết cho các trường hợp lỗi tĩnh E(S), lỗi từ các nút con của S (BackUpError(S)) và lỗi của nút S (Error(S)).

Bước 2. Tính toán các lỗi đã xác định: Error(S) = Min(E(S), BackUpError(S))

E(S)=(N-n+1)/(N+2) với N là tổng só mẫu ở nút S, n là số mẫu của lớp phổ biến nhất trong S.

Trường hợp tổng quát, nếu thuộc tính lớp có k giá trị thì các giá trị lỗi được tính

E(S) = (N-n+k-1)/N+k)

BackUpError(S) = PiError(Si), trong đó: Si là các nút con của S và Pi là tỉ lệ số mẫu trong Si trên số mẫu trong S.

Như vậy, các nút lá sẽ có lỗi Error(Si)=E(Si) do nút lá không có con dẫn đến nên không có lỗi BackUp.

Chiến thuật cắt tỉa sau sẽ quyết định cắt tỉa tại nút S khi BackUpError(S) ≥E(S)

Một phần của tài liệu Một số phương pháp xây dựng cây quyết định trong khai phá dữ liệu (Trang 59)