Thuật toán C4.5 được phát triển và công bố bởi Quinlan vào năm 1996. Thuật toán C4.5 là một thuật toán được cải tiến từ thuật toán ID3 với việc cho phép xử lý trên tập dữ liệu có các thuộc tính số - thuộc tính có giá trị liên tục (numeric attributes) và làm việc được với tập dữ liệu bị thiếu và bị nhiễu.
2.3.3.1 C4.5 Xử lý đối thuộc tính số (Numeric attributes)
Khi gặp thuộc tính liên tục trước khi tính Gain của nó ta thực hiện phân ngưỡng các giá trị liên tục của thuộc tính đó. Hiện có nhiều thuật toán để phân ngưỡng. Sau đây, là một cách tính ngưỡng của thuộc tính liên tục:
Bƣớc 1: sắp xếp các giá trị của thuộc tính đó theo thứ tự tăng dần, hoặc
giảm dần được tập giá trị V= V1, …, Vm.
Bƣớc 2: tính σi = (Vi +Vi+1) /2*(i : 1→m). Tính G(σi). So sánh σi nào có Gain lớn nhất thì ngưỡng chính là σi đó.
Sinh viên thực hiện: Nguyễn Thu Hương - Lớp HTTTA – K11 Trang 17 / 61
2.3.3.2 C4.5 làm việc với tập dữ liệu bị thiếu hoặc bị nhiễu
Thuật toán vừa xây dựng dựa vào giả thuyết tất cả các mẫu dữ liệu có đủ các thuộc tính. Nhưng trong thực tế, xảy ra hiện tượng dữ liệu bị thiếu, nghĩa là ở một số mẫu dữ liệu có những thuộc tính không được xác định hoặc mâu thuẫn hoặc không bình thường. Ta xem xét kỹ hơn với trường hợp dữ liệu bị thiếu. Đơn giản nhất là không đưa các mẫu với các giá trị bị thiếu vào. Nếu làm như vậy thì có thể dẫn đến tình trạng thiếu các mẫu học. Giả sử T là một tập hợp gồm các mẫu cần được phân loại, X là phép kiểm tra theo thuộc tính L và U là số lượng các giá trị bị thiếu của thuộc tính L. Khi đó, ta có: k j 2 j=1 freq(C ,T) ( , ) Info(T) = - *log |T|-U | | j freq C T T U (5) x n 2 j=1 |T| Info (T) = - *log ( ) |T|-U Ti (6)
Trong trường hợp này, khi tính tần số freq (Ci, T) ta chỉ tính riêng các mẫu với giá trị trên thuộc tính L đã xác định. Khi đó ta có công thức như sau:
( ) | | (Info(T)-Info ( ))x | | T U Gain X T T (7)
Tương tự thay đổi công thức (7), nếu phép kiểm tra có N giá trị đầu vào thì công thức (7) được tính như trong trường hợp chia N tập hợp ban đầu thành (N+1) tập hợp con. Giả sử phép thử X có các giá trị O1,O2, …, On được lựa chọn theo tiểu chuẩn (7), ta cần xử lý như thế nào với các dữ liệu bị thiếu. Giả sử, mẫu từ tập hợp T với đầu ra là
Oi có liên quan đến tập hợp Ti thì khả năng mẫu đó thuộc tập hợp Ti là 1.
Giả sử, mỗi mẫu trong Ti có một chỉ số xác định xác suất thuộc tập hợp Ti. Nếu mẫu có giá trị thuộc tính L thì trọng số bằng 1. Nếu trong trường hợp ngược lại, thì mẫu này liên quan đến tập con T1, T2, …, Tn với xác xuất tương ứng là:
1 , 2 ,...,
| | | | | |
n
T T T
T U T U T U (8)
Ta có thể dễ dàng thấy được rằng tổng các xác xuất này bằng 1. 1 1 n i i T T U (9) Do đó giải pháp này được phát biểu như sau: xác suất xuất hiện của các giá trị bị thiếu tỷ lệ thuận với xác suất xuất hiện của các giá trị không thiếu.
Các bước của thuật toán C4.5 :
Bƣớc 1: tạo một nút T, gồm tất cả các mẫu của tập huấn luyện .
Bƣớc 2: Nếu tất cả các mẫu trong T có thuộc tính đều là Yes hoặc đều là No (thuộc cùng một lớp) thì T là nút lá.
Sinh viên thực hiện: Nguyễn Thu Hương - Lớp HTTTA – K11 Trang 18 / 61
trong tập gốc thuộc cả 2 lớp Yes và No thì :
-Tính giá trị G của các thuộc tính, thuộc tính nào có giá trị Gain lớn nhất thì được chọn làm nút X tiếp theo (giá trị của X là V1, V2 ,…., Vn). Trong khi, tính giá trị Gain của các thuộc tính và nếu gặp thuộc tính có giá trị liên tục hay gặp thuộc tính nhiễu hoặc thiếu thì xử lý như trên.
-Chia T thành T1, T2,…, Tn theo các giá trị của X. -Ta có các nút con Ti (i: 1→ n).
-Các nhánh từ T → Tilà các giá trị V1, V2, …, Vn.
Bƣớc 4: thực hiện lặp lại cho nút con và quay lại bước 2.
Thuật toán C4.5 giải quyết rất nhiều vấn đề mà ID3 chưa giải quyết được.Tuy nhiên, điểm yếu của thuật toán này là làm việc không hiệu quả với những cơ sở dữ liệu lớn vì chưa giải quyết được vấn đề bộ nhớ.
Mặc dù đã có nhiều cải tiến, nhiều thuật toán xây dựng cây quyết định ra đời, nhưng nói chung vẫn còn nhiều vấn đề khó khăn phức tạp và nhiều thách thức trong KPDL bằng cây quyết định. Như vấn đề dữ liệu bị thiếu giá trị đối với các thuộc tính trong CSDL, vấn đề các CSDL rất lớn, về số lượng các thuộc tính, về số lượng các bản ghi, và vấn đề về bộ nhớ, … Những vấn đề này luôn làm đau đầu những nhà khoa học. Trên thực tế các thuật toán xây dựng cây quyết định vấn đang được cải tiến, nghiên cứu và phát triển.