Chương 2 KHAI PHÁ LUẬT KẾT HỢP
2.2.1. Thuật toán học cây quyết định
Phương pháp học cây quyết định là một trong những phương pháp được sử dụng rông rãi nhất cho việc học quy nạp từ một tập mẫu lớn [11]. Đây là phương pháp xấp xỉ các hàm mục tiêu có giá trị rời rạc. Mặt khác cây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật Nếu – Thì (if ... then).
Xét một ví dụ về cây quyết định.
Cho một bảng dữ liệu sau:
Doc ai timetable system patallel relation database process graphic Class AI
D1 1 1 0 0 0 0 0 0 1
D2 1 0 0 0 0 0 0 0 1
D3 0 1 0 0 1 1 1 1 1
D4 1 0 0 0 0 0 0 1 1
D5 1 1 1 1 1 0 0 1 1
D6 0 0 1 1 0 0 0 0 0
D7 0 0 1 0 0 0 0 1 0
D8 0 0 1 0 1 1 0 0 0
D9 1 0 1 1 0 1 0 0 0
D10 1 1 0 0 1 1 1 0 0
Bảng 6. Các ví dụ huấn luyện tron cây quyết định.
Ta có cây quyết định:
Hình trên là một ví dụ về cây quyết định phân lớp AI các mẫu đưa vào theo bảng 5. Mỗi nút của cây biểu diễn một thuộc tính trong các mẫu, mỗi một nhánh tới nút tương ứng với một trong những giá trị cụ thể cho thuộc tính này. Để đơn giản ta chỉ xét các thuộc tính nhị phân, tức là chỉ lấy giá trị là 0 và 1.
Trong bảng 5, dữ liệu huấn luyện là 10 văn bản (trong các bài toán thực tế thì số lượng văn bản có thể lên tới hàng nghìn). Mỗi văn bản có 8 thuộc tính nhị phân tương ứng với việc văn bản đó có hay không có từ đó. Đó là các thuộc tính ai, system, paralell, relation, database, process, graphics.Thuộc tính cuối Class AI cùng là thuộc tính quyết định. Đó là hàm mục tiêu của chúng ta, nó nhận giá trị 1 tức là văn bản đó thuộc lớp AI, 0 tức là văn bản đó không thuộc lớp AI.
Mặt khác, từ cây quyết định trên chúng ta có thể sinh ra được các luật như sau:
1) Nếu (System=1) và (Timetable =1 ) thì class AI =Yes.
2) Nếu (System=1) và (Timetable =0 ) thì class AI =No.
3) Nếu (System=0) và (Process =1 ) thì class AI =No.
4) Nếu (System=0) và ( Process=0 ) thì class AI =Yes.
System
Process Timetable
0 1
0 1
0 1
Yes No Yes No
Hình 2.Một ví dụ về cây quyết đinh.
Giải thích cụ thể hơn ta có:
1) Nếu văn bản có từ System và từ Timetable thì thuộc lớp AI.
2) Nếu văn bản có từ System và không có từ Timetable thì không thuộc lớp AI.
3) Nếu văn bản không có từ System và có từ Process thì không thuộc lớp AI.
4) Nếu văn bản không có từ System và không có từ Process thì thuộc lớp AI.
Những bài toán nên sử dụng việc học cây quyết định:
Trong [10], Mitchel đã chỉ việc sử dụng cây quyết định phù hợp với việc giải quyết các bài toán sau:
− Các mẫu huấn luyện được biểu diễn thành những cặp giá trị - thuộc tính, các thuộc tính là một tập cố định. Các giá trị thuộc tính là rời rạc. Tuy nhiên trong các thuật toán sinh cây quyết định cải tiến sau này cho phép các thuộc tính nhận giá trị là giá trị thực. Đặc biệt là thuật toán sinh cây quyết định sử dụng siêu phẳng được đưa ra trong[9] sẽ được trình chi tiết sau.
− Hàm mục tiêu phải có giá trị rời rạc, trong bài toán phân lớp văn bản trên thì hàm mục tiêu có thể mở rộng thành nhiều giá trị đầu ra.
− Trong trường hợp cần biểu diễn kết quả thu được dưới dạng các mô tả:
Chẳng hạn như là dưới dạng luật thì cấu trúc cây quyết định có thể chuyển sang một cách dễ dàng.
− Tập dữ liệu huấn luyện có thể chứa lỗi: Phương pháp học cây quyết định có thể thực hiện tốt trên các tập dữ liệu chứa lỗi, cả trên các lỗi trong phân lớp ví dụ huấn luyện cũng như lỗi trên các giá trị thuộc tính trong các ví dụ này.
− Tập dữ liệu có thể có những giá trị bị thiếu. Phương pháp cây quyết định có thể được sử dụng trong các trường hợp các ví dụ huấn luyện có những giá trị chưa biết.
Thuật toán ID3
Đây là một thuật toán cơ bản nhất trong lĩnh vực học cây quyết đinh, hầu hết các thuật toán học cây quyết đinh cải tiến sau này đều dựa trên nó. ID3 và các thuật toán cải tiến của nó đều dựa vào cách tiếp cận từ trên xuống.
Trong các thuật toán học cây quyết định thì thuật toán ID3 và thuật toán C4.5 là phổ biến nhất. Thuật toán ID3 lần đầu tiên được Quinlan giới thiệu năm 1975 trong tạp trí Machine Learning, Vol 1, No.1.Sau đây chúng tôi trình bày thuật toán ID3, thuật toán được mô tả như sau [9]:
ID3(Examples, Target attribute, Attributes) Examples: Tập các ví dụ huấn luyện.
Target attribute: là thuộc tính đầu ra cho cây quyết định.
Attributes:Danh sách các thuộc tính.
Kết quả trả về là một câu quyết định phân lớp đúng các mẫu ví dụ đưa ra.
• Tạo một nút gốc Root cho cây quyết định.
• Nếu toàn bộ Examples là ví dụ dương. Trả về cây Root một nút đơn, với nhãn +.
• Nếu toàn bộ Examples là ví dụ âm. Trả về cây Root một nút đơn, với nhãn - .
• Nếu tập thuộc tính là rỗng thì trả lại cây Root một nút đơn với nhãn bằng giá trị phổ biến nhất của Target_attribute trong Examples.
• Ngược lại:Begin
o A ←Thuộc tính từ tập Attributes mà phân lớp tốt nhất tập Examples.
o Thuộc tính quyết định cho Root ←A.
o For Mỗi giá trị cụ thể vi của A,
Thêm một nhánh cây con ở dưới Root, phù hợp với biểu thức kiểm tra A=vi .
Đặt Examplesvi là tập các ví dụ có giá trị của thuộc tính A là vi .
Nếu Examplesvi rỗng
• thì dưới nhánh mới thêm gán một nút lá với nhãn = giá trị phổ biến nhất của Target_attribute trong tập Examples.
• ngược lại thì dưới nhánh mới này thêm một cây con:
ID3(Examplesvi,Target_attribute,Attribute-{A}.
• End.
• Return Root.
Chọn lựa thuộc tính tốt nhất
Vấn đề quan trọng nhất của thuật toán ID3 là làm sao chọn lựa được thuộc tính tốt nhất để đưa vào các nút của cây. Để giải quyết vấn đề này, người ta sử dụng kết quả của lý thuyết thông tin là các độ đo là infomation gain và entropy.
Entropy:
Đây là đại lượng hết sức quan trọng trong lý thuyết thông tin. Entropy là đại lượng đo tính đồng nhất hay thuần tuý của các mẫu. Trước tiên ta xem xét trường hợp các thuộc tính của tập các mẫu huấn luyện S của cây quyết định chỉ có hai lớp phân biệt là mẫu ví dụ dương (possotive) và mẫu ví dụ âm (Negative). Khi đó Entropy của tập S được định nghĩa như sau:
Entropy(S)≡-p⊕ log2p⊕--pΘ log2pΘ. Trong đó:
p⊕ : là phân bố của các ví dụ dương trong S.
pΘ : là phân bố của các ví dụ dương trong S.
Chúng ta quy đinh 0log20 =0.
Ví dụ: Xét trong ví dụ bảng 5, có10 mẫu huấn luyện, trong đó có 5 mẫu huấn luyện dương(Class AI=1) và 5 ví dụ âm (Class Ai=0). Khi đó đại lương Entropy S liên quan tới sự phân bố 2 lớp dương và âm của tập S là:
Entropy(S) = -(5/10)log2(5/10)-(5/10)log2(5/10)=
=1.0
Trong trường hợp tổng quát thì đại lượng Entropy được tính như sau:
Trong đó:
pi :là phân bố của lớp thứ i trong S.
c : là số lớp trong S.
Tương tự:
Entropy(Sai=1) = -(4/6)log2(4/6)-(2/6)log2(2/6)=0,918.
Entropy(Sai=0) = -(1/4)log2(1/4)-(3/4)log2(3/4)=0,812.
( ) ∑
=
−
= c
i
i
i p
p S
Entropy
1
log 2
Information Gain
Trong khi Entropy là đại lượng đo độ không đồng nhất của các mẫu, người ta đưa ra một độ đo sự ảnh hưởng của một thuộc tính trong mẫu đó trong việc phân lớp là information gain.
Information gain của một thuộc tính A được tính như sau:
Trong đó Sv là tập các phần tử mà thuộc tính A có giá trị là v.
Ví dụ: Tiếp tục xét ví dụ trong bảng 5 ta có.
Gain(S,ai) = Entropy(S)-(6/10)Entropy(Sai=1)-(4/10)Entropy(Sai=0) = 1.0-(6/10).0,918-(4/10).0,812
= 0,1244
Tương tự ta có thể xét các Gain của các thuôc tính khác có giá trị như bảng sau.
Attribute ai timetable system parallel relation database process graphic Gain 0,1244 0,1244 0,2871 0,0349 0,0 0,1244 0,0 0,1244
Bảng 7. Giá trị informatin Gain của các thuộc tính.
Khi đó theo thuật toán ID3 thì thuộc tính đầu tiên được chọn là thuộc tính system vì có giá trị information Gain là lớn nhất.
∈ ∑
−
≡
) (
) ( )
( )
, (
A Values V
V V Entropy S S
S S Entropy A
S Gain
( , ) ( ) ( )
} 1 , 0 {
v v
vEntropy S S
S S Entropy ai
S
Gain ∑
∈
−
=
2.2.2. Một số phương pháp giải quyết vấn đề rời rạc hoá