Tải bản đầy đủ (.doc) (72 trang)

Tiểu luận môn CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Ứ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 CHƯƠNG TRÌNH DEMO THUẬT TOÁN ID3

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (695.87 KB, 72 trang )


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜ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
CHƯƠNG TRÌNH DEMO
THUẬT TOÁN ID3
Giảng viên phụ trách:
GS.TSKH HOÀNG VĂN KIẾM
Học viên thực hiện:
LÊ PHÚ QUÍ - CH1301108
TP. Hồ Chí Minh, 10 - 2014
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
LỜ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òng
ban tại trường ĐH Công Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian
học vừ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ông
nhiề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í
HVTH: Lê Phú Quí
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM


NHẬN XÉT CỦA GIẢNG VIÊN
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………………………
……………………………………………………………………………………………….
HVTH: Lê Phú Quí
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
Mụ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 10
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 12
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 13
2.5.1. Chọn thuộc tính phân tách 13
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 22
3.2.5 .Đánh giá hiệu suất của Cây quyết định 33
3.2.6 Khi nào nên sử dụng ID3 33
3.3. Thuật toán C4.5 34
HVTH: Lê Phú Quí

Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
3.3.1. Giới thiệu 34
3.3.2. Nội dung thuật toán C4.5 35
3.3.3. Độ đo sử dụng để xác định điểm chia tốt nhất 37
3.3.4. Một số vấn đề với thuộc tính 38
3.4.Thuật toán SPRINT 46
3.4.1. Lịch sử phát triển 46
3.4.2. Mã giã của thuật toán SPRINT 46
3.4.3. SPRINT sử dụng Gini-index 47
VI. Các vấn đề học trong cây quyết định 49
4.1. Tránh Overfitting dữ liệu 49
4.2. Giảm lỗi cắt tỉa 52
4.3. Luật POST-PRUNING 54
4.4. Kết hợp các thuộc tính có giá trị liên tục 56
4.5. Các phương pháp thay thế cho các thuộc tính lựa chọn 57
4.6. Xử lý huấn luyện đối với những thuộc tính thiếu giá trị 58
4.7. Xử lý các thuộc tính có chi phí khác nhau 59
V. Chương trình thực nghiệm thuật toán ID3 59
5.1. Cài đặt chương trình 59
5.2. Giao diện chương trình 63
VI. Tổng kết 66
VII. Tài liệu tham khảo 66
HVTH: Lê Phú Quí
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
Lờ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ôn
mong 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ụng
củ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ững
cô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ạng
nhữ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ách
trí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ớp
với cây quyết định (Decision Tree Classification), phân lớp Bayesian (Bayesian
Classifier), phân lớp K – hàng xóm gần nhất (K – nearest neighbor classifier), mạng
nơ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ới
cá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ểu
cá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 trong
lĩ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ớp
bằng cây quyết định.
- Xây dựng chương trình thực nghiệm thuật toán ID3.
HVTH: Lê Phú Quí Trang 5
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
I. 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.
• Thể hiện tri thức (knowledge representation): là phương pháp cho phép mã hóa
tri thức trong cơ sở tri thức của hệ thống.
• Hệ thống dựa trên tri thức (knowledge based system): là hệ thống phần mềm,

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ở tri
thức, được xử lý, đánh giá nhờ thành phần giải vấn đề độc lập với bài toán.
• Cơ sở tri thức (knowledge base): là thành phần phần chính bên cạnh các thành
phần giải vấn đề trong hệ thống trên tri thức.
• Công nghệ tri thức (knowledge engineering): là những phương pháp dùng để
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á tri
thứ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ống
dự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à đưa
và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
Tiếp nhận thụ động Tiếp nhận chủ động Biểu diễn tri thức
Gián tiếp: những tri thức
kinh điển.
Trực tiếp: những tri thức
kinh nghiệm do chuyên
gia lĩnh vực đưa ra
Đối với những tri
thức tiềm ẩn, không
rõ ràng hệ thống phải
tự phân tích, suy
diễn, khám phá để có
thêm tri thức mới
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
Frame
Script.
HVTH: Lê Phú Quí Trang 6

Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
1.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ó hai
khố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ức
kế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ủa
nó.
 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á.
 Hệ cơ sở tri thức kết hợp: bao gồm sự kết hợp giữa hệ đóng và hệ mở, hệ
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ức
vớ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 tri
thứ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, tri
thứ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ễn
chí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
Loại tri thức Ví dụ
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ế

nào, gồm các khẳng định đơn giản,
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
HVTH: Lê Phú Quí Trang 7
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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
Các hệ có
tính chất
đóng, nhưng
đôi khi cũng
có hệ mang
tính mở.
Các hệ mang
tính kết hợp
(cơ sở dữ liệu
+ tri thức
ngành + hàm
toán học + …)
Giống các
hệ hỗ trợ ra
quyết đính
với tính
ngoại suy
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
khiển tự động hóa, thường
là những hệ thống thời gian

HVTH: Lê Phú Quí Trang 8
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
với đối tượng
sử dụng là các
nhà lãnh đạo.
cao hơn. 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áp
biể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ương
trì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ết
rằ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ữa
cho đế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ập
trì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ểu
nghe 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
thưở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. Trong
tương lai có thể còn nhiều kiểu học khác ra đời.

HVTH: Lê Phú Quí Trang 9
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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 tri
thứ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ên
khá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.
1.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ụ:
HVTH: Lê Phú Quí Trang 10
Khám phá tri thức Máy 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àn
thiệ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
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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 “tri
thứ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ác
phươ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ới nú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án củ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ằng câ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
HVTH: Lê Phú Quí Trang 11
kết luận : nói chung, các chị hát hay.
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM

Hì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ảng
thờ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).
2.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 tra
thống kê.
HVTH: Lê Phú Quí Trang 12
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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ột
câ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ựa
trê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ừng
việ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.
2.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 đầu
và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ại
nút đó.
HVTH: Lê Phú Quí Trang 13
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
Độ đ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ệu
Thuậ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ệc
chọ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ân
tá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ăng
hoặ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ép
phâ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,
mộ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ập
mẫ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ánh
tươ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ó
HVTH: Lê Phú Quí Trang 14
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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ựa
và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ép
phâ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ân
tá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ộc
tí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ớp
N.
- 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à:

- Cho các tập {S
1
, S
2
, ,S
v
} 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 p
i
mẫu lớp P và n
i
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 S
i
là:
HVTH: Lê Phú Quí Trang 15
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
- 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)log
2
(1/2) - (1/2)log
2
(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/5log
2
(4/5) - 1/5log
2
(1/5) = 0.722
+ ''Độ cứng'' = ''Trung bình'':
Info(0,3) = Entropy(0,3) = - 0log
2
(0) - 1log
2
(1) = 0 (quy ước log
2
(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:
Gain(''Độ ẩ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:
HVTH: Lê Phú Quí Trang 16
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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
Kết quả = Tốt
IF (Độ cứng = Trung bình) THEN Kết quả = Xấu.
HVTH: Lê Phú Quí Trang 17
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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ược
chia để 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" (hay
thuộ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út
lá.
3. Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "no" (hay
thuộ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à
"no" thì:
+ Chọn một thuộc tính X trong tập thuộc tính của tập mẫu dữ liệu , X có
các giá trị v1,v2, …vn.
+ Chia tập mẫu trong T thành các tập con T1, T2,….,Tn. chia theo giá trị
của X.
+ 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ính

củ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.
Việ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.
HVTH: Lê Phú Quí Trang 18
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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ểm
tra 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 hay
mộ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ân
loạ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.
Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Golf
Nắng Nóng Cao Nhẹ Không
Nắng Nóng Cao Mạnh Không
Âm u Nóng Cao Nhẹ Có
HVTH: Lê Phú Quí Trang 19
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
Mưa Ấm áp Cao Nhẹ Có
Mưa Mát Trung bình Nhẹ Có
Mưa Mát Trung bình Mạnh Không
Âm u Mát Trung bình Mạnh Có
Nắng Ấm áp Cao Nhẹ Không
Nắng Mát Trung bình Nhẹ Có
Mưa Ấm áp Trung bình Nhẹ Có
Nắng Ấm áp Trung bình Mạnh Có
Âm u Ấm áp Cao Mạnh Có
Âm u Nóng Trung bình Nhẹ Có
Mưa Ấm áp Cao Mạnh Không
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.
HVTH: Lê Phú Quí Trang 20
Không
Không




Độ
ẩm
Gió
Quang
cảnh
Mạnh
Âm u
Nắng
Cao
Trung bình
Mưa
Nhẹ
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
Từ 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ân
loạ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ác
kiể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 đó. ID3
chọ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
cho 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ằm trong 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ây
quyế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àm
gố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;
HVTH: Lê Phú Quí Trang 21
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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):
Trong 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ột
cá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 –log
2
p bits cho thông điệp có xác xuất là
p.
HVTH: Lê Phú Quí Trang 22
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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ộc
mộ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ần
nhấ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.
Để đơ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 (+).
Cho trước:
• Tập S là tập dữ liệu rèn luyện, trong đó thuộc tính phân loại có hai giá trị giả sử là
âm (-) và dương (+).
• p
+
là phần các ví dụ dương trong tập S.
• p
-
là phần các ví dụ âm trong tập S.

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:
HVTH: Lê Phú Quí Trang 23
Lớp Cao học KHMT Khóa 8 ĐH CNTT – ĐHQG TP.HCM
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 tin
thu đượ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, S
v
là tập con của
S chứa các ví dụ có thuộc tính A mang gí trị v.
Trở 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. Đầu
tiên ta tính độ thuần nhất của tập dữ liệu:
Entropy(S) = - (9/14)log
2
(9/14) – (5/14)log
2
(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út
gốc.
HVTH: Lê Phú Quí Trang 24
Quang cảnh
Âm u
Nắng Mưa
[2+ , 3-] [4+ , 0-] [3+ , 2-]

×