CHƯƠNG 1: GIỚI THIỆU VỀ HỌC MÁY VÀ CÁC MÔ HÌNH HỌC MÁY
1.9. THUẬT TOÁN CÂY QUYẾT ĐỊNH (DECISION TREE)
Thuật toán Cây quyết định là một thuật toán dùng cấu trúc cây để xấp xỉ một hàm cần học và đã được áp dụng thành công trong rất nhiều các bài toán ứng dụng thực tế [3]
1.9.1 Ví dụ về bài toán Cây quyết định
Có một tập dữ liệu S ghi lại dữ liệu thời tiết những ngày mà một người chơi hay không chơi tennis bao gồm: quang cảnh, nhiệt độ, độ ẩm, sức gió. Từ tập dữ liệu này, thuật toán cây quyết định sẽ phải quyết định xem với một tập các dữ liệu mới về thời tiết thì người chơi có chơi tennis hay không?
Hình 1.1. Ví dụ bài toán Cây quyết định
Nguồn: [3]
Kết quả của thuật toán được biểu diễn hình dưới:
✓ Mỗi nút biểu diễn một thuộc tính cần kiểm tra giá trị.
✓ Mỗi nhánh từ một nút tương ứng với một giá trị có thể của thuộc tính gắn với nút đó.
✓ Mỗi nút là biểu diễn một lớp cần phân loại
✓ Mỗi đường đi từ nút gốc đến một nút lá sẽ tương ứng với một kết hợp của các giá trị thuộc tính
✓ Cây quyết định sẽ phân lớp bằng cách duyệt từ nút gốc đến một nút lá.
Và nhãn của điểm dữ liệu mới được đưa vào sẽ được gán với nhãn của lớp lá đó.
1.9.2 Cách học của cây quyết định
Đặt vấn đề: Mỗi điểm dữ liệu x được biểu diễn bởi n thuộc tính x =
(x x x1, 2, 3,...,xn)với mỗi xi là một thuộc tính rời rạc hoặc định danh. Đối với các thuộc tính có giá trị liên tục thì cần được rời rạc hóa thành các giá trị rời rạc bằng cách chia khoảng giá trị liên tục thành một tập các khoảng không giao nhau. Mỗi quan sát trong tập học của dữ liệu có một nhãn tương ứng.
Các bước thực hiện xây dựng một cây quyết định theo chiến lược từ trên xuống dưới bắt đầu từ nút gốc:
1. Ở mỗi nút chọn thuộc tính kiểm tra là thuộc tính có khả năng phân loại tốt nhất đối với các ví dụ học gắn với nút đó.
2. Tạo mới một cây con của nút hiện tại cho mỗi giá trị của thuộc tính kiểm tra, và tập học sẽ được tách ra thành các tập con tương ứng với cây con vừa tạo.
3. Quá trình phát triển cây quyết định sẽ tiếp tục cho đến khi:
• Cây quyết định phân loại hoàn toàn các điểm dữ liệu của tập học
• Tất cả các thuộc tính đã được sử dụng ( mỗi thuộc tính chỉ được phép xuất hiện tối đa một lần đối với bất kỳ một đường đi nào.
Tại mỗi nút, sẽ chọn thuộc tính quan trọng nhất cho việc phân lớp các điểm dữ liệu của tập học gắn với nút đó. Và để đánh giá khả năng của một thuộc tính đối với việc phân tách dữ liệu theo nhãn của chúng, người ta sử dụng một đánh giá thống kê gọi là độ lợi thông tin (Information Gain).
1.9.2.1 Khái niệm về Entropy
Entropy đo mức độ hỗn tạp của một tập. Entropy của tập S với việc phân thành c lớp được tính như sau:
Entropy (S) = 2
1
log
c
i i
i
p p
=
−
Với pi là tỷ lệ các điểm dữ liệu thuộc vào lớp i trong tập S và 0 log 02 =0 Ý nghĩa của Entropy trong lý thuyết thông tin:
• Entropy chỉ ra số bits trung bình cần thiết để mã hóa một lớp trong S
• Entropy của một chỉ số đo giá trị trung bình của lượng thông tin chứa trong dữ liệu đó.
• Entropy của một biến ngẫu nhiên đo mức độ không đoán được của biến ngẫu nhiên đó.
1.9.2.2 Độ lợi thông tin (Information Gain)
Độ lợi thông tin của một thuộc tính đối với một tập S đo mức độ giảm Entropy nếu chia S theo các giá trị của thuộc tính đó
Công thức tổng quát của độ lợi thông tin của thuộc tính A đối với tập S:
Gain (S,A) = Entropy (S) -
(A)
* ( )
v
v v Values
S Entropy S
S
Trong đó Values(A) là tập các giá trị có thể của thuộc tính A
Trong ví dụ trên tập S bao gồm 14 quan sát với 9 quan sát thuộc về lớp ‘Yes’
và 5 quan sát thuộc về lớp ‘No’
Entropy (S) = 9 2 9 5 2 5
* log ( ) * log ( ) 0.94
14 14 14 14
− −
Bước tiếp theo sẽ tính độ lợi thông tin của bốn thuộc tính: Outlook, Temperature, Humidity và Wind.
Hình 1.2. Cơ chế lọc dữ liệu của Cây quyết định
Nguồn: [3]
Thuộc tính Wind có hai giá trị là: Weak và Strong
S = {9 quan sát thuộc lớp ‘Yes’ và 5 quan sát thuộc lớp ‘No’}
SWeak = {6 quan sát thuộc lớp ‘Yes’ và 2 quan sát thuộc lớp ‘No’ có giá trị Wind = Weak}
Strong
S ={3 quan sát thuộc lớp ‘Yes’ và 3 quan sát thuộc lớp ‘No’ có giá trị Wind = Strong}
Gain (S, Wind) = Entropy (S) -
{ ,Weak}
* ( )
v
v v Strong
S Entropy S
S
= Entropy (S) - 8 6
* ( ) * ( )
14 Entropy SWeak −14 Entropy SStrong
= 8 6 2 6 2 2 2 6 3 2 3 3 2 3
0.94 *[ * log ( ) * log ( )] *[ * log ( ) * log ( )]
14 8 8 8 8 14 6 6 6 6
− − − − − −
= 0.048
Thực hiện tính toán tương tự cho các thuộc tính còn lại ta được:
• Gain (S, Outlook) = 0.246
• Gain (S, Temperature) = 0.029
• Gain (S, Humidity) = 0.151
Vậy tại nút gốc thuộc tính Outlook sẽ được chọn làm thuộc tính kiểm tra vì có giá trị độ lợi thông tin là lớn nhất: 0.246
Hình 1.3. Cơ chế tiên phân loại cho nút gốc của Cây quyết định
Nguồn: [3]
Tại nút Node1 ta tiếp tục kiểm tra xem thuộc tính nào trong số 3 thuộc tính còn lại: {Temperature, Humidity, Wind} nên được lựa chọn dựa trên độ lợi thông tin của mỗi thuộc tính
Ta có kết quả sau khi tính toán:
• Gain (SSunny, Temperature) = 0.57
• Gain (SSunny, Humidity) = 0.97
• Gain (SSunny, Wind) = 0.019
Vậy Humidity sẽ là thuộc tính được chọn tại Node1
Tiếp tục thực hiện ta sẽ có được kết quả phân loại của cây quyết định:
Hình 1.4. Kết quả phân loại của Cây quyết định
Nguồn: [3]