ID3 [4] được phát triển bởi Ross Quinlan (1983). Ý tưởng cơ bản của giải thuật ID3 là xây dựng cây quyết định bằng việc sử dụng một cách tìm kiếm từ trên xuống dựa trên những tập hợp cho trước để kiểm tra mỗi thuộc tính tại mỗi nút của cây. Từ đó, để chọn ra thuộc tính hữu ích nhất cho sự phân loại trên những tập hợp cho trước.
ID3 được xem như là một cải tiến của CLD với khả năng lựa chọn thuộc tính tốt nhất để tiếp tục phát triển cây tại mỗi bước. Dựa theo những nghiên cứu của Ross
Sinh viên thực hiện: Nguyễn Thu Hương - Lớp HTTTA – K11 Trang 15 / 61
Quinlan để chọn ra được thuộc tính tốt nhất ta phải tính độ bất định (Entropy), và tính hiệu quả của thuộc tính (Gain).
Entropy của một tập S được tính theo công thức (1) Entropy ( )- - 2( )
2
P log P P log P (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ó n phân lớp thì ta có công thức sau: n i Pi log Pi S 1(- 2( )) ) Entropy( (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 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.
Information Gain (viết tắt là Gain) [4]: 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 có n thuộc tính Ai (i =1, 2…, n) giá trị Information của thuộc tính Ai, ký hiệu là Information(Ai) được xác định bởi công thức:
n i 2
i=1
Information(A ) = -log ( ) Entropy(S)pi
(3) 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: v v v value(A) S
( , ) Information(A) - Entropy(A)= Entropy(S)- Entropy(S )
S Gain S A (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 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.
Sinh viên thực hiện: Nguyễn Thu Hương - Lớp HTTTA – K11 Trang 16 / 61
Bƣớc 1: tạo một nút T, gồm tất cả các mẫu của tập huấn luyện.
Bƣớc 2: nếu tất cả các mẫu trong T có thuộc tính đều là Yes, hoặc đều là No (thuộc cùng một lớp) thì T là nút lá.
Bƣớc 3: trường hợp ngược lại của trường hợp trên, tức là các thuộc tính
trong tập gốc thuộc cả 2 lớp Yes và No thì:
-Tính giá trị G của các thuộc tính, thuộc tính nào có giá trị Gain lớn nhất thì được chọn làm nút X tiếp theo (giá trị của X là V1, V2, …., Vn).
-Chia T thành T1, T2,…, Tn theo các giá trị của X. -Ta có các nút con Ti (i: 1 → n).
-Các nhánh từ T → Ti là các giá trị V1, V2, …, Vn.
Bƣớc 4:thực hiện lặp lại cho nút con và quay lại bước 2.
Vì ID3 sử dụng tất cả các ví dụ ở mỗi bước để đưa ra các quyết định dựa trên thống kê, nên kết quả tìm kiếm của ID3 rất ít bị ảnh hưởng bởi một vài dữ liệu sai (hay dữ liệu nhiễu).
Bên cạnh các vấn đề cơ bản được trình bày trong phần này, ID3 còn được thảo luận nhiều vấn đề liên quan như làm sao để tránh cho cây quyết định không bị ảnh hưởng quá nhiều vào tập huấn luyện, để nó có thể tổng quát hơn, phân loại đúng được cho các trường hợp chưa gặp. Có nhiều giải pháp đã được đưa ra như cắt tỉa lại cây quyết định sau khi học, hoặc cắt tỉa các luật sau khi chuyển cây về dạng luật, vấn đề về thuộc tính có giá trị liên tục, … Giải quyết các vấn đề này dẫn đến việc sinh ra nhiều thế hệ sau của ID3 mà nổi bật trong số đó là C4.5 (Quinlan 1996).