Một vấn đề phát sinh là chúng ta xuất phát từ Root thì thuộc tính nào cần được xem xét để thêm các node tiếp theo? Để xem xét điều này người ta đưa ra hai thông số quan trọng sau [10]:
Entropy : Một đánh giá thường được sử dụng trong lĩnh vực lí thuyết thông
tin(Information Theory) nhằm đánh giá mức độ phức tạp ((im)purity/ inhomogeneity) của một tập S. Entropy của một tập S được tính theo công thức:
Entropy(S)= - P+ log2p+ - P- log2P - (3.1)
Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp "yes" (+), "no" (-). Ký hiệu p+ là để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "yes", và p- là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "no" trong tập S.
Trường hợp tổng quát, đối với tập con S có c phân lớp thì ta có công thức sau:
Trong đó pi là tỷ lệ các mẫu thuộc lớp i trên tập hợp S các mẫu kiểm tra. Các trường hợp đặc biệt:
- Nếu tất cả các mẫu thành viên trong tập S đều thuộc cùng một lớp thì Entropy(S) =0
- Nếu trong tập S có số mẫu phân bổ đều nhau vào các lớp thì Entropy(S) =1
- Các trường hợp còn lại 0 < Entropy(S) < 1
Ý nghĩa của entropy trong lĩnh vực lí thuyết thông tin: Entropy của tập S chỉ ra số lượng bits cần thiết để mã hóa lớp của một phần tử được lấy ra ngẫu nhiên từ tập S.
b.Information Gain (viết tắt là Gain):
Information Gain của một thuộc tính đối với một tập các ví dụ là đại lượng dùng để đo mức độ giảm mong đợi của Entropy bằng việc phân chia (partitioning) các ví dụ theo các giá trị của thuộc tính đó.
Cho tập dữ liệu S gồm có n thuộc tính Ai (i=1, 2…n) giá trị Gain của thuộc tính A trong tập S ký hiệu là Gain(S, A) và được tính theo công thức sau:
Trong đó:
S là tập hợp ban đầu với thuộc tính A Các giá trị của v tương ứng là các giá trị của thuộc tính A.
Sv bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.
|Sv| là số phần tử của tập Sv.
|S| là số phần tử của tập S.
Trong công thức trên, thành phần thứ 2 thể hiện giá trị Entropy sau khi tập S được phân chia bởi các giá trị của thuộc tính A sau khi tập S được phân chia bởi các giá trị của thuộc tính A.
Ý nghĩa của Gain(S, A): Số lượng bits giảm được (reduced) đối với việc mã hóa lớp của một phần tử được lấy ra ngẫu nhiên từ tập S, khi biết giá trị của thuộc tính A.
Trong quá trình xây dựng cây quyết định theo thuật toán ID3 tại mỗi bước triển khai cây, thuộc tính được chọn để triển khai là thuộc tính có giá trị Gain lớn nhất.
Ví dụ minh họa: [10]
Xét ví dụ quyết định chơi hay không chơi Tennis. Các thuộc tính được mô tả như bảng 3.1
Day Outlook Temperature Humidity Wind Play Tennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mid High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mid High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mid Normal Weak Yes
D11 Sunny Mid Normal Strong Yes
D12 Overcast Mid High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mid High Strong No
Chúng ta sẽ thử tính giá trị Information Gain của thuộc tính Wind đối với tập học S – Gain(S, Wind):
Thuộc tính Wind có 2 giá trị có thể: Weak và Strong; S = {9 ví dụ lớp Yes và 5 ví dụ lớp No}; Sweak = {6 ví dụ lớp Yes và 2 ví dụ lớp No có giá trị Wind=Weak}; Sstrong= {3 ví dụ lớp Yes và 3 ví dụ lớp No có giá trị Wind=Strong}
Tính : Entropy(S)=Entropy([9+,5-])= -9/14log29/14-5/14log25/14=0.94
Gain(S,A)=Entropy(S) -
= Entropy(S)- (8/14).Entropy(Sweak) – (6/14).Entropy(Sstrong) = 0.94-(8/14).(0.81)-(6/14).(1)=0.048
Tại nút gốc, thuộc tính nào trong số {Outlook, Temperature, Humidity, Wind} nên được chọn là thuộc tính kiểm tra?
• Gain(S, Outlook) = ... = 0.246; Có giá trị Information Gain cao nhất • Gain(S, Temperature) = ... = 0.029
• Gain(S Humidity) = = 0.151 Gains(S, Humidity) = ... = 0.151 • Gain(S, Wind) = ... = 0.048
Vì vậy, Outlook được chọn là thuộc tính kiểm tra cho nút gốc như hình 3.3:
Kế đến, tại nút Node1, thuộc tính nào trong số {Temperature, Overcast, Sunny, Humidity, Wind} nên được chọn là thuộc tính kiểm tra?
Lưu ý! Thuộc tính Outlook bị loại ra bởi vì nó đã được sử dụng bởi cha của nút Node1 (là nút gốc)
• Gain(S Sunny, Temperature) =...= 0.57 • Gain(S Sunny, Humidity) = ... = 0.97 • Gain(S Sunny, Wind) = ... = 0.019
Vì vậy, Humidity được chọn là thuộc tính kiểm tra cho nút Node1 như hình 3.4:
.
Hình 3.3 Tạo Node gốc Outlook