Bài tập xây dựng cây quyết định sử dụng thuật toán ID3

2017-08-11

Content:

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.


Hình 1. Cây quyết định sau khi chọn 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, khi Outlook = 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, HumidityWind (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 = OvercastHumidity = 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.


Hình 2. Cây quyết định sau khi chọn 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:


Hình 3. Cây quyết định hoàn chỉnh.