6. Cấu trúc luận văn
1.3.3.2. Th ut toán ID3
a. Gi i thiệu thu t toán ID3
Giải thuật quy nạp cây ID3 (gọi tắt là ID3) là một giải thuật học đơn giản nhƣng thành công trong nhiệm lĩnh vực. Thuật toán ID3 đƣợc phát triển bởi Quinlan và đƣợ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 và trình bày trong mục Induction on Decition Trees, Machine Learning năm 1986.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision tree). Biểu diễn này cho phép chúng ta xác định phân loại của một đối tƣợng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.
Giải thuật ID3 là học cây quyết định từ một tập huấn luyện hay còn gọi là dữ liệu rèn luyện (training data), giải thuật có:
Đầu vào: Tâp huấn luyện, thuộc tính chứa giá trị phân loại của cây, danh sách các thuộc tính dùng kiểm tra tính quyết định của cây. Tập huấn luyện bao gồm các mẫu, mỗi mẫu là một bộ các thuộc tính mô tả một tình huống, hay một đối tƣợng nào đó, và một giá trị phân loại của nó.
Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chƣa gặp trong tƣơng lai.
Giải thuật ID3 xây dựng cây quyết định từ trên xuống
- Entropy: dùng để do tính thuần nhất của một tập dữ liệu. Entropy của một tập S
có n phân lớp đƣợc tính theo công thức:
Entropy(S) = ( log ) 1 2 n i i i p p
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:
o Nếu tât cả các mẫu thành viên tron tập S đều thuộc cùng một lớp thì Entropy(S) =0.
o 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.
o Các trƣờng hợp còn lại 0< Entropy(S)<1.
- 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.
+ Cho tập dữ liệu S gồm có n thuộc tính 𝐴𝑖(𝑖 = 1, 2 … 𝑛) giá trị Information của thuộc tính 𝐴𝑖ký hiệu là 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) đƣợc xác định bởi công thức:
𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑜𝑛 (𝐴𝑖) = ∑ 𝑜 𝑛𝑡𝑟𝑜𝑝
+ 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.
𝑣 bằng tập hợp con của tập S mà có thuộc tính A mang giá trị v.
| 𝑣| là số phần tử của tập 𝑣 | | là số phần tử của tập
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.
b. Mã giả thu t toán ID3
Function ID3(Taphuanluyen, DuDoan, Tap_thuoc_tinh) begin
if mọi mẫu trong TapHuanLuyen đề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 Tap_thuoc_tinh là rỗng then
return nút lá đƣợc gán nhãn bởi tuyển của tất cả các lớp trong taphuanluyen
else begin
1. Chọn một thuộc tính P có giá trị Gain lớn nhất, lấy nó làm gốc cho cây hiện tại;
2. Xóa P ra khỏi Tap_thuoc_tinh; 3. Với mỗi giá trị V của P
begin
1. Tạo một nhánh của cây gán nhãn V; 2. Đặt vào phân_vùng_V /* các mẫu trong
3. Gọi
ID3(phân_vùng_V, DuDoan, Tap_thuoc_tinh) Và gắn kết quả vào nhánh V
end end
end
c. Ví dụ minh họa thu t toán ID3
Xét bài toán xem ta đã chọn ngành đúng với tính cách và năng lực của học sinh chƣa. Giải thuật ID3 sẽ học cây quyết định từ tập hợp các ví dụ sau:
Bảng 2.1 Tập huấn luyện chọn ngành
nhomST DiemMh GT ChonLua
cao Gioi yes yes
cao Kha yes yes
cao Tb yes no
cao Gioi no yes
cao Kha no no
cao Tb no no
bt Gioi yes yes
bt Gioi no no
bt Kha yes no
bt Tb yes no
bt Tb no no
bt Kha no no
thap Gioi yes no
thap Kha no no
Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ là kết quả chọn nghề và sở thích của học sinh gồm các thuộc tính nhomST, DiemMH, GioiTinh; Và đều có một thuộc tính phân loại ChonLua (yes, no). ‗Yes‘ nghĩa là ngành chọn phù hợp với sở thích, năng lực và giới tính, ‗No‘ nghĩa là ngành chọn không phù hợp. Giá trị phân loại ở đây chỉ có hai loại (yes, no). Thuộc tính ‗ChonLua‘ còn đƣợc gọi là thuộc tính đích. Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính NhomST có ba giá trị: cao, bt, thap; DiemMH có ba giá trị: Gioi, Kha, tb; Gt có hai giá trị: yes, no.
Thuộc tính dự đoán S ‗ChonLua‘ có hai giá trị ―yes‖, ―no‖. S1: ChonLua = ―yes‖; S2: ChonLua= ―no‖
I(S) = I(S1,S2) = I (4,10) = (-4/14)*log2(4/14)-(10/14)*log2(10/14)= 0.8631 Đối với thuộc tính GT có:
GT= ―yes‖, S11=3, S21=4 có I(S11, S21) = 0.9852 GT= ―no‖, S12=1, S22=6 có I(S11, S21) = 0.5916
Entropy(GT)= 7/14*I(S11, S21) + 7/14*I(S11, S21) =0.7884 Gain(GT)= I (S) − Entropy ( GT) = 0.0746
Tƣơng tự đối với thuộc tính DiemMH Gain(DiemMH)=0.2585 Gain (nhomST)= 0.1560
Chọn thuộc tính DiemMH làm nút gốc
Loại thuộc tính DiemMH ra khỏi tập thuộc tính, và xét các nút tại các nhánh:
Gioi, kha, tb
Nhánh Gioi:
Bảng 2.2 Tập huấn luyện nhánh DiemMH chứa giá trị ―Gioi‖
nhomST GTNganh ChonLua
cao yes yes
cao no yes bt yes yes bt no no thap yes no o I(S) = I(S1,S2) = I (3,2) = 0.970950594 o Gain(nhomST) = 0.8281 o Gain(GTNganh) = 0.5710
Chọn thuộc tính nhomST làm nút gốc, loại thuộc tính nhomST ra khỏi tập thuộc tính và xét
Nhánh ―cao‖: yes với ―thap‖: no
Nhánh ―bt‖: với GTNganh = “yes‖: yes;
Nhánh kha:
Bảng 2.3 Tập huấn luyện nhánh DiemMH chứa giá trị ―kha‖
nhomST GTNganh ChonLua
cao yes yes
cao no no bt yes no bt no no thap no no o I(S) = I(S1,S2) = I (1,4) = 0.7219 o Gain(nhomST) = 0.5709 o Gain(GTNganh) = 0.3219
Chọn thuộc tính nhomST làm nút gốc, loại thuộc tính nhomST ra khỏi tập thuộc tính và xét
- Nhánh ―cao‖:
với GTNganh = “yes‖: yes với GTNganh = “no‖: no - Nhánh ―bt‖: no
- Nhánh ―thap‖: no Nhánh tb: no
Ta có cây quyết định nhƣ sau: