Bài tập xây dựng cây quyết định sử dụng thuật toán ID3
2017-08-11Content:
Bài toán
Sử dụng thuật toán ID3, xây dựng cây quyết định cho tập dữ liệu huấn luyện sau:
Day | Outlook | Temp | Humidity | Wind | PlayTennis |
---|---|---|---|---|---|
1 | Sunny | Hot | High | Weak | No |
2 | Sunny | Hot | High | Strong | No |
3 | Overcast | Hot | High | Weak | Yes |
4 | Rain | Mild | High | Weak | Yes |
5 | Rain | Cool | Normal | Weak | Yes |
6 | Rain | Cool | Normal | Strong | No |
7 | Overcast | Cool | Normal | Strong | Yes |
8 | Sunny | Mild | High | Weak | No |
9 | Sunny | Cool | Normal | Weak | Yes |
10 | Rain | Mild | Normal | Weak | Yes |
11 | Sunny | Mild | Normal | Strong | Yes |
12 | Overcast | Mild | High | Strong | Yes |
13 | Overcast | Hot | Normal | Weak | Yes |
14 | Rain | Mild | High | Strong | No |
Lời giải
Chọn nút gốc của cây quyết định:
Tập dữ liệu hiện tại có 9 kết quả Yes và 5 kết quả No, ta kí hiệu là S: $ [9+, 5-] $.
Theo công thức tính Entropy (độ hỗn tạp dữ liệu) của một tập:
trong đó:
- là tỷ lệ các mẫu thuộc lớp dương trong S.
- là tỷ lệ các mẫu thuộc lớp âm trong S.
Tổng quát, nếu có c lớp trong tập S:
Vậy:
Lưu ý:
- Entropy là 0 nếu tất cả các thành viên của S đều thuộc về cùng một lớp.
- Entropy là 1 nếu tập hợp chứa số lượng bằng nhau các thành viên thuộc lớp âm và dương.
Xét thuộc tính Outlook
, thuộc tính này nhận 3 giá trị là Sunny, Overcast, Rain. Ứng với mỗi thuộc tính, ta có:
- SSunny: $ [2+, 3-]$ (có nghĩa là trong tập dữ liệu hiện tại (S), có 2 kết quả Yes và 3 kết quả No tại Outlook = Sunny). Tương tự:
- SOvercast: $ [4+, 0-]$.
- SRain: $ [3+, 2-]$.
Tiếp theo tính Information Gain (độ lợi thông tin) của thuộc tính Outlook
trên tập S. Thông số này phản ánh mức độ hiệu quả của một thuộc tính trong phân lớp. Đó là sự rút giảm mong muốn của Entropy gây ra bởi sự phân hoạch các mẫu dữ liệu theo thuộc tính này. Công thức tính IG của thuộc tính A trên tập S như sau:
trong đó:
- Value(A) là tập các giá trị có thể cho thuộc tính A.
- Sv là tập con của S mà A nhận giá trị v.
Lấy ví dụ với thuộc tính A = Outlook
, ta có Value(A) = {Sunny, Overcast, Rain}, và SSunny = $ [2+, 3-]$ như đã tính ở trên
Từ công thức, dễ dàng tính được:
Hoàn toàn tương tự, tính được Information Gain cho 3 thuộc tính còn lại:
Thuộc tính Outlook
có Information Gain cao nhất, chọn nó làm nút gốc.
Xây dựng tiếp cây quyết định:
Sau khi chọn được nút gốc là Outlook
, tiếp theo ta tính tiếp các nút tại mỗi thuộc tính của nút vừa chọn. Trong hình 1:
- Nhánh bên trái cùng ứng với
Outlook = Sunny
, có SSunny là $ [2+, 3-]$, chưa phân lớp hoàn toàn nên vẫn phải tính toán chọn nút tại đây. Tương tự cho nhánh phải cùng. - Nhánh ở giữa ứng với
Outlook = Overcast
, tập dữ liệu tại nhánh này đã hoàn toàn phân lớp dương với 4+ và 0-. Tại đây đã có thể quyết định, khiOutlook = Overcast
thì có thể đi chơi tennis.
Bây giờ ta sẽ thực hiện tính toán với nhánh trái cùng, trên tập SSunny = $ [2+, 3-]$.
Hoàn toàn tương tự như cách tìm nút gốc, ta tính Information Gain cho 3 thuộc tính còn lại là Temp
, Humidity
và Wind
(trên tập SSunny).
Xét thuộc tính Humidity
, có:
- SNormal: $ [2+, 0-]$ (nghĩa là tại những dữ liệu có
Outlook = Overcast
vàHumidity = Normal
, có 2 dữ liệu, tất cả đều cho kết quả Yes). - SHigh: $ [0, 3-]$.
Từ đó:
Tương tự:
Nhận thấy thuộc tính Humidity
có Information Gain cao nhất, chọn thuộc tính này làm nút cho nhánh trái cùng.
Cây quyết định hoàn chỉnh:
Làm tương tự cho nút tại nhánh phải ngoài (đến khi tất cả các nút lá của cây đều đã phân lớp), ta được cây quyết định hoàn chỉnh như sau: