Giải thuật 2.3.1 Generate_decision_tree (Sinh cây quyết định): Xây dựng cây quyết định từ dữ liệu huấn luyện cho trước.
Đầu vào: Các mẫu huấn luyện samples, là các giá trị rời rạc của các thuộc tính; tập các thuộc tính attribute-list.
Đầu ra: Cây quyết định.
Giải thuật:
1) create một nút N;
2) if tất cả các samples cĩ cùng lớp C then
3) return N là một nút lá với nhãn lớp C; 4) if attribute-list là rỗng then
5) return N là một nút lá với nhãn là lớp phổ biến nhất trong samples;
6) select test-attribute - là thuộc tính cĩ thơng tin thu được cao nhất trong attribute-list; 7) Nhãn nút N là test-attribute;
8) for mỗi một giá trị 𝑎𝑖 của test-attribute
9) Phát triển một nhánh từ nút N với điều kiện test-attribute= 𝑎𝑖; 10) Đặt 𝑠𝑖là tập các mẫu trong samples cĩ test-attribute= 𝑎𝑖; 11) if 𝑠𝑖 là rỗng then
12) gắn một lá với nhãn là lớp phổ biến nhất trong samples;
13) else gắn một nút được trả lại bởi Generate_decision_tree(si, attribute-list - test- attribute);
Hình 2.3: Giải thuật ID3 cho cây quyết định
Giải thuật nền tảng của cây quyết định quy nạp là ID3, một giải thuật cây quyết định quy nạp nổi tiếng. Mở rộng giải thuật được thảo luận trong mục 2.3.4 tới 2.3.5.
Phép đo lựa chọn thuộc tính:
Phép đo thơng tin thu được (information gain) được dùng để lựa chọn thuộc tính kiểm định tại mỗi nút trên cây. Phép đo như vậy cịn được gọi là phépđo lựa chọn thuộc tính hay phép đo chất lượng phân chia. Thuộc tính với thơng tin thu được cao nhất (hay
entropy lớn nhất) được chọn là thuộc tính kiểm định tại nút hiện thời. Thuộc tính này tối thiểu hố thơng tin cần thiết để phân lớp các mẫu. Phép đo thơng tin này sẽ tiến tới cực tiểu hố số lượng các kiểm định cần thiết để phân lớp một đối tượng và đảm bảo rằng một cây đơn giản (nhưng khơng nhất thiết phải là đơn giản nhất) được tìm thấy.
Cho S là tập gồm s mẫu dữ liệu. Giả sử thuộc tính nhãn lớp cĩ m giá trị riêng biệt định nghĩa m lớp riêng biệt (với i = 1,...,m), 𝑠𝑖 là số lượng các mẫu của S trong lớp 𝐶𝑖. Thơng tin cần thiết để phân lớp một mẫu cho trước được thể hiện trong phương trình (2.1):
𝐼(𝑠1,𝑠2,… , 𝑠𝑚) = − ∑ 𝑝𝑖 𝑙𝑜𝑔2 (𝑝𝑖 ) 𝑚
𝑖=1
(2.1)
với 𝑝𝑖,là xác suất một mẫu tuỳ ý thuộc lớp 𝐶𝑖,và bằng 𝑠𝑖,/s .
Cho thuộc tính A cĩ v giá trị riêng biệt, {𝑎1,𝑎2,, … , 𝑎𝑣}. Thuộc tính A dùng để phân chia S vào trong v tập con {𝑠1,𝑠2,… , 𝑠𝑣}, Si là các mẫu trong S cĩ giá trị thuộc tính A là ai. Nếu A được chọn là thuộc tính kiểm định (tức là thuộc tính tốt nhất để phân chia), thì các tập con này sẽ tương đương với các nhánh tăng trưởng từ nút chứa tập S. Cho 𝑠𝑖𝑗 là số các mẫu của lớp 𝐶𝑖trong tập con 𝑆𝑗. Entropy hay thơng tin cần để phân chia s mẫu vào trong v
tập con là: 𝐸(𝐴) = ∑𝑠𝑖𝑗 + ⋯ + 𝑠𝑚𝑗 s I(𝑠𝑖𝑗, … 𝑠𝑚𝑗) 𝑣 𝑗=1 (2.2)
Mã hố thơng tin sẽ cĩ được bằng cách phân nhánh trên A là:
Gain(A) = I(𝑠1,𝑠2,… , 𝑠𝑚) − 𝐸(𝐴) (2.3)
Giải thuật tính tốn thơng tin thu được của từng thuộc tính. Thuộc tính với thơng tin thu được cao nhất được lựa chọn là thuộc tính kiểm định cho tập S. Tạo một nút với nhãn là thuộc tính đĩ, các nhánh được tạo cho mỗi giá trị của thuộc tính này và các mẫu được phân chia phù hợp.
Ví dụ 2.2: Quy nạp của một cây quyết định: Bảng 2.1 miêu tả một tập huấn luyện các bộ dữ liệu lấy từ cơ sở dữ liệu khách hàng AllElectronics. Thuộc tính nhãn lớp mua máy tính cĩ hai giá trị riêng biệt là {Cĩ,Khơng}, do vậy cĩ hai nhãn riêng biệt (m=2). Cho
C1 tương đương với lớp Cĩ và nhãn C2 tương đương với Khơng. Cĩ 9 mẫu của lớp Cĩ và 5 mẫu của lớp Khơng. Để tính tốn thơng tin thu được của từng thuộc tính, trước tiên ta sử dụng phương trình (2.1) để tính tốn thơng tin cần phân lớp một mẫu cho trước:
I(𝑠1,𝑠2) = 𝐼(9,5) = − 9 14𝑙𝑜𝑔2 9 14− 5 14𝑙𝑜𝑔2 5 14= 0.940
Tiếp theo ta cần tính entropy của từng thuộc tính. Bắt đầu với thuộc tính tuổi. Ta cần xem sự phân bổ của các mẫu cĩ và khơng cho mỗi giá trị của tuổi. Ta tính thơng tin trơng chờ cho mỗi phân bổ này:
For tuổi="<30": 𝑠11 = 2 𝑠21 = 3 I(𝑠11, 𝑠21) = 0.971 For tuổi="30-40": 𝑠12 = 4 𝑠22 = 0 I(𝑠12, 𝑠22) = 0 For tuổi=">40": 𝑠13 = 3 𝑠23 = 2 I(𝑠13, 𝑠23) = 0.971
Bảng 2. 1 Các bộ dữ liệu huấn luyện từ cơ sở dữ liệu khách hang AllElectronics
STT Tuổi Thu nhập Sinh viên Độ tín nhiệm Lớp: mua máy tính
1 <30 Cao Khơng Khá tốt Khơng
2 <30 Cao Khơng Tốt Khơng
3 30-40 Cao Khơng Khá tốt Cĩ
4 >40 Trung bình Khơng Khá tốt Cĩ
5 >40 Thấp Cĩ Khá tốt Cĩ
6 >40 Thấp Cĩ Tốt Khơng
7 30-40 Thấp Cĩ Tốt Cĩ
8 <30 Trung bình Khơng Khá tốt Khơng
9 <30 Thấp Cĩ Khá tốt Cĩ
10 >40 Trung bình Cĩ Khá tốt Cĩ
11 <30 Trung bình Cĩ Tốt Cĩ
12 30-40 Trung bình Khơng Tốt Cĩ
13 30-40 Cao Cĩ Khá tốt Cĩ
Sử dụng phương trình (2.2), thơng tin trơng chờ cần phân lớp một mẫu cho trước nếu các mẫu này được phân chia theo tuổi là:
𝐸(𝑇𝑢𝑜𝑖) = 5
14𝐼(𝑠11,𝑠21) + 4
14𝐼(𝑠12,𝑠22) + 5
14𝐼(𝑠13,𝑠23) = 0.694
Do vậy thơng tin thu được từ sự phân chia là:
𝐺𝑎𝑖𝑛(𝑡𝑢ổ𝑖) = 𝐼(𝑠11,𝑠21) − 𝐸(𝑡𝑢ổ𝑖) = 0.246
Tương tự như vậy, ta cĩ thể tính Gain(thu nhập) = 0.029, Gain(sinh viên)= 0.151, và Gain(độ tín nhiệm) = 0.048. Từ đĩ thuộc tính tuổi thu được thơng tin cao nhất, nĩ được chọn lựa là thuộc tính kiểm định. Một nút được tạo lập và gắn nhãn với tuổi và phân nhánh tăng trưởng đối với từng giá trị thuộc tính. Các mẫu sau đĩ được phân chia theo, như hình 2.4. Các mẫu rơi vào nhánh tuổi = 30-40 đều thuộc về lớp Cĩ, do vậy một lá với nhãn Cĩ
được tạo lập tại đoạn cuối của nhánh này. Cây quyết định cuối cùng cĩ được bởi thuật giải được thể hiện trong hình 2.2.
(Viết tắt trong hình 2.4: TN: Thu nhập; SV: Sinh viên; ĐTN: Độ tín nhiệm; TB: Trung bình; KT: Khá tốt; C: Cĩ; K: Khơng; L:Lớp)
Hinh 2. 3. Thuộc tính tuổi cĩ thơng tin thu được cao nhất
Tuổi trở thành một thuộc tính kiểm định tại nút gốc của cây quyết định. Các nhánh được tăng trưởng theo từng giá trị của tuổi. Các mẫu được phân chia theo từng nhánh.