You are on page 1of 18

Chương 3

CÂY QUYẾT ĐỊNH


Classification – Decision tree (J48)
Nội dung
▪ Giới thiệu về Cây quyết định
▪ Ví dụ minh hoạ
▪ Một số thuật toán xây dựng Cây quyết định
▪ Hướng dẫn xây dựng mô hình cây quyết định bằng Weka Explorer
▪ Hướng dẫn lập trình sử dụng mô hình cây quyết định bằng Weka API
Nút gốc Nút trung gian

Giới thiệu
Cây quyết định là một cấu trúc luồng dạng
cây, với mỗi nút trung gian (không phải
nút lá) đại diện cho một phép thử trên một
thuộc tính. Mỗi nhánh đại diện cho một
đầu ra (kết quả) của phép thử. Và mỗi nút
lá (nút cuối cùng) đại diện cho một nhãn
lớp. Nút trên cùng của cây được gọi là nút
gốc.
Một đường đi từ nút gốc đến một nút lá
biểu đạt dự đoán phân lớp cho một bộ dữ
liệu tương ứng. Cây quyết định có thể dễ
dàng chuyển đổi thành các luật phân lớp.

Nút lá
Cây quyết định (tt)
Cây quyết định được sử dụng rất phổ biến bởi một số lí do sau:
▪ Việc xây dựng cây quyết định không đòi hỏi bất cứ kiến thức chuyên ngành hay thiết lập
tham số ban đầu nào cả. Vì vậy, nó phù hợp với viêc khám phá tri thức.
▪ Cây quyết định có thể quản lý dữ liệu có số chiều lớn.
▪ Việc biểu đạt tri thức dưới dạng cây có thể được diễn đạt dễ dàng.
▪ Quá trình học và phân lớp (sử dụng) của cây quyết định được thực hiện nhanh chóng.
▪ Nhìn chung, cây quyết định cho độ chính xác cao. Tuy nhiên điều này còn phụ thuộc vào
dữ liệu của chúng ta.
Xây dựng cây quyết định
Việc xây dựng cây quyết định liên quan đến những nội dung chủ yếu sau:
▪ Thuật toán tạo cây quyết định
▪ Các phép đo để lựa chọn thuộc tính nhằm phân chia dữ liệu trong quá trình xây dựng cây
quyết định, như: information gain, gain ratio hay gini index.
▪ Thu gọn cây quyết định (tree pruning): nhằm phát hiện và loại bỏ những nhánh làm nhiễu
hay diễn đạt các ngoại lệ trong vùng dữ liệu huấn luyện.
▪ Phép quy nạp đối với cây quyết định trong trường hợp xây dựng cây quyết định trên tập
dữ liệu lớn.
Ví dụ: 1 thuật toán xây dựng cây quyết định
Thuật toán ID3
Do J. Ross Quinlan giới thiệu

Step 1: If all instances in C are positive, then create ▪ ID3 lựa chọn thuộc tính (feature) phân
YES node and halt. tách (separate) dựa vào heuristic. Việc lựa
chọn này dựa trên phép tính entropy và
If all instances in C are negative, create a NO node information gain
and halt.
Otherwise select a feature, F with values v1, ..., vn
and create a decision node.
Step 2: Partition the training instances in C into
subsets C1, C2, ..., Cn according to the values of V.
Step 3: apply the algorithm recursively to each of the
sets Ci.
Note, the trainer (the expert) decides which feature to
select.
ID3 (tt): Lựa chọn thuộc tính phân tách
Phép tính entropy Ví dụ

▪ 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 = σ −𝑝 𝐼 . 𝑙𝑜𝑔2 𝑝 𝐼 ▪ Tập dữ liệu S có 14 instance gồm 9


instance thuộc lớp YES và 5 instance
▪ Với: thuộc lớp NO
▪ p(I) là tỉ lệ các instance thuộc lớp I 9 9
▪ 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 = − 𝑙𝑜𝑔2 −
14 14
5 5
𝑙𝑜𝑔2 = 0.940
14 14
ID3 (tt): Lựa chọn thuộc tính phân tách
Phép tính information gain
𝑆𝑣
▪ 𝐺𝑎𝑖𝑛 𝑆, 𝐴 = 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 − σ . 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑣
𝑆

▪ Với:
▪ 𝑆𝑣 là tập con của S mà thuộc tính A nhận giá trị v.
Day Outl. Temp Hum. Wind Play
D1 Sunny Hot High Weak No ID3 (tt): Lựa chọn thuộc tính phân tách
D2 Sunny Hot High Strong No Phép tính information gain(tt)
8
D3 Overcast Hot High Weak Yes ▪ 𝐺𝑎𝑖𝑛 𝑆, 𝑊𝑖𝑛𝑑 = 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆 − . 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑤𝑒𝑎𝑘 −
14
6 8
D4 Rain Mild High Weak Yes . 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑠𝑡𝑟𝑜𝑛𝑔 = 0.940 − . 0.811 −
14 14
D5 Rain Cool Nor. Weak Yes 6
. 1 = 0.048
14
D6 Rain Cool Nor. Strong No
6 6 2 2
D7 Overcast Cool Nor. Strong Yes ▪ 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑤𝑒𝑎𝑘 = − . 𝑙𝑜𝑔2 − . 𝑙𝑜𝑔2
8 8 8 8
D8 Sunny Mild High Weak No 3 3 3 3
▪ 𝑒𝑛𝑡𝑟𝑜𝑝𝑦 𝑆𝑠𝑡𝑟𝑜𝑛𝑔 = − . 𝑙𝑜𝑔2 − . 𝑙𝑜𝑔2
D9 Sunny Cool Nor. Weak Yes 8 8 8 8

D10 Rain Mild Nor. Weak Yes ▪ Tương tự ta có:


D11 Sunny Mild Nor. Strong Yes ▪ Gain(S,Out.) = 0.246; Gain(S,Temp) = 0.029; Gain(S,Hum.) =
D12 Overcast Mild High Strong Yes 0.151;
D13 Overcast Hot Nor. Weak Yes ▪ Out. có Gain cao nhất  được chọn làm thuộc tính phân tách cho
nút gốc
D14 Rain Mild High Strong No
Thuật toán ID3 (tt)
▪ Tiếp tục với cách tính như trên, tập S
ban đầu dược chia thành các tập nhỏ hơn
▪ Cây quyết định cuối cùng sẽ có dạng
như hình bên
Chuyển đổi từ cây quyết định sang tập luật
1. IF outlook = sunny AND humidity =
high THEN playball = no
2. IF outlook = rain AND humidity =
high THEN playball = no
3. IF outlook = rain AND wind = strong
THEN playball = yes
4. IF outlook = overcast THEN playball
= yes
5. IF outlook = rain AND wind = weak
THEN playball = yes
Xây dựng mô hình cây quyết định bằng Weka Explorer
Xây dựng mô hình cây quyết định bằng Weka Explorer
Xây dựng mô hình cây quyết định bằng Weka Explorer
Xây dựng mô hình cây quyết định bằng Weka Explorer
Lập trình sử dụng mô hình cây quyết định bằng Weka API
Kết thúc

You might also like