Trong phạm vi bài thu hoạch này, em xin trình bày về môhình phân lớp với cây quyết định – một công cụ mạnh, phổ biến và đặc biệt thích hợp vớicác ứng dụng khai phá dữ liệu, bên cạnh đó b
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÀI THU HOẠCH MÔN CÔNG NGHỆ
TRI THỨC VÀ ỨNG DỤNG
MỘT SỐ THUẬT TOÁN TRONG
MÔ HÌNH PHÂN LỚP CÂY QUYẾT ĐỊNH - CÀI ĐẶT
Trang 2LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn thầy GS.TSKH Hoàng Văn Kiếm – người đã truyền đạt cho em những kiến thức quý báu trong môn Công nghệ tri thức và ứng dụng.
Tiếp theo, em xin gửi lời cám ơn đến các thầy cô ở các khoa cũng như tại các phòngban tại trường ĐH Công Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian họcvừa qua
Do kiến thức có hạn cũng như kinh nghiệm nghiên cứu khoa học trên thực tế khôngnhiều nên bài làm của em không tránh khỏi thiếu sót Em rất mong nhận được sựđóng góp quí báu của quí thầy cô
TpHCM, ngày 15 tháng 10 năm 2014 Lớp Cao học KHMT khóa 8
Lê Phú Quí
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
……….
Trang 4Mục lục
Lời giới thiệu 5
I Tổng quan về hệ tri thức 6
1.1 Các khái niệm 6
1.2 Tiếp nhận, biểu diễn tri thức 6
1.3 Xây dựng các hệ cơ sở tri thức 7
1.3.1 Khối tri thức (cơ sở tri thức) 7
1.3.2 Khối điều khiển (động cơ suy diễn) 7
1.3.3 Các loại tri thức 7
1.3.4 Các hệ tri thức phân loại theo ứng dụng 8
1.4 Thuật toán là một phương pháp biểu diễn tri thức? 9
1.5 Máy học và khám phá tri thức 9
1.6 Các hệ thống quy nạp 11
II Tổng quan về cây quyết định 11
2.1 Giới thiệu chung 11
2.2 Các kiểu cây quyết định 12
2.3 Ưu điểm của cây quyết định 13
2.4 Quy trình xây dựng cây quyết định 13
2.5 Cách xây dựng cây quyết định 14
2.5.1 Chọn thuộc tính phân tách 14
2.5.2 Phép kiểm tra để chọn phép phân tách tốt nhất 15
2.6 Rút ra các luật từ cây quyết định 17
III Thuật toán phân lớp cây quyết định 18
3.1 Thuật toán CLS 18
3.2 Thuật toán ID3 19
3.2.1 Giới thiệu 19
3.2.2 Ví dụ bài toán chơi Golf để giải thích Cây quyết định 19
3.2.3 Thuật giải ID3 xây dựng Cây quyết định từ trên xuống 21
3.2.4 Thuộc tính dùng để phân loại tốt nhất 23
3.2.5 Đánh giá hiệu suất của Cây quyết định 34
3.2.6 Khi nào nên sử dụng ID3 34
Trang 53.3 Thuật toán C4.5 35
3.3.1 Giới thiệu 35
3.3.2 Nội dung thuật toán C4.5 36
3.3.3 Độ đo sử dụng để xác định điểm chia tốt nhất 38
3.3.4 Một số vấn đề với thuộc tính 40
3.4.Thuật toán SPRINT 49
3.4.1 Lịch sử phát triển 49
3.4.2 Mã giã của thuật toán SPRINT 50
3.4.3 SPRINT sử dụng Gini-index 50
VI Các vấn đề học trong cây quyết định 52
4.1 Tránh Overfitting dữ liệu 52
4.2 Giảm lỗi cắt tỉa 55
4.3 Luật POST-PRUNING 57
4.4 Kết hợp các thuộc tính có giá trị liên tục 59
4.5 Các phương pháp thay thế cho các thuộc tính lựa chọn 60
4.6 Xử lý huấn luyện đối với những thuộc tính thiếu giá trị 61
4.7 Xử lý các thuộc tính có chi phí khác nhau 62
V Chương trình thực nghiệm thuật toán ID3 62
5.1 Cài đặt chương trình 62
5.2 Giao diện chương trình 66
VI Tổng kết 69
VII Tài liệu tham khảo 69
Trang 7Lời giới thiệu
Ngày nay cùng với sự phát triển của Công nghệ tri thức, các nhà nghiên cứu luônmong muốn kết hợp với máy tính để giải quyết vấn đề trong thực tế Với những ứng dụngcủa Công nghệ tri thức làm cho máy tính trở nên thông minh hơn, xử lý tốt hơn nhữngcông việc phức tạp
Trong nhiều lĩnh vực, ngành nghề hay cả trong hoạt động sinh hoạt thường ngày,con người thường xuyên tiếp cận và xử lý một lượng thông tin và dữ liệu nào đó Các tập
dữ liệu được tích lũy có kích thước ngày càng lớn, và có thể chứa nhiều thông tin ẩn dạngnhững quy luật chưa được khám phá Chính vì vậy, một nhu cầu đặt ra là cần tìm cáchtrích rút từ tập dữ liệu đó các luật về phân lớp dữ liệu hay dự đoán những xu hướng dữliệu tương lai
Để thực hiện phân lớp dữ liệu có nhiều phương pháp được đề xuất như: phân lớpvới cây quyết định (Decision Tree Classification), phân lớp Bayesian (BayesianClassifier), phân lớp K – hàng xóm gần nhất (K – nearest neighbor classifier), mạngnơron, phân tích thống kê, … Trong phạm vi bài thu hoạch này, em xin trình bày về môhình phân lớp với cây quyết định – một công cụ mạnh, phổ biến và đặc biệt thích hợp vớicác ứng dụng khai phá dữ liệu, bên cạnh đó bài thu hoạch giới thiệu một số thuật toán phổbiến được sử dụng trong mô hình phân lớp bằng cây quyết định như: ID3, C4.5, … Quátrình phân tích, đánh giá các thuật toán có ý nghĩa thực tiễn và giá trị khoa học Tìm hiểucác thuật toán giúp chúng ta tiếp thu và có thể phát triển về mặt tư tưởng, cũng như kỹthuật của một công nghệ tiên tiến đã và đang là thách thức đối với các nhà khoa học tronglĩnh vực data mining Từ đó có thể triển khai cài đặt và thử nghiệm các mô hình phân lớp
dữ liệu trên thực tế
Mục tiêu bài thu hoạch:
-Trình bày các một số thuật toán phổ biến được sử dụng trong mô hình phân lớpbằng cây quyết định
- Xây dựng chương trình thực nghiệm thuật toán ID3
Trang 8I Tổng quan về hệ tri thức
1.1 Các khái niệm
Tri thức (knowledge) : là sự hiểu biết về một lĩnh vực của chủ đề
Lĩnh vực (domain): là miền chủ đề được chú trọng
tri thức trong cơ sở tri thức của hệ thống
trong đó các tri thức về lĩnh vực bài toán được cô lập và lưu trữ trong cơ sở trithức, được xử lý, đánh giá nhờ thành phần giải vấn đề độc lập với bài toán
phần giải vấn đề trong hệ thống trên tri thức
tiếp nhận, biểu diễn tri thức, xây dựng các hệ cơ sở tri thức và khám phá trithức (hay bao gồm tất cả các hoạt động đi kèm theo vòng đời của một hệ thốngdựa trên tri thức) Được xem như là một nhánh nghiên cứu của trí tuệ nhân tạo,phân tích tri thức lĩnh vực và chuyển nó thành những mô hình tính toán và đưavào máy tính để phục vụ cho những nhu cầu cần thiết
1.2 Tiếp nhận, biểu diễn tri thức
Gián tiếp: những tri thức
Logic mệnh đề và logic vị từ
Hệ luật dẫnĐối tượng – thuộc tính – giá trịMạng ngữ nghĩa
FrameScript
Trang 91.3 Xây dựng các hệ cơ sở tri thức
Các hệ cơ sở tri thức có 2 chức năng tách biệt nhau, trường hợp đơn giản có haikhối: khối tri thức và khối điều khiển
1.3.1 Khối tri thức (cơ sở tri thức)
Gồm có các loại là: hệ cơ sở tri thức đóng, hệ cơ sở tri thức mở và hệ cơ sở tri thứckết hợp
Hệ cơ sở tri thức đóng: được xây dựng với một số “tri thức lĩnh vực” banđầu và sử dụng trong suốt quá trình hoạt động hay suốt thời gian sống củanó
Hệ cơ sở tri thức mở: là những hệ cơ sở tri thức tiên tiến hơn, nó có khảnăng bổ sung tri thức trong quá trình hoạt động, khám phá
kết hợp giữa cơ sở tri thức và cơ sở dữ liệu, hay giữa các hệ cơ sở tri thứcvới nhau Các hệ cơ sở tri thức kết hợp thường phát triển mạnh dựa trên trithức liên ngành
1.3.2 Khối điều khiển (động cơ suy diễn)
Để tiến hành các suy diễn nhằm tạo ra các tri thức mới dựa trên các sự kiện, trithức cung cấp từ ngoài vào và tri thức có sẵn trong hệ cơ sở tri thức Hai kiểu suy diễnchính trong động cơ suy diễn là suy diễn tiến và suy diễn lùi
1.3.3 Các loại tri thức
Tri thức thủ tục : diễn tả cách giải
quyết vấn đề, cho biết phương hướng
thực hiện các hoạt động
Các luật, các chiến lược, lịch, các
thủ tục như giải phương trình bậc hai, xây nhà, đăng ký kết hôn.
Tri thức mô tả (hay tri thức khai báo):
cho biết một vần đề được thấy như thế
Các khái niệm, các đối tượng, các sự
kiện như mặt trời mọc ở phương
Trang 10nào, gồm các khẳng định đơn giản,
nhận giá trị chân lý đúng sai
đông.
Tri thức meta (hay siêu tri thức): diễn
tả tri thức về tri thức, giúp chọn lựa tri
thức thích hợp trong số các tri thức khi
giải vấn đề
Tri thức về các dạng tri thức khác và
cách sử dụng chúng như áp dụng kinh dịch vào việc xây nhà và sẽ chọn được hướng thích hợp.
Tri thức may rủi (hay tri thức
heuristic): diễn tả luật may rủi, cung
cách may rủi dẫn đắt quá trình lập luận,
đây là tri thức nông cạn do không bảo
đảm tính chính xác, khoa học, và nó
xuất phát từ những kinh nghiệm, từ tri
thức giải các vấn đề quá khứ
Các luật may rủi
Tri thức cấu trúc: diễn tả các cấu trúc
của tri thức, cấu trúc thể hiện qua cách
tổ chức, mô hình về các tri thức
Các tập luật, các quan hệ khái niệm, khái niệm về quan hệ giữa các đối tượng
1.3.4 Các hệ tri thức phân loại theo ứng dụng
Các hệ tri thức phân loại theo ứng dụng
Hệ giải
quyết vấn đề
Hệ hỗ trợ định danh
Hệ dự báo, chuẩn đoán Hệ điều khiển
Giống các
hệ hỗ trợ ra quyết đính với tính
Các hệ thống có gắn với cơ
sở tri thức Các hệ thống này thường ứng dụng trong công nghiệp, trong điều
Trang 11tính mở toán học + …)
với đối tượng
sử dụng là các nhà lãnh đạo
thực, và một số có sử dụng kết hợp lý thuyết mờ để xử lý
1.4 Thuật toán là một phương pháp biểu diễn tri thức?
Đây là câu hỏi luôn gây thắc mắc và có kết luận thuật toán đúng là một phương phápbiểu diễn tri thức
Ví dụ: Xét bài toán giải phương trình bậc hai với tri thức đã chứa đựng bên trong và
thực chất các tri thức được mã hóa dưới dạng các câu lệnh if…then…else trong chương
trình Do đó có thể khẳng định rằng các chương trình máy tính ít nhiều đều đã có tri thức
đó chính là các tri thức của lập trình viên được chuyển thành các câu lệnh trong chươngtrình
Nhưng một câu hỏi đặt ra là tại sao đưa tri thức vào máy tính là một vấn đề? và ta biếtrằng một khi chương trình đã được biên dịch thì không thể thêm vào hay điều chỉnh nữacho đến khi ta sửa lại mã nguồn (mà để sửa lại mã nguồn thì đó là vấn đề chỉ có các lậptrình viên biết chỗ sửa, còn người dùng thông thường thì không biết) Hướng giải quyết làphải “mềm” hóa các tri thức biểu diễn trong máy tính, tức là đi tìm các phương pháp đểbiểu diễn tri thức của con người bằng các cấu trúc dữ liệu mà máy tính có thể xử lý được,đây chính là quá trình biểu diễn tri thức
1.5 Máy học và khám phá tri thức
Học: tức là tiếp thu tri thức để biết cách vận dụng.
Thực tế quá trình học diễn ra dưới nhiều hình thức khác nhau, các kiểu học bao gồm:học thuộc lòng (học vẹt), học theo kinh nghiệm (học dựa theo trường hợp), học theo kiểunghe nhìn, học dựa trên tương tự, học trên giải thích, học số, học khái niệm, học qua
Trang 12thưởng phạt, học qua quan sát, qua suy luận, qua diễn dịch quy nạp, học sáng tạo Trongtương lai có thể còn nhiều kiểu học khác ra đời.
Ta cần xem xét mối liên hệ giữa tri thức và máy để từ đó có thể khám phá ra các trithức mới, cần thiết để nạp thêm bổ sung ngày một nhiều số kiến thức máy có được
Ngoài ra ta còn có kiểu học bằng thực hành: kiểu học này thích hợp cho hệ đang giải toán, chủ yếu để cải thiện hiệu quả cách giải toán khi hệ đang hoạt động (học bằng thử và sai) Một hệ học bằng thực hành luôn luôn có sẵn một số thông tin khởi tạo, thông tin này thuộc hai loại: các toán tử và các heuristic khởi tạo
Nếu xem xét khía cạnh trong nghiên cứu khoa học và mê tín dị đoan thì chúng ta sẽ cóphương pháp học theo trường hợp là một phương pháp phổ biến Vì khoa học và mê tín dịđoan đều dựa trên các dữ liệu quan sát thống kê để từ đó rút ra các quy luật Tuy nhiênkhác với khoa học, mê tín dị đoan thường dựa trên tập mẫu không đặc trưng, cục bộ, thiếu
cơ sở khoa học
Đây là vấn đề quan trọng vì từ
những cái đã biết (có được) mà ta
phải tìm ra những cái mới Tìm ra
những gì tiềm ẩn, những tri thức
mới (không phải tri thức kinh điển,
kinh nghiệm, …) từ những loại tri
thức như sau: tri thức thủ tục, tri
thức khai báo, siêu tri thức, tri thức
heuristic, tri thức có cấu trúc.
Ý nghĩa thứ nhất: Máy tính hay
chương trình có khả năng tự hoànthiện từ “kinh nghiệm”
Ý nghĩa thứ hai: Máy học còn có
nghĩa là việc mô hình hóa môi trường xung quanh hay khả năng một chương trình máy tính sinh ra một cấu trúc dữ liệu
Trang 131.6 Các hệ thống quy nạp
Lập luật quy nạp: con người dùng lập luận quy nạp để rút ra kết luận tổng quát từ
một tập sự kiện theo cách tổng quát hóa Thực chất của lập luận quy nạp là đem thiểu số
áp dụng cho đa số
Ví dụ:
giả thiết : chị Mơ hát hay
giả thiết : chị Nụ hát hay
Quy nạp (induction) : Đây là vấn đề liên quan đến việc thu thập tri thức từ các
chuyên gia, người ta dùng các kỹ thuật tự động như máy học để có thể thể hiện các “trithức qua các sự kiện” và một trong các phương pháp học tự động là quy nạp Dựa vào cácphương pháp học đã biết là “học vẹt, học nhờ nghe được, học theo ví dụ và học tương tự”
từ đó phát sinh kỹ thuật quy nạp => đây là kiểu suy luận cho phép rút ra các luật tổng quát
từ các tri thức trong tập hữu hạn các ví dụ và/hoặc các quan sát
II Tổng quan về cây quyết định
2.1 Giới thiệu chung
Cây quyết định là một kiểu mô hình dự báo (predictive model), nghĩa là một ánh
xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng Mỗi nút trong (internal node) tương ứng với một biến; đường nối giữa nó vớinút con của nó thể hiện giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự đoáncủa biến mục tiêu, cho trước các giá trị dự đoán của các biến được biểu diễn bởi đường đi
từ nút gốc tới nút lá đó Kỹ thuật học máy dùng trong cây quyết định được gọi là học bằngcây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định
Ví dụ: Cây quyết định:
Bảng : Dữ liệu bêtông
kết luận : nói chung, các chị hát hay.
Trang 14Hình 2.1: Cây quyết định phân lớp độ cứng bêtông
2.2 Các kiểu cây quyết định
Cây quyết định còn có 2 tên gọi khác:
- Cây hồi quy: (Regression tree): ước lượng các hàm có giá trị là số thực thay vìđược sử dụng cho các nhiệm vụ phân loại Ví dụ: ước tính giá một ngôi nhà hoặc khoảngthời gian một bệnh nhân nằm viện
- Cây phân loại (Classification tree): nếu y là một biến phân loại như: giới tính(nam hay nữ), kết quả của một trận đấu (thắng hay thua)
Trang 152.3 Ưu điểm của cây quyết định
So với các phương pháp khai phá dữ liệu khác, cây quyết định có ưu điểm sau:
- Cây quyết định tương đối dễ hiểu
- Đòi hỏi mức tiền xử lý dữ liệu đơn giản
- Có thể xử lý với cả các dữ liệu rời rạc và liên tục
- Cây quyết định là một mô hình hộp trắng
- Kết quả dự đoán bằng cây quyết định có thể thẩm định lại bằng cách kiểm trathống kê
2.4 Quy trình xây dựng cây quyết định
Quá trình xây dựng cây quyết định đều được chia ra làm 3 giai đoạn cơ bản:
1 Xây dựng cây: thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện chođến khi các mẫu ở mỗi nút lá thuộc cùng một lớp
2 Cắt tỉa cây: là việc làm dùng để tối ưu hoá cây Cắt tỉa cây chính là việc trộn mộtcây con vào trong một nút lá
3 Đánh giá cây: dùng để đánh giá độ chính xác của cây kết quả Tiêu chí đánh giá
là tổng số mẫu được phân lớp chính xác trên tổng số mẫu đưa vào
Có rất nhiều cách biến đổi khác nhau về nòng cốt của thuật toán cây quyết định.Mặc dù vậy chúng vẫn tuân theo những bước cơ bản sau:
- Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị
- Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây
- Chọn thuộc tính được phân loại (rời rạc hóa các thuộc tính thuộc phi số)
- Chọn một thuộc tính để phân chia thành các nhánh Thuộc tính được chọn dựatrên độ đo thống kê hoặc độ đo heuristic
- Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh Điều kiện để dừngviệc phân chia:
- Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)
- Không còn thuộc tính nào để có thể dùng để phân chia mẫu nữa
- Không còn mẫu nào tại nút
Trang 162.5 Cách xây dựng cây quyết định
2.5.1 Chọn thuộc tính phân tách
Lúc khởi đầu, ta có một tập huấn luyện chứa tập các bản ghi được phân loại trước,tức là giá trị của biến đích được xác định trong tất cả các trường hợp Cây quyết địnhđược xây dựng bằng cách phân tách các bản ghi tại mỗi nút dựa trên một thuộc tính đầuvào Rõ ràng nhiệm vụ đầu tiên là phải chọn ra thuộc tính nào có sự phân tách tốt nhất tạinút đó
Độ đo được sử dụng để đánh giá khả năng phân tách là độ tinh khiết Chúng ta sẽ
có những phương pháp tính toán độ tinh khiết một cách chi tiết Tuy nhiên, chúng đều cốgắng đạt được hiệu quả như nhau Một sự phân tách tốt nhất là sự phân tách làm tăng độtinh khiết của tập bản ghi với số lượng lớn nhất Mặt khác, nó cũng phải tạo ra các nút cókích cỡ tương tự nhau hay ít nhất không tạo ra các nút có quá ít bản ghi
Hình : Phân tách dữ liệuThuật toán xây dựng cây quyết định hết sức thấu đáo Chúng bắt đầu bằng việcchọn mỗi biến đầu vào chưa được chọn và đo mức độ tăng độ tinh khiết trong các kết quảứng với mỗi biến Sau đó, một phép phân tách tốt nhất sẽ được sử dụng trong phép phântách khởi đầu để tạo hai hay nhiều nút con Nếu không phép phân tách nào có khả nănghoặc không có phép phân tách nào làm tăng độ tinh khiết thì thuật toán kết thúc và nút đótrở thành nút lá
Phép phân tách trên các biến đầu vào kiểu số: đối với sự phân tách nhị phân trên
một biến đầu vào, mỗi giá trị mà biến đó chứa đều có thể trở thành giá trị dự tuyển Phépphân tách nhị phân dựa trên biến đầu vào kiểu số có dạng X<N Để cải thiện hiệu năng,
Trang 17một số thuật toán không kiểm tra hết toàn bộ các giá trị của biến mà chỉ kiểm tra trên tậpmẫu giá trị của biến đó.
Phép phân tách trên các biến đầu vào định tính: thuật toán đơn giả nhất trong việc
phân tách trên một biến định tính là ứng với mỗi giá trị của biến đó, ta tạo một nhánhtương ứng với một lớp được phân loại Phương pháp này được sử dụng thật sự trong một
số phần mềm nhưng mang lại hiệu quả thấp Một số phương pháp phổ biến hơn đó lànhóm các lớp mà dự đoán cùng kết quả với nhau Cụ thể, hai lớp của biến đầu vào cóphân phối đối với biến đích chỉ khác nhau trong một giới hạn cho phép thì hai lớp này cóthể hợp nhất với nhau
Phép phân tách với sự có mặt của các giá trị bị thiếu: một trong những điểm hay
nhất của cây quyết định là nó có khả năng xử lý các giá trị bị thiếu bằng cách coi giá trịrỗng là một nhánh của nó Phương pháp này được ưa thích hơn so với việc bỏ các bản ghi
có giá trị thiếu hoặc cố gắng gán giá trị nào đó cho nó Bởi nhiều khi các giá trị rỗng cũng
có ý nghĩa riêng của nó Mặc dù phép phân tách giá trị rỗng như là một lớp riêng rẽ khá
có ý nghĩa nhưng người ta thường đề xuất một giải pháp khác Trong khai phá dữ liệu,mỗi nút chứa vài luật phân tách có thể thực hiện tại nút đó, mỗi phép phân tách đó dựavào các biến đầu vào khác nhau Khi giá trị rỗng xuất hiện trong biến đầu vào của phépphân tách tốt nhất, ta sử dụng phép phân tách thay thế trên biến đầu vào có phép phântách tốt thứ hai
2.5.2 Phép kiểm tra để chọn phép phân tách tốt nhất
Độ lợi thông tin (Information gain): là đại lượng được sử dụng để chọn lựa thuộctính với information gain lớn nhất
- Cho P và N là hai lớp và S là một tập dữ liệu có p phần tử lớp P và n phần tử lớpN
- Khối lượng thông tin cần thiết để quyết định một mẫu tùy ý có thuộc về lớp P hay
N hay không là:
Trang 18- Cho các tập {S1, S2, ,Sv} là một phân hoạch trên S khi sử dụng thuộc tính A.
- Cho mỗi Si chứa pi mẫu lớp P và ni mẫu lớp N
- Entropy hay thông tin mong muốn cần thiết để phân lớp các đối tượng trong tất
cả các cây con Si là:
- Thông tin có được bởi việc phân nhánh trên thuộc tính A là:
Ví dụ: với bản dữ liệu về bêtông ở trên
- Lớp P: Kết quả=''Tốt''
- Lớp N: Kết quả=''Xấu''
- Thông tin cần thiết để phân lớp một mẫu được cho là:
Info(p,n) = Info(4,4) = - (1/2)log2(1/2) - (1/2)log2(1/2) = 1
- Xét thuộc tính ''Độ cứng'' ta có:
+ ''Độ cứng'' = ''Cao'':
Info(4,1) = Entropy(4/5,1/5) = - 4/5log2 (4/5) - 1/5log2(1/5) = 0.722
+ ''Độ cứng'' = ''Trung bình'':
Info(0,3) = Entropy(0,3) = - 0log2 (0) - 1log2(1) = 0 (quy ước log2(0) = 0)
+ Entropy cho phép phân tách trên thuộc tính ''Độ cứng''Entropy(''Độ cứng'') = 5/8Info(4,1) + 3/8Info(0,3) = 5/8*0.722 + 3/8*0 = 0.451
+ Do đó, ta có:
Gain(''Độ cứng'') = Info(4,4) - Entropy(''Độ cứng'') = 1 - 0.451 = 0.549
- Tương tự cho các thuộc tính còn lại:
Trang 19Gain(''Độ ẩm'') = 0.049
Gain(''Độ PH”) = 0.156
Rõ ràng ta sẽ chọn thuộc tính ''Độ cứng'' để phân tách Sau đó, làm tương tự ta sẽđược cây quyết định cuối cùng có dạng:
Hình 2.5 : Cây quyết định cuối cùng
2.6 Rút ra các luật từ cây quyết định
- Biểu diễn tri thức dưới dạng luật if-then
- Mỗi luật tạo ra từ mỗi đường dẫn từ gốc đến lá
- Mỗi cặp giá trị thuộc tính dọc theo đường dẫn tạo nên phép kết (phép and)
- Các nút lá mang tên của lớp
Ví dụ từ cây 2.5 ta có thể rút ra được các luật sau
IF (Độ cứng = Cao) AND (Độ PH = cao) THEN Kết quả = Tốt
IF (Độ cứng = Cao) AND (Độ PH = Trung bình) THEN Kết quả = Tốt
IF (Độ cứng = Cao) AND (Độ PH = Thấp) AND (Độ ẩm = Cao) THEN
Kết quả = Xấu
IF (Độ cứng = Cao) AND (Độ PH = Thấp) AND (Độ ẩm = Thấp) THEN
Trang 20Kết quả = Tốt
IF (Độ cứng = Trung bình) THEN Kết quả = Xấu
III Thuật toán phân lớp cây quyết định
3.1 Thuật toán CLS
Thuật toán này được Holland và Hint giới thiệu trong Concept learning System(CLS) vào những năm 50 của thế kỷ 20 Thuật toán CLS được thiết kế theo chiến lượcchia để trị từ trên xuống Nó gồm các bước sau:
1 Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện
2 Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "yes" (haythuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại T lúc này là nútlá
3 Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "no" (haythuộc cùng một lớp), thì gán nhãn cho nút T là "no" và dừng lại T lúc này là nút lá
4 Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp "yes" và
+ Tạo n nút con Ti (i=1,2…n) với nút cha là nút T
+ Tạo các nhánh nối từ nút T đến các nút Ti (i=1,2…n) là các thuộc tínhcủa X
5 Thực hiện lặp cho các nút con Ti(i =1,2 n) và quay lại bước 2
Ta nhận thấy trong bước 4 của thuật toán, thuộc tính được chọn để triển khai cây làtuỳ ý Do vậy cùng với một tập mẫu dữ liệu huấn luyện nếu áp dụng thuật toán CLS với thứ tự chọn thuộc tính triển khai cây khác nhau, sẽ cho ra các cây có hình dạng khác nhau
Trang 21Việc lựa chọn thuộc tính sẽ ảnh hưởng tới độ rộng, độ sâu, độ phức tạp của cây Vì vậy một câu hỏi đặt ra là thứ tự thuộc tính nào được chọn để triển khai cây sẽ là tốt nhất Vấn
đề này sẽ được giải quyết trong thuật toán ID3 dưới đây
3.2 Thuật toán ID3
3.2.1 Giới thiệu
Thuật toán ID3 do Ross Quinlan đề xuất là một giải thuật đơn giản nhưng tỏ ra
thành công trong nhiều lĩnh vực ID3 biểu diễn các khái niệm (concept) ở dạng các cây
quyết định, nó cho phép chúng ta xác định phân loại của một đối tượng bằng cách kiểmtra các giá trị của nó trên một số thuộc tính nào đó
Như vậy, nhiệm vụ của thuật toán ID3 là học cây quyết định từ một tập các ví dụ
rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện (training data) Đơn giản
hơn, thuật giải có:
Đầu vào: là một tập hợp các ví dụ gồm các thuộc tính mô tả một tình huống haymột đối tượng nào đó và một giá trị phân loại của nó
Đầu ra: Cây quyết định phân loại đúng đắn các ví dụ trong tập dữ liệu rèn luyện
3.2.2 Ví dụ bài toán chơi Golf để giải thích Cây quyết định
Xét bài toán phân loại xem “có đi chơi Golf” ứng với thời tiết nào đó hay không.Tập dữ liệu gồm 14 ví dụ, mỗi ví dụ biểu diễn cho tình trạng thời tiết gồm các thuộc tính:quang cảnh, nhiệt độ, độ ẩm, gió và thuộc tính phân loại “ chơi Golf” (có, không) “Có”nghĩa là có đi chơi Golf ứng với thời tiết nào đó, “Không” nghĩa là ngược lại Giá trị phânloại ở đây có hai loại là (có, không) hay còn nói phân loại của tập khái niệm này là thành
hai lớp (classes) Thuộc tính “chơi Golf “ còn được gọi là thuộc tính đích (target attribute).
Mỗi thuộc tính đều có một tập các giá trị hữu hạn Thuộc tính quang cảnh có ba giátrị (âm u, mưa, nắng), nhiệt độ có ba giá trị (nóng, ấm, mát), độ ẩm có hai giá trị (cao,
trung bình) và gió có hai giá trị (mạnh, nhẹ) Các giá trị này chính là ký hiệu (symbol)
dùng để biểu diễn bài toán
Trang 22Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Golf
Mục tiêu của bài toán này là dựa theo thông tin thời tiết để đoán xem khi nào sẽ cóngười đến chơi Golf Để giải quyết vấn đề này người ta đã đưa ra một mô hình Cây quyếtđịnh để kiểm tra khi nào chơi Golf và khi nào không chơi Golf
Trang 23Từ tập dữ liệu này, giải thuật ID3 sẽ học một cây quyết định có khả năng phân loạiđúng đắn các ví dụ Ứng với một tập dữ liệu rèn luyện sẽ có nhiều cây quyết định để phânloại đúng các ví dụ Kích cỡ của cây quyết định khác nhau tùy thuộc vào thứ tự của cáckiểm tra trên thuộc tính.
3.2.3 Thuật giải ID3 xây dựng Cây quyết định từ trên xuống
ID3 xây dựng Cây quyết định từ trên xuống Đối với bất kỳ thuộc tính nào chúng
ta cũng có thể phân vùng tập hợp các ví dụ rèn luyện thành những tập con tách rời, mà ở
đó mọi ví dụ trong một phân vùng (partition) có một giá trị chung cho thuộc tính đó ID3chọn một thuộc tính để kiểm tra tại nút hiện hành của cây và dùng trắc nghiệm này đểphân vùng tập hợp các ví dụ, thuật toán khi đó xây dựng theo cách đệ quy một cây con
Không Không
Nhẹ
Trang 24cho từng phân vùng Việc này tiếp tục cho đến khi mọi thành viên của phần vùng đều nằmtrong cùng một lớp, lớp đó trở thành nút lá của cây.
Vì thứ tự của các trắc nghiệm là rất quan trọng đối với việc xây dựng một câyquyết định đơn giản, ID3 phụ thuộc rất nhiều vào tiêu chuẩn chọn lựa trắc nghiệm để làmgốc của cây
ID3 xây dựng Cây quyết định theo thuật giải sau:
Function induce_tree(tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then
return một nút lá được gán nhãn bởi đó else if tập_thuộc_tính là rỗng then
return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong
tập_ví_dụ
else
begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
đặt vào phân_vùng_V các ví dụ có giá trị V tại thuộc tính P;
gọi induce_tree(phân vùng_V, tập_thuộc_tính), gắn thuộc
tính vào nhánh V
end end
end
Các khả năng có thể có của các phân vùng (partition):
Trang 25Trong quá trình xây dựng Cây định danh, phân vùng của một nhánh mới có thể códạng sau:
- Có các ví dụ thuộc các lớp khác nhau (như có cả ví dụ âm và dương)
- Tất cả các ví dụ đều thuộc cùng một lớp (như toàn â hoặc toàn dương)
- Không có ví dụ nào => giải thuật trả về mặc nhiên
- Không còn thuộc tính nào => nghĩa là dữ liệu bị nhiễu, khi đó giải thuật phải sửdụng một luật nào đó để xử lý, chẳng hạn như luật đa số (lớp nào có nhiều ví dụhơn sẽ được dùng để gắn nhãn cho nút lá trả về)
3.2.4 Thuộc tính dùng để phân loại tốt nhất
Entropy đo tính thuần nhất của tập ví dụ:
Khái niện Entropy của một tập S được định nghĩa trong lý thuyết thông tin là sốlượng mong đợi các bit cần thiết để mã hóa thông tin về lớp của một thành viên rút ra mộtcách ngẫu nhiên từ tập S Trong trường hợp tối ưu, mã có độ dài ngắn nhất Thwo lýthuyết thông tin, mã có độ dài tối ưu là mã gán –log2p bits cho thông điệp có xác xuất là
p
Trong trường hợp S là tập ví dụ thì thành viên của S là một ví dụ, mỗi ví dụ thuộcmột lớp hay có một gía trị phân loại
Entropy có giá trị nằm trong khoảng [0 1]
Entropy(S) = 0 tập ví dụ S chỉ toàn ví dụ thuộc cùng một loại, hay S là thuầnnhất
Entropy(S) = 1 tập ví dụ S có các ví dụ thuộc các loại khác nhau với độ pha trộn
là cao nhất
0 < Entropy(S) < 1 tập ví dụ S có số lượng ví dụ thuộc các loại khác nhau làkhông bằng nhau
Trang 26Để đơn giản ta xét trường hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc dương (+).
Khi đó, Entropy đo độ pha trộn của tập S theo công thức sau:
Entropy(S) = -p + log 2 p + - p - log 2 p
-Một cách tổng quát hơn, nếu các ví dụ của tập S thuộc nhiều hơn hai loại, giả sử là có c
giá trị phân loại thì công thức Entropy tổng quát là:
Entropy(S) = Lượng thông tin thu được đo mức độ giảm Entropy mong đợi:
Entropy là một số đo độ pha trộn của một tập ví dụ Phép đo này gọi là lượng thông tinthu được hay còn gọi là lượng giảm Entropy mong đợi gây ra bởi việc phân chia các ví dụtheo thuộc tính
Gain(S,A) của một tập thuộc tính A, trên tập S, được định nghĩa như sau:
Gain(S,A) = Entropy(S) -
Trong đó Value(A) là tập hợp có thể có các giá trị của thuộc tính A, Sv là tập con của
S chứa các ví dụ có thuộc tính A mang gí trị v
Trang 27Trở lại ví dụ ban đầu, nếu không sử dụng Entropy để xác định độ thuần nhất thì có thểxảy ra trường hợp cây quyết định có chiều cao lớn Ta áp dụng phương thức tính Entropy
để xác định chắc chắn thuộc tính nào được chọn trong quá trình tạo Cây quyết định Đầutiên ta tính độ thuần nhất của tập dữ liệu:
Entropy(S) = - (9/14)log2(9/14) – (5/14)log2(5/14) = 0.940
Từ đó ta tính tiếp Gain cho từng thuộc tính để suy ra thuộc tính nào được chọn làm nútgốc
Gain(S, Quang cảnh) = Entropy(S) – (5/14) Entropy(SNắng) – (4/14) Entropy(SÂm u) –
(5/15) Entropy(SMưa) = 0.940 – (5/14)(5/14)(-(2/5)log2(2/5) – (3/5)log2(3/5)) – (4/14)(0)– (5/14)(-(3/5)log2(3/5) – (2/5)log2(2/5))
Trang 28Gain(S, Nhiệt độ) = Entropy(S) – (4/14) × Entropy(SNóng) – (6/14) × Entropy(SÁm áp) –
(4/14) × Entropy(SMát)
= 0.940 – (4/14)(1) - (6/14)(-(4/6)log2(4/6) – (2/6)log2(2/6)) – (4/14)( – (3/4)log2(3/4) – (1/4)log2(1/4))
Trang 29Gain(S, Độ ẩm) = Entropy(S) – (7/14) × Entropy(SCao) – (7/14) × Entropy(STrung bình)
= 0.940 – (7/14)(1) - (7/14)(-(3/7)log2(3/7) – (4/7)log2(4/7)) - (6/7)log2(6/7) – (1/7)log2(1/7))
= 0.151
Ta thấy Gain(S, Quang cảnh) là lớn nhất lấy thuộc tính Quang cảnh làm nút gốc.
Sau khi lập được cấp đầu tiên của Cây quyết định ta xét nhánh Nắng
Entropy(SNắng) = – (3/5) log2(3/5) – (2/5) log2(2/5)
Trang 30Gain(SNắng , Nhiệt độ) = Entropy(SNắng) – (2/5) × Entropy(SNóng) – (2/5) × Entropy(SÁm áp) –(1/5) × Entropy(SMát)
Trang 31Gain(SNắng , Gió) = Entropy(SNắng) – (2/5) × Entropy(SNhẹ) – (3/5) × Entropy(SMạnh)
Trang 33Entropy(SMưa) = -(3/5) log2 (3/5) – (2/5) ) log2 (2/5)
= 0.991 Gain(SMưa , Nhiệt độ) = Entropy(Smưa) – (3/5) × Entropy(SÁm áp) – (2/5) × Entropy(SMát)
Trang 34Gain(SMưa , Gió) = Entropy(SMưa) – (3/5) × Entropy(SNhẹ) – (2/5) × Entropy(SMạnh)
Trang 35 Luật rút ra từ Cây quyết định:
Không
Lưu ý: một phiên bản khác của thuật toán ID3 sử dụng Informatic Gain thay cho
En-tropy để chọn thuộc tính quyết định Công thức tính Informatic Gain như sau:
Gain(a) = Entropy(S) – Entropy(A)
Gió
Có Không
Trang 36Trong đó: S là tập mẫu và A là một thuộc tính Entropy(S): là độ hỗn loạn của tập S Entropy(A): là độ hỗn loạn trung bình của thuộc tính A (cách tính như trên) Nguyên tắc
thực hiện: tương tự như trên ngoại từ Gain lớn nhất.
3.2.5 Đánh giá hiệu suất của Cây quyết định
Một Cây quyết định sinh ra bởi ID3 được đánh giá là tốt nếu như cây này có khả năngphân loại đúng được các trường hợp hay ví dụ sẽ gặp trong tương lai, hay cụ thể hơn là cókhả năng phân loại đúng các ví dụ không nằm trong tập dữ liệu rèn luyện
Để đánh giá hiệu suất của một Cây quyết định người ta thường sử dụng một tập ví dụtách rời, tập này khác với tập dữ liệu rèn luyện, để đánh giá khả năng phân loại của cây
trên các ví dụ của tập này Tập dữ liệu này gọi là tập kiểm tra (validation set) Thông
thường, tập dữ liệu sẵn có sẽ được chia thành hai tập: rập rèn luyện thường chiếm 2/3 số
ví dụ và tập kiểm tra chiếm 1/3
3.2.6 Khi nào nên sử dụng ID3
Giải thuật ID3 là một giải thuật học đơn giản nhưng nó chỉ phù hợp với một lớp cácbài toán hay vấn đề có thể biểu diễn bằng ký hiệu Chính vì vậy, giải thuật này thuộc cách
tiếp cận cách giải quyết vấn đề dựa trên ký hiệu (symbol – based approach).
Tuy nhiên, khác với một số giải thuật khác cũng thuộc tiếp cận này, ID3 sử dụng các
ví dụ rèn luyện ở dạng xác suất nên nó có ưu điểm là ít bị ảnh hưởng bởi một vài dữ liệunhiễu Vì vậy, tập dữ liệu rèn luyện ở đây có thể chứa lỗi hoặc có thể thiếu môt vài giá trị
ở một số thuộc tính nào đó Một giải pháp thường được áp dụng đối với các dữ liệu bịthiếu là sử dụng luật đa số, chương trình tiền xử lý dữ liệu sẽ điền vào các vị trí còn trốnggiá trị có tần số xuất hiện cao nhất của thuộc tính đó