Giải thuật C4.5

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 47)

Quinlan đưa ra giải thuật C4.5 (năm 1993) để khắc phục những hạn chế trong ID3. Đây là thuật toán được cải tiến từ thuật toán ID3, đặc biệt rất thiết thực trong xây dựng phần mềm thực thi.

C4.5 sinh ra một Cây quyết định phân lớp từ tập dữ liệu đã cho bằng cách chia đệ qui dữ liệu. Cây quyết định này được phát triển theo chiến thuật ưu tiên chiều sâu (Depth-first). Thuật toán quan tâm đến tất cả các phép thử có thể xảy ra, đó là các phép thử có thể tách tập dữ liệu, thuật toán sẽ chọn một phép thử cho GainRatio tốt nhất [18][20].

Thuật toán C4. 5 với hàm tạo cây FormTree (S) trên tập huấn luyện S FormTree (S)

( 1 ) Tính tần suất freq(S) ;

(2) if chỉ có một lớp hoặc các trường hợp khác quá ít return một nút lá được gắn nhãn bởi lớp đó ; Tạo một nút quyết định N;

( 3 ) Với mỗi thuộc tính A Tính Gain(A) ;

( 4 ) N.test = Thuộc tính có Gain và GainRatio lớn nhất; ( 5 ) if N.test là thuộc tính liên tục

( 7 ) if S ' là tập rỗng

Con của N là một nút lá else

( 8 ) Gọi FormTree (S' ), gắn kết quả vào con của N; ( 9 ) Tính lỗi của N ;

Return N

Thuật toán bắt đầu với nút gốc chứa toàn bộ các mẫu của tập huấn luyện và các mẫu này đều có trọng số bằng 1 (các mẫu được gán các trọng số để tính toán tỉ lệ và đưa các giá trị thuộc tính không xác định vào các tập con). Tại mỗi nút, chiến thuật chia để trị được thực hiện, cố gắng khai thác sự chọn lựa tốt nhất cục bộ, với điều kiện không quay lui về lối cũ

Bước 1: tần suất freq(Ci, S) được tính, lớp của các mẫu là Ci, i[l,N lớp]; S là tập các mẫu tại một nút

Bước 2: nếu tất cả các mẫu trong S cùng một lớp Cj thì nút là nút lá với nhãn là Cj (Cj cũng có thể là lớp có nhiều mẫu nhất, khi đó lỗi của nút lá là số mẫu trong S mà lớp của nó không phải là Cj).

Bước 3: Nếu S bao gồm các mẫu thuộc từ hai lớp trở lên thì GainRatio của mỗi thuộc tính được tính toán (công thức 2.5).

Bước 4: xem xét những thuộc tính có Gain tốt hơn mức trung bình sau đó so sánh GainRatio của các thuộc tính này. Thuộc tính có GainRatio cao nhất được chọn và sẽ kiểm tra tại nút đó.

Bước 5: Với các thuộc tính rời rạc, phép kiểm tra chia S ra thành n tập con, mỗi tập con ứng với một giá trị của thuộc tính. Với các thuộc tính liên tục, cần phải tìm ngưỡng và phép kiểm tra chia S thành hai tập con, một tập các mẫu với giá trị thuộc tính nhỏ hơn hoặc bằng ngưỡng, tập còn lại là tập các mẫu với giá trị thuộc tính lớn hơn ngưỡng đó.

Bước 6: Một nút quyết định có n con nếu S1,..,Sn là các tập con của được sinh ra bởi phép kiểm tra trên thuộc tính đã chọn. Rõ ràng n=2 khi thuộc tính được chọn là thuộc tính liên tục và n = m đối với các thuộc tính rời rạc, với m là các giá trị có thể có của thuộc tính. Thêm vào các mẫu với giá trị không xác định của thuộc

tính đã chọn được tái lập lại trong tất cả các tập con Si (i  [1,s]) và trọng số cho các mẫu được tính toán bởi các trọng số trước đó và tỷ lệ của các mẫu không xác định.

Bước 7: Nếu Ti là rỗng thì nút con là nút lá, với nhãn là lớp thường xảy ra nhất ở nút đó và lỗi phân lớp bằng không.

Bước 8: Áp dụng đệ qui trên mỗi Ti không rỗng

Bước 9: Cuối cùng, lỗi phân lớp của nút được tính bằng tổng các lỗi tương ứng theo tỉ lệ mẫu của tất cả các nút con của nó. Nếu kết quả này (Backup error) lớn hơn số mẫu lỗi trong T (static error hay expected error) khi xem T thuộc về lớp thường xảy ra nhất, thì nút đó trở thành nút lá và tất cả các cây con của nó bị xóa.

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 47)

Tải bản đầy đủ (PDF)

(129 trang)