CLARENDON PRESS • OXFORD, UK,

Một phần của tài liệu Phân lớp các mẫu với ứng dụng của mạng nơron nhân tạo (Trang 61 - 67)

- Định lý: Nếu có W

CLARENDON PRESS • OXFORD, UK,

2. Hƣớng phát triển

CLARENDON PRESS • OXFORD, UK,

Thái Nguyên, ngày 10 tháng 10 năm 2012

Xác nhận của giáo viên hƣớng dẫn Học viên

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

PHỤ LỤC

1. Nội dung giải thuật học cây quyết định cơ bản ID3

ID3 ( Learning Sets S, Attributes Sets A, Attributesvalues V) Return Decision Tree.

Begin

Đầu tiên nạp learning sets, tạo nút gốc cho cây quyết định 'rootNode', thêm learning set S vào trong nút gốc như là tập con của nó.

For rootNode, đầu tiên chúng ta tính Entropy(rootNode.subset)

If Entropy(rootNode.subset)==0, then rootNode.subset bao gồm records

tất cả với cùng giá trị cho cùng giá trị thuộc tính xác định, trả về một nút lá với decision attribute:attribute value;

If Entropy(rootNode.subset)!=0, then

tính độ lợi thông tin (information gain) cho mỗi thuộc tính trái (chưa được sử dụng để phân chia), tìm thuộc tính A với Maximum(Gain(S,A)). Tạo những nút con của rootNode này và thêm vào rootNode trong cây quyết định.

For mỗi con của rootNode, áp dụng

ID3(S,A,V) một cách đệ qui cho đến khi đạt được node mà có entropy=0 hay đạt được nút lá.

End ID3.

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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 (adsbygoogle = window.adsbygoogle || []).push({});

sunny mild high false p

sunny mild normal true p

rain mild normal false p

sunny mild normal true p

overcast mild high true p

overcast hot normal false p

rain mild high true n

Giải thuật ID3 thực hiện như sau :

1. 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 2. 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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

3. 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”.

4. Á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.

2. Giải thuật mở rộng C4.5

C4.5 là sự mở rộng của giải thuật ID3 trên một số khía cạnh sau:

Trong việc xây dựng cây quyết định, chúng có thể liên hệ với tranning set mà có những records với những giá trị thuộc tính không được biết đến bởi việc đánh giá việc thu thập thông tin hoặc là tỉ số thu thập thông tin, cho những thuộc tính bằng việc xem xét chỉ những record mà ở đó thuộc tính được định nghĩa.

Trong việc sử dụng cây quyết định, chúng ta có thể phân loại những record mà có những giá trị thuộc tính không biết bằng việc ước lượng những kết quả có khả năng xảy ra. Trong ví dụ chơi đánh gôn của chúng ta, nếu chúng ta được đưa một record mới mà outlook là sunny và humidity chưa cho biết, chúng ta sẽ xử lý như sau:

Chúng ta di chuyển từ nút gốc Outlook đến nút Humidity theo cung được đánh nhãn là sunny. Ở điểm đó từ lúc chúng ta không biết giá trị của Humidity chúng ta để ý rằng nếu humidity là ở 75 có 2 records, và nếu humidity là lớn hơn 75 có 3 records trong đó có 1 record không hoạt động. Như vậy điều đó có thể đưa ra như câu trả lới cho record khả năng (0.4,06) cho chơi gôn hoặc không chơi gôn.

Chúng ta có thể liên hệ đến những giá trị liên tục. Giả sử rằng thuộc tính Ci có tầm giá trị thuộc tính liên tục. Chúng ta sẽ xem xét những giá trị này trong tập learning set. Cho rằng chúng được xắp sếp thứ tự tăng dần A1, A2,..,Am sau đó với mỗi giá trị Ai i=1,2,..,m. Chúng ta chia những records thành những cái có giá trị từ Ci trở lên và bao gồm cả Aj và những cái có những giá trị lớn hơn Aj. Với những lần phân hoạch này chúng ta tính lại giá trị thu thập và tỉ số thu thập và chọn ra phân hoạch có tỉ số thu thập thông tin nhận được tối đa.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

C5.0 trong hệ thống Unix và bản sao của nó See5 trong Windows là những phiên bản cao cấp hơn C4.5 trên nhiều khía cạnh quan trọng.

Chúng ta sẽ thử so sánh C5.0 và C4.5 trên cùng hệ thống Unix .

Về những tập luật (Ruleset): nhanh nhiều hơn và ít tốn bộ nhớ hơn:

Cả C5.0 và C4.5 cung cấp sự lựa chọn cho những dạng thức của phân loại - cây quyết định hoặc là những tập luật (ruleset). Trong nhiều ứng dụng thì tập luật (ruleset) được ưu tiên sử dụng hơn vì chúng đơn giản và dễ hiểu hơn cây quyết định. Nhưng những phương pháp để tìm ra luật trong C4.5 là chậm và chiếm nhiều bộ nhớ. C5.0 thể hiện sự hoàn thiện trong vấn đề tạo ra tập luật và sự cải tiến này gây ấn tượng mạnh mẽ.

Cây quyết định: nhanh hơn và nhỏ hơn

Với cũng những tập dữ liệu (dataset) thì C4.5 và C5.0 sản sinh ra những luật với sự chính xác về dự đoán là như nhau. Sự khác nhau chính yếu là kích cỡ của cây và thời gian tính toán. Cây của C5.0 là nhỏ hơn và nhanh hơn ở một số yếu tố.

Sự nâng lên (Boosting):

Dựa trên sự nguyên cứu của Freund và Schapire, đây là sự phát triển mới đầy hấp dẫn mà nó không có sự tương tự nào trong C4.5. Boosting là một kỹ thuật để tạo và kết hợp nhiều những đối tượng phân loại để cải thiện tính chính xác tiên đoán. (adsbygoogle = window.adsbygoogle || []).push({});

C5.0 hỗ trợ Booting với một số những dữ liệu số thử nghiệm. Thông thường, C5.0 sẽ mất thời gian lâu hơn để tạo ra những đối tượng phân loại (classifier). Nhưng những kết quả có thể phân tích định lượng sự tính toán công thêm. Boosting luôn cố gắng để đạt được đỉnh cao nhất của sự chính xác trong tiên đoán yêu cầu phải đạt tới. Đặc biệt khi những đối tượng phân loại không được nâng lên là hoàn toàn chính xác.

Những chức năng mới:

C5.0 kết hợp nhiều chức năng như variable misclassfication costs .Trong C4.5 tất cả những lỗi đều được xem như nhau. Nhưng trong những ứng dụng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

thực tế sẽ có một số lỗi trong quá trình phân loại nguy hiểm hơn những cái khác. C5.0 chấp nhận một chi phí phân chia đối với mỗi cặp lớp được tiên đoán. Nếu quan điểm này được áp dụng, C5.0 sau đó sẽ xây dựng những đối tượng phân loại để tối thiểu hóa những giá trị phân loại sai được mong đợi hơn là những tần suất lỗi.

C5.0 có nhiều kiểu dữ liệu hơn cả những cái đã có trong C4.5 bao gồm cả ngày giờ, thuộc tính giá trị rời rạc được xếp thứ tự và case labels. Thêm vào đó là những giá trị thiếu (missing value). C5.0 cho phép những giá trị được coi như là không áp dụng được. Hơn nữa, C5.0 cung cấp những điều kiện dễ dàng để định nghĩa những thuộc tính mới như những hàm của những thuộc tính khác. Những ứng dụng khai phá dữ liệu gần đây được hình thức hoá với kích thước lớn hơn, với hàng trăm thậm chí hàng ngàn những thuộc tính. C5.0 có thể tự động lọc những thuộc tính, loại bỏ những cái xuất hiện bên lề trước khi một lớp phân loại được xây dựng. Đối với ứng dụng của loại này, sự phân loại có thể dẫn đến những đối tượng nhỏ hơn và sự tiên đoán chính xác hơn và thậm chí thu giảm được thời gian tạo ra tập luật.

C5.0 cũng dễ dàng được sử dụng hơn. Những chọn lựa được đơn giản hóa và mở rộng để hỗ trợ sự lấy mẫu và cross-validation, trong lúc đó chương trình C4.5 để tạo ra cây quyết định và tập luật được kết hợp vào một chương trình duy nhất.

4. Tránh việc quá khít (overfitting) trong việc phân lớp

Cây được tạo ra có thể quá khít với dữ liệu huấn luyện. Việc quá khít có thể xảy ra trong những trường hợp sau đây:

- Quá nhiều những nhánh, một số có thể phản ánh sự dị thường vì những phần tử hỗn loạn (noise) hoặc những phần tử nằm ngoài phân lớp (outlier) .

- Kết quả nhận được thiếu chính xác đối với những mẫu chưa thấy.

Có hai cách tiếp cận để tránh quá khít dữ liệu:

 Tỉa trước: Dừng sự xây dựng của cây sớm - không chia một node nếu điều này tạo kết quả ở dưới một ngưỡng theo một hệ đánh giá tốt. Một khó khăn

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

trong việc tỉa trước là điều này sẽ tạo ra sự khó khăn trong việc tạo ra một ngưỡng thích hợp.

 Tỉa sau: Loại những nhánh từ một cây “ lớn đầy đủ” tạo một thứ tự của những cây bị tỉa tăng dần lên trong đó ta sử dụng một tập dữ liệu khác nhau từ dữ liệu huấn luyện để xác định cái nào là “cây được tỉa tốt nhất “ (best pruned tree).

Tiếp cận xác định kích cỡ cây cuối cùng :

Thông thường người ta phân chia tập huấn luyện thành tập dữ liệu huấn luyện (2/3) và dữ liệu thử (1/3), người ta sử dụng sự đánh giá chéo.

Cũng có một cách khác là sử dụng tất cả dữ liệu để huấn luyện, nhưng áp dụng kiểm tra thống kê để định lượng khi nào mở rộng hoặc tỉa bớt một nút có thể cải thiện toàn bộ sự phân phối.

Một cách thứ ba là sử dụng nguyên tắc mô tả chiều dài tối thiểu: trong đó người ta dừng sự phát triển của cây khi sự mã hóa được tối thiểu.

Một phần của tài liệu Phân lớp các mẫu với ứng dụng của mạng nơron nhân tạo (Trang 61 - 67)