IV. Cây quyết định
1 Giới thiệu về giải thuật ID
ID3 là một giải thuật học cây quyết định được phát triển bởi Ross Quinlan (1983). Ý tưởng cơ bản của giải thuật ID3 là để xây dựng cây quyết định
nhất cho sự phân loại trên những tập hợp cho trước , chúng ta sẽ đưa ra một metric thu thập thông tin.
Để tìm ra một cách tối ưu để phân loại một tập hợp thông tin , vấn đề đặt ra là chúng ta cần phải làm tối thiểu hóa ( Chẳng hạn, tối thiểu chiều cao của cây). Như vậy chúng ta cần một số chức năng mà có thể đánh giá trường hợp nào nào cho ra một sự phân chia cân bằng nhất.Matric thu thập thông tin sẽ là hàm như vậy.
Entropy-Đồng nhất định lượng của một tập hợp thông tin
Để định nghĩa thông tin tìm được một cách chính xát chúng ta cần phải tìm hiểu về hàm entropy trước tiên.
Đầu tiên không mất tính tổng quát giả sử rằng kết quả việc phân loại những trường hợp của cây quyết định thuộc vào hai loại chúng ta gọi chúng là P ( dương ) và N (âm).Cho trước một tập hợp S , bao hàm những mục tiêu dương và âm, hàm entropy của S liên quan đến sự phân loại là :
Entropy(S) = -P(positive)log 2 P(positive) – P(negative)log 2 P(negative) P(positive) : tỉ lệ thức của những trường hợp dương trong S.
P(negative): tỉ lệ thức của những trường hợp âm trong S.
Cho ví dụ , nếu S là (0.5+,0.5-) then Entropy(S) là 1, nếu S là (0.67+,0.33-) thì Entropy(S) là 0. Để ý rằng nếu khả năng phân bố ở nhiều dạng khác nhau thì thông tin của nó sẽ lớn.
Chúng ta cũng để ý rằng hàm entropy là một sự định lượng cho tính không thuần khiết trong tập hợp thông tin đưa vào.Nhưng làm thế nào nó liên quan đến sự tối ưu hoá của việc tạo quyết định của chúng ta tạo ra bởi vịêc phân loại trong những trường trường hợp. Những gì chúng ta thấy sau đây sẽ là câu trả lời cho
Thu thập thông tin - định lượng thu giảm mong đợi trong hàm Entropy
Như chúng ta đề cập trước đây, để tối thiểu hóa chiều sâu của cây quyết định , khi chúng ta duyệt nhánh cây, chúng ta cần chọn những thuộc tính tối ưu để chia nút cây, những cái mà chúng ta có thể dễ dàng cho là thuộc tính với sự thu giảm entropy là sự lựa chọn tốt nhất.Chúng ta định nghĩa thu thập thông tin như là việc thu giảm mong đợi của entropy liên quan đến thuộc tính xát định khi phân chia một node thuộc cây quyết định .
Gain(S,A)=Entropy(S) - Sum for v from 1 to n of (|Sv|/|S|) * Entropy(Sv)
Chúng ta có thể sử dụng khái niệm của thu thập để đánh giá tầm quan trọng những thuộc tính và xây dựng những cây quyết định mà mỗi nút chứa thuộc tính mà nhận được lớn nhất trong những thuộc tính chưa được xem xét trong đường đi từ gốc.
Mục đích của việc sắp thứ tự này là :
Để tạo ra cây quyết định nhỏ mà những record có thể được xát định sau chỉ một vài lần cây quyết định phân chia.Để kết nối một hi vọng đối với việc tối thiểu của quá trình tạo quyết định .
10) Trình bày giải thuật ID3:
Hiện thực của giải thuật ID3: Nội dung giải thuật:
ID3 ( Learning Sets S, Attributes Sets A, Attributesvalues V) Return Decision Tree.
Begin
as its subset.
For rootNode, we compute Entropy(rootNode.subset) first
If Entropy(rootNode.subset)==0, then rootNode.subset consists of records all with the same value for the categorical attribute, return a leaf node with decision
attribute:attribute value;
If Entropy(rootNode.subset)!=0, then compute information gain for each attribute left(have not been used in splitting), find attribute A with Maximum(Gain(S,A)). Create child nodes of this rootNode and add to rootNode in the decision tree.
For each child of the rootNode, apply ID3(S,A,V) recursively until reach node that has entropy=0 or reach leaf node.
Ví dụ : Để mô tả hoạt động của ID3 chúng ta sử dụng ví dụ “Play Tennis”.Sự mô tả tượng trưng thuộc tính như sau:
Attribute Possible Values:
Outlook sunny, overcast , rain Temperature hot , mild, cood Humidity high,normal
Windy true,false
Decision n(negative),p(positive) Tập Leaning set cho ví dụ chơi tennis:
Outlook Temperature Humidity Windy Decision
sunny hot high false n
sunny hot high true n
overcast hot high false p
rain mild high false p
rain cool normal false p
rain cool normal false n
overcast cool normal true p
sunny mild high false p
sunny mild normal true p
rain mild normal false p
sunny mild normal true p
Giải thuật ID3 thực hiện như sau:
Tạo nút gốc( rootNode) , chứa đựng toàn bộ learning set như là những tập hợp con của chúng (subset) sau đó tính :
Entropy(rootNode.subset)= -(9/14)log 2 ( 9/14 ) – ( 5/14)log 2 (5/14)= 0.940 Tính toán thông tin nhận được cho mỗi thuộc tính :
Gain(S,Windy)= Entropy(S)-(8/14)Entropy(S false) – (6/14)Entropy(S true) = 0.048 Gain(S,Humidity) = 0.151
Gain(S,Temperature) = 0.029 Gain(S,Outlook) = 0.246
Chọn lựa những thuộc tính với thông tin nhận được tối đa , đó chính là sự phân chia theo thuộc tính “outlook”
Áp dụng ID3 cho mỗi nút con của nút gốc này , cho đến khi đạt đến nút lá hoặc nút có entropy = 0.
Sự liên quan đến những thuộc tính mang giá trị liên tục :
Sự định nghĩa ban đầu của ID3 bị giới hạn bởi việc liên quan đến tập những giá trị rời rạc . Chúng sẽ nắm giữ một cách hiệu quả những thuộc tính tượng trưng . Tuy nhiên , chúng ta sẽ mở rộng phạm vi hoạt động của nó cho những thuộc tính có giá trị liên tục ( giá trị số) để phù hợp với thế giới thực.
Những gì chúng ta phải làm là định nghĩa những giá trị rời rạc mới để phân những giá trị liên tục thành những thuộc tính tượng trưng một lần nữa.
sunny hot 0.87 true n
overcast hot 0.93 false p
rain mild 0.89 false p
rain cool 0.80 false p
rain cool 0.59 true n
overcast cool 0.77 true p
sunny mild 0.91 false n
sunny cool 0.68 false p
rain mild 0.84 false p
sunny mild 0.72 true p
overcast mild 0.49 true p
overcast hot 0.74 false p
rain mild 0.86 true n
đối với thuộc tính humidity, chúng ta cần phải tạo ra một giá trị logic mới đó là true khi humidity < =c và false trong những trường hợp khác . Điều còn lại là tính ngưỡng tối ưu của c.
Trong ví dụ của chúng ta , thông tin nhiều nhất nhận được là thuộc tính “outlook”.Trong gốc tập con tại “outlook:sunny”, chúng ta tính thu thập thông tin cho “Humidity” là một thuộc tính . Để làm như vậy chúng ta sắp xếp humidity như dưới đây:
Humidity 0.68 0.72 0.87 0.9 0.91 Playtennis p p n n n
sau đó chúng ta tính thông tin đạt được với mỗi ngưỡng tối ưu cho việc phân chia . Ngưỡng được phép trong trường hợp này là 1:
Humidity > (0.7+0.87)/2 hay Humidity > 0.795 với sự thập thông tin G(S,Humidity) =0.97 . Nếu chúng ta có hơn 1 ứng cử ở đây chúng ta chỉ cần tìm cái nào thu thập thông tin nhiều nhất .
Mở rộng ID3 với những dữ liệu tính toán thực :
Như chúng ta đề cập trước đây, ID3 là hoàn toàn hiệu quả trong việc liên hệ đến những hàm mục tiêu đối với những giá trị tính rời rạc.Nó cũng dễ dàng liên hệ đến những trường hợp mà được gán bởi những giá trị quyết định logic , như là “true “ và “false”,”p (positive)” and “n(negative)”. Điều đó cũng có thể mở rộng hàm mục tiêu sang những giá trị output thực .