DSS06 CLS DecisionTree VN

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

HỆ HỖ TRỢ QUYẾT ĐỊNH

Bài 6: Phân lớp – Cây quyết định


Nội dung
 Cây quyết định
 Giảm độ không chắc chắn
 Xây dựng cây quyết định
 Tổng kết về cây quyết định

2
Cây quyết định
• Thí dụ: một sinh viên đặt ra quy tắc học hay chơi của mình
như sau:

3
Cây quyết định
Golf play: Yes (red), No (blue)

4
Xây dựng cây quyết định từ dữ liệu thế nào?
• Cho dữ liệu, làm sao để xây dựng được mô hình phân lớp
(cây quyết định)?

5
Cây quyết định
• Cây phân lớp: để tách dữ liệu vào các lớp tương ứng với
biến mục tiêu
• Trực quan và dễ thành lập
• Dễ diễn dịch
• Thường tách thành hai lớp: Yes or No (1 or 0)
• Nhưng có thể có nhiều lớp
• Cây hồi quy: được sử dụng cho các bài toán dự báo giá trị số

6
Thí dụ: Golf data

7
Ý tưởng xây dựng cây quyết định
• Xác định thứ tự các thuộc tính trong mỗi bước
• Đối với các bài toán có nhiều thuộc tính và mỗi
thuộc tính có nhiều giá trị khác nhau, việc tìm lời
giải tối ưu thường không khả thi
• Phương pháp đơn giản là chọn thuộc tính tốt nhất
trong mỗi bước dựa trên một số tiêu chuẩn nào đó
• Với mỗi thuộc tính được chọn, chia dữ liệu vào các
node con tương ứng với các giá trị của thuộc tính
đó và tiếp tục áp dụng phương pháp này cho mỗi
nút con.
• Chọn thuộc tính tốt nhất ở mỗi bước như trên gọi
là lựa chọn tham lam.

8
Giảm độ không chắc chắn thế nào
• Giả sử một hộp có thể chứa một quả bóng với một trong ba
màu — red, yellow, và blue
• Không mở hộp, nếu phải “đoán” màu của quả bóng trong
hộp, thì nghĩa là ta phải giải quyết vấn đề mà thiếu thông tin
hay có sự không chắc chắn.
• Số câu hỏi “yes/no” nhiều nhất cần để đạt được sự chắc
chắn về màu của quả bóng trong hộp là bao nhiêu?
1. Is it red? No.
2. Is it yellow? No.
Then it must be blue.
• Đó là 2 câu hỏi.

ball-in-a-box problem
9
Giảm độ không chắc chắn
• Số câu hỏi yes/no nhiều nhất cần để giảm sự không chắc
chắn là log 2 (𝑇), với T là số kết cục có thể
• Nếu có chỉ một màu, hay 1 kết cục, thì log 2 (1) = 0, nghĩa
là không có sự không chắc chắn
• Nếu 𝑇 sự kiện với xác suất 𝑃, thì 𝑇 = 1/𝑃
1
• Claude Shannon định nghĩa Entropy là log 2 ( ), hay − log 2 𝑝
𝑃
với 𝑝 là xác suất sự kiện xảy ra
• Nếu xác suất của tất cả các sự kiện không đồng nhất với
nhau, biểu thức có trọng số xác định entropy, 𝐻, được điều
chỉnh như sau:
𝑚

𝐻 = − ෍ 𝑝𝑘 log 2 (𝑝𝑘 )
𝑘=1

10
Entropy
• Đồ thị của hàm entropy với 𝑛 = 2

• P là tinh khiết: 𝑝𝑖 = 0 hay 𝑝𝑖 = 1, 𝐻 𝑝 = 0


• P không tinh khiết: 𝑝𝑖 <> 0, giá trị lớn nhất khi 𝑝𝑖 = 0.5
11
Đo mức độ không tinh khiết
• Mỗi chia tách sẽ làm nút con tinh khiết hơn

12
Entropy và Gini index
• Nếu tập dữ liệu có 100 mẫu với 50% cho mỗi loại, thì
entropy của dữ liệu được tính bằng
• 𝐻 = −[(0.5 log 2 0.5) + (0.5 log 2 0.5)] = − log 2 0.5 = 1
• Mặt khác, nếu dữ liệu được chia vào hai tập mỗi tập 50 mẫu
và chứa chỉ một loại, thì entropy của mỗi phần được tính
𝐻 = −1 log 2 1 = 0
• Một tỷ lệ mẫu nào đó trong tập dữ liệu sẽ có entropy giữa 0
và 1 (giá trị lớn nhất)
• Chỉ số Gini index (G) tương tự chỉ số entroy ở các thuộc tính
của nó và được xác định như
• 𝐺 = 1 − σ𝑚 𝑘=1 𝑝𝑘
• Giá trị của 𝐺 nằm giữa 0 và 0.5

13
Tiêu chuẩn tách nút
• Số đo độ không tinh khiết (độ đục) của tập dữ liệu
đạt giá trị lớn nhất khi tất cả các lớp có thể xuất
hiện với tần suất bằng nhau.
• Số đo độ đục của tập dữ liệu đạt giá trị nhỏ nhất là
0 khi chỉ một lớp xuất hiện trong tập dữ liệu.
• Các số đo entropy và Gini index đáp ứng những tiêu
chuẩn này và được sử dụng để xây dựng cây quyết
định.
• Các tiêu chuẩn khác nhau sẽ xây dựng các cây khác
nhau và có các độ lệnh khác nhau.

14
Xây dựng cây quyết định
• Hai bước:
• Bước 1: Chia dữ liệu ở đâu?
• Bước 2: Khi nào dừng chia dữ liệu?
• Giải thuật Iterative Dichotomizer (ID3)
• Một giải thuật khác như Classification and
Regression Tree (CART)

15
Bước 1: Chia dữ liệu ở đâu?

16
Giải thuật
• Xét nút trong, 𝑁 điểm dữ liệu, 𝑁𝑐 điểm thuộc lớp 𝑐 (𝑐 =
1,2, … 𝐶). Entropy của nút là:
𝐶 𝑁𝑐 𝑁𝑐
𝐻 𝑆 = − σ𝑐=1 log (1)
𝑁 𝑁
• Chọn thuộc tính 𝑥. Dựa trên 𝑥, Các điểm dữ liệu 𝑆 được
phân lớp vào 𝐾 nút con 𝑆1 , 𝑆2 , … , 𝑆𝐾 với số điểm dữ liệu của
mỗi nút con là 𝑚1 , 𝑚2 , … , 𝑚𝐾 . Định nghĩa
𝑚𝑘
𝐻 𝑥, 𝑆 = σ𝐾
𝑘=1 𝐻(𝑆𝑘 ) (2)
𝑁
• Thông tin đạt được dựa trên thuộc tính x được xác định:
𝐺 𝑥, 𝑆 = 𝐻 𝑆 − 𝐻 𝑥, 𝑆
• Trong ID3, với mỗi nút, thuộc tính được chọn dựa trên:
𝑥 ∗ = arg max 𝐺 𝑥, 𝑆 = arg min 𝐻(𝑥, 𝑆)
𝑥 𝑥

17
Thí dụ – Đội bóng ra sân hay không?

18
Entropy của nút gốc

9 5
𝐻 𝑆 = −9/14 ∗ log 2 − 5/14 ∗ log 2 =0.94
14 14
19
Xét thuộc tính outlook

20
Thuộc tính Outlook
2 2 3 3
𝐻 𝑆𝑠 = − ∗ log 2 − ∗ log 2 = 0.97
5 5 5 5
𝐻 𝑆𝑂 =0
3 3 2 2
𝐻 𝑆𝑅 = − ∗ log 2 − ∗ log 2 = 0.97
5 5 5 5

5 4 5
𝐻 𝑜𝑢𝑡𝑙𝑜𝑜𝑘, 𝑆 = 𝐻 𝑆𝑠 + 𝐻 𝑆𝑂 + 𝐻 𝑆𝑅 = 0.69
14 14 14

21
Các thuộc tính Temperature, Humidity, Wind
• 𝐻 𝑡𝑒𝑚𝑝𝑒𝑟𝑎𝑡𝑢𝑟𝑒, 𝑆 = 0.91
• 𝐻(ℎ𝑢𝑚𝑖𝑑𝑖𝑡𝑦, 𝑆) = 0.79
• 𝐻(𝑤𝑖𝑛𝑑, 𝑆) = 0.89

Outlook được chọn trong bước đầu tiên

22
Thí dụ dữ liệu Golf

23
• Bắt đầu phân chia dữ
liệu dựa trên mỗi thuộc
tính
• Xét thuộc tính Outlook.
Có 3 giá trị cho thuộc
tính này: sunny,
overcast, và rain.

24
• Với các thuộc tính kiểu số, các điểm phân tách có thể được
chọn là giá trị trung bình của các giá trị có thể. Thí dụ, điểm
phân tách tiềm năng đầu tiên cho Humidity có thể là trung
bình [65,70], mà là 67.5, điểm phân tách tiềm năng tiếp
theo có thể là trung bình [70,75], mà là 72.5, và cứ tiếp tục
vậy.

25
26
27
Bước 2: Khi nào dừng phân tách?
• Giải thuật nên xác định tiêu chí dừng.
• Có một vài tình huống mà tiến trình có thể dừng:
• Không còn thuộc tính thỏa mãn ngưỡng information gain tối thiểu
• Đã đạt tới mức sâu cực đại: khi cây phát triển lớn lên, không chỉ việc
diễn dịch sẽ khó hơn mà còn có thể rơi vào tình huống overfitting.
• Có ít hơn số lượng mẫu trong cây con hiện tại: một lần nữa đây là cơ
chế chống overfitting.
• Để chống lại overfitting, việc phát triển cây cần được ràng buộc
hay được rút gọn, sử dụng một tiến trình gọi là cắt tỉa (pruning)
• Tiền cắt tỉa (pre-pruning): việc cắt tỉa xảy ra trước hoặc trong khi
phát triển cây.
• Cũng có các phương pháp không ràng buộc số nhánh và cho phép
cây phát triển sâu theo dữ liệu, và sau đó cắt tỉa các nhánh này
sao cho nó không ảnh hưởng tới tỷ lệ lỗi phân lớp. Cách này được
gọi là hậu cắt tỉa (post-pruning).

28
Cắt tỉa sau
• Cắt tỉa để giảm lỗi: dựa trên tập validation
• Regularization: thêm regularization vào hàm loss,
regularization sẽ lớn nếu số nút lá lớn
𝐾
𝑆𝑘
𝐿=෍ 𝐻 𝑆𝑘 + 𝜆𝐾
𝑆
𝑘=1
• Trước hết, xây dựng cây mà mọi điểm dữ liệu trong
training set được phân lớp hoàn hảo (tất cả entropy của
các nút là 0). Bây giờ loss dữ liệu là 0 nhưng
regularization có thể lớn, do đó L lớn.
• Sau đó cắt tỉa các nút lá sao cho L giảm. Việc cắt tỉa được
lặp lại tới khi L không thể giảm nữa.

29
Cây quyết định – Xây dựng mô hình
1. Tính Shannon Entropy (chưa phân tách)
2. Tính entropy có trọng số của mỗi biến độc lập
dựa trên biến mục tiêu
3. Tính Information gain
4. Chọn biến độc lập với information gain cao nhất
để tạo nút chia
5. Lặp lại tiến trình này. Nếu entropu của một biến
là 0 thì biến đó trở thành lá

30
Tổng kết về cây quyết định
• Mô hình cây quyết định có dạng lưu đồ quyết định (decision
flowchart)
• Một thuộc tính được kiểm tra ở mỗi nút
• Ở cuối của đường dẫn cây quyết định là nút lá, ở đó quyết
định được tạo ra.
• Các nút chia dữ liệu vào các tập con.
• Trong cây quyết định, ý tưởng để tách dữ liệu là dựa trên sự
đồng nhất của dữ liệu.
• Cần có một số đo chặt chẽ về độ đục đáp ứng các tiêu
chuẩn nào đó, dựa trên tính toán về tỷ lệ của dữ liệu thuộc
về một lớp.

31
• RapidMiner process files and data sets
• http://www.introdatascience.com/uploads/4/2/1/5
/42154413/second_ed_rm_process.zip

32

You might also like