IV. Cây quyết định
11) Minh họa thuật toán:
Bước 1:
Xét thuộc tính Màu tóc - Xét giá trị Tóc vàng:
Vtóc(vàng) = {T(vàng, cháy nắng), T(vàng, không cháy nắng)} Số người tóc vàng là: 4
Số người tóc vàng và cháy nắng là: 2
Số người tóc vàng và không cháy nắng là: 2 Như vậy: Vtóc(vàng) = (2/4, 2/4) = (0.5, 0.5) - Tương tự xét giá trị tóc nâu:
Số người tóc nâu là: 3
Số người tóc nâu và cháy nắng là: 0
Số người tóc nâu và không cháy nắng là: 3
Như vậy: Vtóc(nâu) = (0/3, 3/3) = (0, 1) à vector đơn vị - Tóc đỏ:
Vtóc(đỏ) = (1/1, 0/1) = (1, 0) à Vector đơn vị
Tổng số vector đơn vị của thuộc tính Màu Tóc là 2 Xét thuộc tính Chiều cao
Vchiều.cao(cao) = (0/2, 2/2) = (0, 1) V (trung bình) = (2/3, 1/3)
Xét thuộc tính Cân nặng Vcân.nặng(nhẹ) = (1/2, 1/2) Vcân.nặng(trung bình) = (1/3, 2/3) Vcân.nặng(nặng) = (1/3, 2/3) Xét thuộc tính Dùng kem Vdùng.kem(có) = (3/4, 0/3) = (0, 1) Vdùng.kem(không) = (3/5, 2/5)
Như vậy: thuộc tính màu tóc có số vector đơn vị nhiều nhất (2 vector đơn vị) nên sẽ được chọn đầu tiên để phân hoạch.
Sau khi phân hoạch theo tóc vàng ta có tập phân hoạch:
Tên Chiều cao Cân nặng Dùng kem? Kết quả Sarah Trung bình Nhẹ Không Cháy nắng
Dana Cao Trung bình Có Không
Annie Thấp Trung bình Không Cháy nắng
Kartie Thấp Nhẹ Có Không
(Bảng số 2)
Bước 2:
Trong tập phân hoạch này ta thấy còn chứa những người cháy nắng và không cháy nắng, tiếp tục phân hoạch tập này. Tính vector đặc trưng trên các tập còn lại (chiều cao, cân nặng, dùng kem).
Xét thuộc tính Chiều cao
Màu tóc Dùng kem - Emmile Đỏ Nâu - Alex - Peter - John Vàng Không Có - Sarah - Annie - Dana - Kartie Vchiều.cao(thấp) = (1/2, 1/2) Xét thuộc tính Cân nặng Vcân.nặng(nhẹ) = (1/2, 1/2) Vcân.nặng(trung bình) = (1/2, 1/2) Vcân.nặng(nặng) = (0, 0) Xét thuộc tính Dùng kem Vdùng.kem(có) = (0/2, 2/2) = (0, 1) Vdùng.kem(không) = (2/2, 0/2) = (0, 1)
Vì hai thuộc tính dùng kem và chiều cao đều có cùng 2 vector đơn vị, tuy nhiên số phân hoạch của thuộc tính dùng kem là ít hơn nên ta chọn phân hoạch theo thuộc tính dùng kem. Những tập phân hoạch đạt được trong bước này không còn lẫn lộn người cháy nắng và không cháy nắng nên thuật toán kết thúc.
j bj bt x bj bt - x log2 bj bt - TA =
Nhận xét (độ đo hỗn loạn) : Thay vì phải xây dựng vector đặc trưng như phương pháp của Quinlan, ứng với mỗi thuộc tính dẫn xuất ta chỉ cần tính ra độ đo hỗn loạn và lựa chọn thuộc tính nào có độ đo hỗn loạn là thấp nhất. Người ta tính được công thức như sau: Gọi TA là độ đo hỗn loạn của một thuộc tính A, ta có:
Trong đó:
bt là tổng số phần tử có trong phân hoạch
bj là số phần tử có thuộc tính dẫn xuất A có giá trị j
bri là tổng số phần tử có thuộc tính dẫn xuất A có giá trị j và thuộc tính mục tiêu có giá trị i.
Tính độ đo hỗn loạn trong bài toán trên:
Tập tóc Vàng có 2 người cháy nắng và 2 người không cháy nắng; Tập tóc Đỏ chỉ có 1 người cháy nắng;
Tập tóc Nâu cả 3 người không cháy nắng, độ đo hỗn loạn được tính như sau, và cho kết quả là 0.5
Ttóc = 4/8(-2/4log22/4 – 2/4log22/4) + 1/8(-1/1log21/1 – 0/1log20/1) + 3/8(-3/3log23/3)
Ttóc = 4/8(-2/4log22/4 – 2/4log22/4) + 1/8*0 + 3/8*0 Ttóc = 0.5
Tchiều.cao = 0.69 Tcân.nặng = 0.94 Tdùng.thuốc = 0.61
à Ta chọn được thuộc tính màu tóc để phân hoạch ,Tiếp tục tính độ đo hỗn loạn trên các thuộc tính còn lại
Tchiều.cao = 0.5 Tcân.nặng = 1.0 Tdùng.thuốc = 0.0
à Thuộc tính tiếp theo được chọn là dùng thuốc (TA = 0) Phát sinh tập luật:
Dựa vào cây định danh được xây dựng như trong hình số 5 mục 2, các quyết định được phát sinh như sau: Người ta theo các nhánh của cây từ gốc đến lá lấy các thử nghiệm là giả thiết và lấy nút lá làm kết luận, có các luật sau:
(Hình số 6)
Vấn đề còn lại là làm sao tối ưu hóa tập luật này nếu nó có tồn tại luật dư thừa. Tối ưu hóa tập luật:
Loại bỏ giả thiết không cần thiết trong luật :Sau khi các luật chuyển từ cây định 1. (Màu tóc vàng) và (có dùng kem) à không cháy nắng
2. (Màu tóc nâu) và (không dùng kem) à cháy nắng 3. (Màu tóc nâu) à không cháy nắng
người ta sẽ bỏ đi những giả thiết nào có thể bỏ đi mà không thay đổi tác dụng của luật đối với mẫu ,Ta lần lượt xét 4 tập luật ở trên:
Xét luật 1:
IF (Màu tóc Vàng) và (có dùng kem) THEN không cháy nắng
Giả thiết có 2 phần, nếu bỏ đi phần “màu tóc”, còn lại “có dùng kem”, theo các mẫu, người có dùng kem là {Dana, Alex, Kartie} cả 3 người này không ai bị cháy nắng, tức là không ai trái với phần kết luận cả. Do đó người ta có thể bỏ đi phần giả thiết về “màu tóc” để có luật sau vẫn tương đương:
IF (có dùng kem) THEN không cháy nắng
Để dễ dàng trong suy luận người ta đưa ra bảng ngẫu nhiên (gọi là bảng ngẫu nhiên vì kết quả của bảng phụ thuộc vào dữ liệu cho trong bảng quan sát) như sau:
Màu tóc Người không cháy nắng Người bị cháy nắng Tóc vàng Tóc không vàng 2 1 0 0
Bảng trên cho thấy một tri thức là người có tóc vàng không quyết định gì trong việc họ có bị cháy nắng hay không (vì không có người tóc vàng nào bị cháy nắng) à có thể loại bỏ thuộc tính tóc trong luật 1, Nếu bỏ đi thuộc tính dùng kem ta có:
Dùng kem Người không cháy nắng
Người bị cháy nắng
Rõ ràng ta không thể loại bỏ thuộc tính “dùng kem” này trong luật này Xét luật 2:
IF (Màu tóc nâu) và (không dùng kem) THEN cháy nắng Bỏ giả thiết “màu tóc”:
Màu tóc Người không cháy nắng Người bị cháy nắng Tóc vàng Tóc không vàng 0 2 2 2
Bỏ giả thiết “dùng kem”:
Hai bảng trên cho thấy không thể bỏ đi giả thiết nào trong luật này vì người ta không thể bảo đảm kết luận vẫn đúng nếu bỏ đi một trong 2 giả thiết đã cho, có nghĩa là luật này không thể cho đơn giản hơn được nữa.
Xét luật 3 và 4 ta cũng không thể loại bỏ giả thiết nào.
Tóm lại: Sau khi loại bỏ giả thiết thừa, tập luật trên có thể tóm gọn hơn như sau: 5. (Có dùng kem) à không cháy nắng
Dùng kem Người không cháy nắng Người bị cháy nắng Có dùng Không dùng 2 0 0 2
(Hình số 7)
Loại bỏ luật thừa:
Nếu suy luận kỹ hơn chút nữa sau khi loại bỏ giả thiết thừa trong phần (a), ta có thể thấy rằng đôi khi cũng còn có luật thừa vì trùng suy luận thông tin với các luật khác trong tập luật. Ta dùng các suy luận sau đây để loại bỏ luật thừa:
Với tập luật thu được ở hình số 7 ta thấy có 2 kết luận không cháy nắng (luật 1 & 3) và 2 kết luận cháy nắng (luật 2 & 4). Người ta có thể dùng luật mặc định để thay thế một hay nhiều luật có trong tập luật nếu luật mặc định đó không làm mất đi tính đúng đắn ban đầu. Luật mặc định là luật được dùng chỉ khi không có luật nào. Do có hai kết luận nên có hai khả năng của luật mặc định:
IF không có giả thiết THEN người đó bị cháy nắng (a)
IF không có giả thiết THEN người đó không cháy nắng (b)
Dễ thấy rằng luật mặc định (a) có thể thay thế cho luật (2) và luật (4) vì “không có giả thiết” đại diện cho nhiều giả thiết nhất “màu tóc nâu”, “không dùng kem” và “màu tóc đỏ”
Như vậy tập luật hình 7 có thể thay thế bằng một tập luật khác sau khi loại bỏ luật bằng cách thay thế vào luật mặc định đại diện cho luật 2 & 4 như sau:
1. (Có dùng kem) à không cháy nắng 2. (Màu tóc nâu) à không cháy nắng 3. (không có giả thiết) à cháy nắng
Sau khi dùng thuật toán Quinlan để xây dựng cây định danh, người ta chuyển về tập luật, đồng thời tối ưu hóa tập luật bằng việc loại bỏ các giả thiết thừa, loại bỏ giả thiết không gây ảnh hưởng đến tập luật. Sau đó loại bỏ luật thừa bằng thay thế vào luật mặc định dựa trên hơn hai tập luật có cùng chung kết luận mà có nhiều giả thiết nhất.
Sau đây ta sẽ nghiên cứu thêm một thuật toán gọi là thuật toán ILA cho việc trực tiếp xác định tập luật từ mẫu dữ liệu có sẵn cho bài toán trên mà thông qua việc xác định cây định danh.