Như ta thấy, C4.5 đã đưa ra một phép lựa chọn thuộc tính thích hợp với GainRatio và xử lý trường hợp thuộc tính có giá trị liên tục. Ngoài ra, C4.5 còn được mở rộng trên một số khía cạnh như xử lý trường hợp tập dữ liệu huấn luyện có thuộc tính thiếu giá trị (missing data), xử lý trường hợp thuộc tính có chi phí khác nhau. Ta sẽ đi sâu vào từng cải thiện của giải thuật C4.5
a. Trường hợp thuộc tính có giá trị liên tục
Với A là thuộc tính liên tục (hoặc thuộc tính số) và các mẫu trong tập huấn luyện S được sắp xếp thứ tự theo giá trị cụ thể của A. Giả sử các giá trị được sắp xếp đó là v1...,vm. Xét giá trị v=(vi+vi+1)/2 (với i [l,m-1]) và phép tách tập S ra thành S1 và S2 : S1
v
= {vj | vi v} ; S2 v
= {vj | vj > v}
Ứng với mỗi giá trị v như thế, ta tính Gainv theo phép tách như trên. Và chọn v có giá trị Gainv lớn nhất làm giá trị ngưỡng của thuộc tính liên tục A.
b. Trường hợp tập dữ liệu huấn luyện có thuộc tính thiếu giá trị
Trong một số trường hợp nhất định dữ liệu cho phép có thể thiếu những giá trị đối với một số thuộc tính. Ví dụ trong lĩnh vực y khoa mà chúng ta mong muốn dự đoán kết quả bệnh nhân dựa trên nhiều kiểm tra trong phòng thí
Một trong những chiến thuật liên quan đến thiếu giá trị thuộc tính là gán cho nó giá trị có tần số xuất hiện cao nhất trong số những ví dụ huấn luyện tại nút đó.
Hai là dùng một thủ tục phức tạp hơn là gán một kết quả có thể xảy ra cho mỗi một giá trị của thuộc tính đó. Phương pháp để quản lý thiếu giá trị thuộc tính này được sử dụng trong C4.5.
Cách tính Gain và GainRatio đối với dữ liệu có các thuộc tính bị thiếu giá trị [18]:
Giả sử tập S là tập mẫu cần phân loại, U là tập các mẫu bị thiếu giá trị trên thuộc tính A (A có k giá trị xác định). Thì khi đó hàm Gain(S,A) và hàm GainRatio(S,A) được tính như sau:
Gain (S, A) = F x (Gain' (S’,A) ) (2. 6)
SplitInfo (S,A) = - 1 ) ( | | | | | | k A Value i S U Si log2 | | | | | | U S Si (2.7) Với: F = | | | | | | S U S ;
Gain'(S‟,A) là giá trị gain của thuộc tính A khi chỉ xét các mẫu có giá trị xác định trên thuộc tính A.
|Sk+1| là số mẫu ứng với A có giá trị không xác định. Tập con Sk+1 gồm các mẫu có giá trị không xác định trên thuộc tính A, xem giá trị không xác định là như là giá trị thứ (k+1) của A.
Khi đó hàm GainRatio(S,A) vẫn được tính như công thức (2.5), với Gain(S,A) được tính theo công thức (2.6) và SplitInfo(S,A) được tính theo công thức (2.7). Và mẫu có giá trị không xác định được đưa vào cho tất cả các tập con của Si với trọng số theo tỉ lệ của các mẫu có giá trị xác định:
P(Si) = w = |Si các giá trị đã biết|/|S các giá trị đã biết|
c. Trường hợp thuộc tính có chi phí khác nhau (Attribute with Differing Cost)
Trong một số những công đoạn của cây quyết định, những thuộc tính của thực thể có sự liên hệ đến chi phí. Ví dụ, trong việc học để phân loại những căn bệnh chúng ta có thể mô tả những trong biểu thức của những thuộc tính như là
nhiệt độ, kết quả sinh thiết, nhịp tim, kết quả thử máu,... Những thuộc tính này biến đổi nhanh chóng trong chi phí của chúng, trong cả những biểu thức của chi phí tiền tệ và chi phí của tiện nghi của bệnh nhân. Trong những việc như vậy, chúng ta sẽ ưu tiên những cây quyết định sử dụng những thuộc tính chi phí thấp ở những nơi có thể, dựa trên những thuộc tính có giá cao chỉ khi cần tạo ra những sự phân loại đáng tin cậy.
Ta có thể sửa đổi để chuyển thành thuộc tính tính toán phải trả bằng việc đưa một biểu thức giá trị sang định lượng lựa chọn thuộc tính. Ví dụ, chúng ta có thể phân chia Gain bằng chi phí của thuộc tính, do đó những thuộc tính với chi phí thấp sẽ được ưu tiên.