CHƯƠNG 2 : TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ CÂY QUYẾT ĐỊNH
2.2.4 Thuật toán C4.5 trong cây quyết định
Có rất nhiều thuật tốn phân lớp bằng cây quyết định như CLS, ID3, C4.5, SLIQ, CART (Classification and Regression Tree),...Việc chọn thuật tốn nào để có hiệu quả phân lớp cao tùy thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán. Chẳng hạn toán cây hồi qui phân loại (CART - Classification And Regression Tree) và C4.5 cho kết quả tốt trên các dữ liệu kiểu số (Numerical Data), trong khi đó thuật tốn ID3 cho kết quả tốt đối với dữ liệu định danh (Nominal Data).
Quá trình xây dựng cây quyết định đều được chia ra làm 3 giai đoạn cơ bản • Xây dựng cây: Thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện
cho đến khi các mẫu ở mỗi nút lá thuộc cùng một lớp.
• Cắt tỉa cây: Là việc làm dùng để tối ưu hố cây. Cắt tỉa cây chính là việc trộn một cây con vào trong một nút lá.
• Đánh giá cây: Dùng để đánh giá độ chính xác của cây kết quả. Tiêu chí đánh giá là tỷ lệ phân lớp chính xác trên tập mẫu đưa vào.
Thuật tố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ố (numeric atributes) và làm việc được với tập dữ liệu bị thiếu và bị nhiễu.
Như vậy, nhiệm vụ của thuật toán C4.5 là học cây quyết định từ một tập các ví dụ
huấn luyện (training example) hay cịn gọi là dữ liệu huấn luyện (training data). Hay nói cách khác, giải thuật có:
• Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mơ tả một
tình huống, hay một đối tượng nào đó, và một giá trị phân loại của nó. • Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập
dữ liệu huấn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong tương lai.
Cho tập mẫu S, C4.5 sinh ra cây quyết định ban đầu theo phương pháp chia để trị như sau:
• Nếu tất cả các mẫu trong S đều thuộc về cùng một lớp hay tập S nhỏ thì cây là một nút lá với nhãn là lớp xuất hiện nhiều nhấttrong S.
• Ngược lại, chọn một thuộc tính với hai hay nhiều “kết quả” trong tập thuộc tính. Tạo thuộc tính này là nút gốc của cây với mỗi nhánh là mỗi kết quả của thuộc tính, chia tập mẫu thành các tập con S1, S2, ..., Sk theo các kết quả của S, áp dụng cùng cách làm một các đệ qui cho các tập S1, ..., Sk.
C4.5 thực hiện phân lớp tập mẫu dữ liệu theo chiến lược ưu tiên theo chiều sâu (Depth - First). Thuật tốn xét tất cả các phép thử có thể để phân chia tập dữ liệu đã cho và chọn ra một phép thử có giá trị GainRatio tốt nhất. GainRatio là một đại lượng để đánh giá độ hiệu quả của thuộc tính dùng để thực hiện phép tách trong thuật toán để phát triển cây quyết định. GainRatio được tính dựa trên kết quả tính tốn đại lượng Information Gain theo cơng thức sau:
G a inR a t i O (X,T) = sp ↑^f<W'∩ (2.1)
Với: ⅛∕⅛nfo(X,T) = - X T log ' (2.2)
⅛Value(X) I T I I T I
Trong đó:
Value(X) là tập các giá trị của thuộc tính X.
Ti là tập con của tập T ứng với thuộc tính X = giá trị là vi.
Đối với các thuộc tính liên tục, chúng ta tiến hành phép thử nhị phân cho mọi giá trị của thuộc tính đó. Để thu thập được giá trị Entropy gain của tất cả các phép thử nhị phân một cách hữu hiệu ta tiến hành xắp xếp các dữ liệu theo giá trị của thuộc tính liên tục đó bằng thuật tốn Quicksort.
Thuật tốn xây dựng cây quyết định C4.5
Mơ tả thuật tốn dưới dạng giả mã như sau :
Else <Tạo một nút quyết định N>;
3. For <Với mỗi thuộc tính A> Do <Tính giá trị Gain(A)>;
4. <Tại nút N, thực hiện việc kiểm tra để chọn ra thuộc tính có giá trị Gain tốt nhất (lớn nhất). Gọi N.test là thuộc tính có Gain lớn nhất>;
5. If <Nếu N.test là thuộc tính liên tục> Then <Tìm ngưỡng cho phép tách của N.test>;
6. For <Với mơi tập con T được tách ra từ tập T> Do ( T được tách ra theo quy tắc:
- Nếu N.test là thuộc tính liên tục tách theo ngưỡng ở bước 5
- Nếu N.test là thuộc tính phân loại rời rạc tách theo các giá trị
của thuộc tính này. )
7. { If <Kiểm tra, nếu T rỗng>} Then
<Gán nút con này của nút N là nút lá>; Else
8. <Gán nút con này là nút được trả về bằng cách gọi đệ qui lại đối với hàm xay dung cay(T'), với tập T'>;
} 9. <Tính tốn các lỗi của nút N>; <Trả về nút N>; } Một số công thức được sử dụng: Infox(T)=-∑jT∣ Info(T) (2.3) Gain( X) = Info(T)-Infox (T) (2.4)
Thuật toán C4.5 đã đưa ra các đại lượng GainRatio và SplitInfo (Splitinformation), chúng được xác định theo các công thức sau:
ʌ T í T' ____
SplitInfo
(X) =- ∑ ệ l0g2 lý I (2.5)
GainRatio( X) _ Gam(X^> (2.6)
SplitInfo(X)
Giá trị SplitInfo là đại lượng đánh giá thông tin tiềm năng thu thập được khi phân chia tập T thành n tập hợp con.
GainRatio là tiêu chuẩn để đánh giá việc lựa chọn thuộc tính phân loại. • Làm việc với dữ liệu bị thiếu
Thuật tố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, tức 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, U là số lượng các giá trị bị thiếu của thuộc tính L. Khi đó ta có: Info(T) = - Σk J=I freq(Cj,T) |T|-U *l0g2 ' freq(Cj, T ) ɔ I \T\-U ) (2.7) Infox(T) = - ∑- lι *l0g2(T) (2.8) j=1 |T|-U
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 đó tiêu chuẩn (2.4) được viết lại bằng công thức (2.9) như sau:
| T | -U
Ngà
y Di Quang cảnhNắng Nhiệt độNóng Độ ẩmCao NhẹGió KhơngChơi tennis
D2 Nắng Nóng Cao Mạnh Khơng
D3 Am u Nóng Cao Nhẹ Co
Giả sử phép thử X có các giá trị O1, O2,.. ..On được lựa chọn theo tiểu chuẩn (2.9), 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ì có 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à :
∣T,I Td.........Td
T
∖∖ -U ,∖∖T -U '∖T \-U
Ta có thể dễ dàng thấy được rằng tổng các xác xuất này bằng 1. vɪ=1
⅛ ∣T∣ - U
Tóm lại, 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.