1) Thuật toán ID3
Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney,
Australia) được công bố vào cuối thập niên 70 của thế k 20. Sau đó, thuật toán
ID3 được giới thiệu trình bày trong mục Induction on decision trees, machine
learning năm 1986. ID3 được xem như một ci tiến của CLS với kh năng lựa
chọn thuộc tính tốt nhất để tiếp tục trin khai y tại mỗi bước. ID3 y dựng y
quyết định t trên- xuống (top -down) [5] .
1.1. Entropy đo tính thuần nhất của tập dữ liệu : dùng để đo tính thuần nhất của
một tập d liệu. Entropy của một tập S được tính theo công thức (1)
+-
22
Entropy(S)= - P log ( ) P log ( )PP

(2.1)
Trong trường hợp các mẫu d liệu hai thuộc tính phân lớp "yes" (+),
"no" (-). hiệu p+ để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định
"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ó n phân lớp thì ta công thức
sau:
n
i2
i=1
Entropy(S)= (- P log ( ))
i
P
(2.2)
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
1.2.) Information Gain (viết tắt là Gain): Gain là đại lượng dùng để đo tính hiệu qu của
một thuộc tính được lựa chọn cho việc phân lớp. Đại lượng này được tính thông qua hai
giá tr Information và Entropy.
- Cho tập d liệu S gồm n thuộc tính Ai(i=1,2…n) giá tr Information của
thuộc tính Ai ký hiệu Information(Ai) được xác định bi công thức .
n
i2
i=1
Information(A ) = - log ( ) Entropy(S)
i
p
(2.3)
- Giá trị Gain của thuộc tính A trong tập S hiệu Gain(S,A) và được tính
theo công thức sau:
vv
v value(A)
S
( , ) Information(A) - Entropy(A)= Entropy(S)- Entropy(S )
S
Gain S A
(2.4)
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 quá trình y dựng y quyết định theo thut toán ID3 tại mỗi bước
trin khai y, thuộc nh được chọn để trin khai thuộc tính giá tr Gain lớn
nhất.
Hàm xây dựngy quyết định trong thut toán ID3 [2]
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then
return một nút lá được gán nhãn bởi lớp đó
else if tập_thuộc_tính là rỗng then
return nút được gán nhãn bởi tuyển của tất cả các lớp trong
tập_ví_dụ
else begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùngV các ví dụ trong tập_ví_dụ có giá trị V
tại thuộc tính P;
Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả
vào nhánh V
end
end
end
Ví d minh ha
Chúng ta hãy xét bài toán phân loại xem ta có đi chơi tennis ứng với thời tiết
nào đó không. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:
Ngày
Quang
cảnh
Nhiệt độ
Độ ảm
Chơi Tennis
Dl
Nắng
Nóng
Cao
Không
D2
Nắng
Nóng
Cao
Không
D3
Âm u
Nóng
Cao
D4
Mưa
Ấm áp
Cao
D5
Mưa
Mát
Trung bình
D6
Mưa
Mát
Trung bình
Không
D7
Âm u
Mát
Trung bình
D8
Nắng
Ấm áp
Cao
Không
D9
Nắng
Mát
Trung bình
Dl0
Mưa
Ấm áp
Trung bình
Dl1
Nắng
Ấm áp
Trung bình
Dl2
Âm u
Ấm áp
Cao
Dl3
Âm u
Nóng
Trung bình
Dl4
Mưa
Ấm áp
Cao
Không
Bng 2.1. Tp d liu ví d cho chơi Tennis
Tập dữ liệu này bao gồm 14 dụ. Mỗi dụ biểu diễn cho tình trạng thời
tiết gồm các thuộc tính quang cảnh, nhiệt đ, độ ẩm gió; đều một thuộc
tính phân loại ‘chơi Tennis’(có, không). ‘Không’ nghĩa là không đi chơi tennis ứng
với thời tiết đó, ‘Có’ nghĩa chơi tennis ứng với thời tiết đó. Giá trị phân loại
đây chỉ hai loại (có, không), hay còn ta nói phân loại của tập dụ của khái
niệm này thành hai lớp (classes). Thuộc tính ‘Chơi tennis’ còn được gọi thuộc
tính đích (target attribute).
Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính quang cảnh
ba giá trị: âm u , a , nắng; nhiệt độ có ba giá trị: nóng, mát, ấm áp; độ ẩm có hai
giá trị: cao, T gió hai gtrị: mạnh, nhẹ. Các giá trnày chính hiệu
(symbol) dùng để biểu diễn bài toán.
Từ tập dữ liệu rèn luyện này, giải thuật ID3 sẽ học một cây quyết định
khả năng phân loại đúng đắn các d trong tập này, đồng thời hy vọng trong
tương lai, cũng sẽ phân loại đúng các dụ không nằm trong tập này. Một cây
quyết định ví dụ mà giải thuật ID3 có thể quy nạp được là:
Hình 2.2. Cây quyết đnh thut toán ID3
Các nút trong cây quyết định biểu diễn cho một sự kiểm tra trên một thuộc
tính nào đó, mỗi giá trị thể của thuộc tính đó tương ứng với một nhánh của
cây. Các nút lá thể hiện sự phân loại của các ví dụ thuộc nhánh đó, hay chính là giá
trị của thuộc tính phân loại.
Sau khi giải thuật đã quy nạp được cây quyết định, thì cây này sẽ được sử
dụng để phân loại tất cả các dụ hay thể hiện (instance) trong tương lai. cây
quyết định sẽ không thay đổi cho đến khi ta cho thực hiện lại giải thuật ID3 trên
một tập dữ liệu rèn luyện khác.
Ứng với một tập dữ liệu rèn luyện sẽ nhiều cây quyết định thể phân
loại đúng tất cả các dụ trong tập dữ liệu rèn luyện. Kích cỡ của các cây quyết
định khác nhau tùy thuộc vào thứ tự của các kiểm tra trên thuộc tính.
Ta có: S = [9+, 5-]
Entropy(S) = entropy(9+,5-)
= p+log2p+ p-log2p- = (9/14)log2(9/14) (5/14)log2(5/14)
= 0.940
Values(Quang cảnh) =Nắng, Âm u, mưa
Snắng = [2+, 3-]
SÂm u = [4+, 0-]
Smưa = [3+, 2-]
)(
||
||
)(),(
},,{ v
muaâmunangv
vSEntropy
S
S
SEntropyQuangcanhSGain
= Entropy(S) (5/14)Entropy(Snắng) (4/14)Entropy(Sâm u)
(5/14)Entropy(Smưa)
Trong đó:
Entropy(S) = 0.940
Entropy(Snắng) = (2/5)log2(2/5) (3/5)log2(3/5)
= 0.5288 + 0.4422 = 0.971