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

Cây quyết định trong học máy và sử dụng phần mềm WEKA học máy và khám phá tri thức thực tế

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 (994.87 KB, 42 trang )

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TP.HCM
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG
________________
BÁO CÁO THU HOẠCH CHUYÊN ĐỀ
CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG
Đề tài:Cây quyết định trong học máy và sử dụng
phần mềm WEKA học máy và khám phá tri thức thực
tế .
Giảng viên HD: Sinh Viên Thực Hiện:
GS.TSKH Hoàng Kiếm Nguyễn Bảo Minh Mssv : CH1101104
Huỳnh Ái Nhân Mssv :
CH1101116

Lớp Cao học CNTT Qua mạng Khóa 6
TP. HCM, 05/2012
Mục Lục
MỤC LỤC
CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG 1
TP. HCM, 05/2012 1
LỜI MỞ ĐẦU 1
I Tổng quan về máy học và khám phá tri thức 2
1.1 Máy học 2
1.1.1 Thế nào là máy học ? 2
1.1.2 Phân loại máy học 2
1.1.2.1 Phân loại thô 2
1.1.2.2 Phân loại theo 2 tiêu chuẩn cùng lúc:”Cấp độ học” và “cách tiếp cận” 3
1.2 Khám phá tri thức 4
1.2.1. Định nghĩa khám phá tri thức 4
1.2.2. Các giai đoạn của quá trình khám phá tri thức 4
1.2.3. Khai mỏ dữ liệu 5
II. Cây quyết định 6


2.1 Giới thiệu chung 6
2.3 Xây dựng cây quyết định 7
2.3.1 Chọn thuộc tính phân tách 7
2.3.2 Chọn thuộc tính phân hoạch tốt nhất 8
2.3.2.1 Phân hoạch dựa vào vector đặc trưng 8
2.3.2.2 Phân hoạch dựa vào độ đo hỗn loạn 8
2.4 Ưu điểm của cây quyết định 9
2.5 Các thuật toán xây dựng cây quyết định 9
2.5.1 Thuật toán xây dựng cây quyết định ID3 10
2.5.1.1 Giới thiệu: 10
2.5.1.2 Thuật toán ID3 11
2.5.2 Thuật toán xây dựng cây quyết định C4.5 18
2.5.2.1 Thuật toán xây dựng cây quyết định: 18
2.5.2.2 Độ đo sử dụng để xác định điểm chia tốt nhất: 20
2.5.2.3 Một số vấn đề với thuộc tính: 20
2.5.2.4 Nhận xét về thuật toán C4.5 30
III Sử dụng phần mềm Weka trong học máy và khám phá tri thức 30
3.1 Giới thiệu 30
3.2 Ứng dụng Weka xử lý trong học máy và khai phá tri thức 33
KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 40
Lời Mở Đầu
LỜI MỞ ĐẦU
Trong một vài năm gần đây, ngành công nghệ thông tin trên toàn thế giới đã
phát triển mạnh mẽ với một tốc độ rất nhanh. Song song với điều đó chúng ta cũng
phải đối mặt với một thách thức mới là sự bùng nổ về lượng thông tin. Tuy nhiên,
một thực tế diễn ra rất phổ biến là mặc dù có một lượng dữ liệu rất lớn nhưng tri thức
mà thực sự chúng ta có là rất ít, những hiểu biết thực sự của chúng ta về lượng dữ
liệu mà chúng ta có còn rất hạn chế.
Xuất phát từ thực tế đó mà trong một vài năm gần đây các nhà nguyên cứu và

ứng dụng tin học phải nguyên cứu, tìm kiếm những phương pháp mới để khai thác
những tri thức tìm ẩm có trong cơ sở dữ liệu khổng lồ đó. Từ cuối những năm của
thập kỷ 1980 khái niệm phát hiện tri thức trong cơ sở dữ liệu lần đầu tiên được nói
đến, đây là quá trình phát hiện tri thức tiềm ẩn, không biết trước và hữu ích trong các
cơ sở dữ liệu lớn.
Hiện nay cùng với sự phát triển của Công Nghệ Thông Tin ngày nay, khám phá
tri thức trong các cơ sở dư liệu lớn là một trong nhưng lĩnh vực được rất nhiều nhà
nguyên cứu và ứng dụng tin học đặc biệt quan tâm. Việc nguyên cứu những phương
pháp có thể tự động phát hiện những tri thức mới trong cơ sở dư liệu trên máy tính đã
tỏ ra thực sự hữu ích trong việc hỗ trợ quyết định cho con người.
Trên thế giới có rất nhiều thuật toán khám phá tri thức bằng cách phân lớp và
rời rạc dữ liệu như: Sử dụng cây quyết định, phương pháp thống kê, các mạng neural,
thuật toán di truyền mỗi thuật toán đều có những ưu khuyết điểm của nó và tùy vào
từng trường hợp, lĩnh vực cụ thể mà có thể áp dụng những thuật toán cho phù hợp.
Trong bài thu hoạch này em xin trình bày về phương pháp sử dụng cây định
danh trong học máy để khám phá tri thức .
Báo cáo thu hoạch CNTT & Ứng dụng Trang 1
Máy Học
I Tổng quan về máy học và khám phá tri thức
1.1 Máy học
1.1.1 Thế nào là máy học ?
 Máy tính hay chương trình máy tính có khả năng tự hoàn thiện từ kinh
nghiệm.
 Máy học còn có nghĩa là việc mô hình hóa môi trường cung 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 mới khác với cấu
trúc dữ liệu hiện có.Chẳng hạn tìm ra những luật IF… Then… từ tập dữ liệu đầu vào.
1.1.2 Phân loại máy học
1.1.2.1 Phân loại thô
 Học có giám sát (supervised learning)
Là phương pháp cho máy học ,và suy diễn ra từ cơ sơ dữ liệu. Các dữ liệu bao

gồm dữ liệu đầu vào(thường là vector) và kết quả mong muốn. Nó là tình trạng học
cần tập huấn luyện.
Ví dụ: Nhận dạng chữ viết tay, Nhận dạng ký tự quang học, ……
Đối tượng D đưa vào sẽ thuộc một trong 3 thuộc tính A,B,hay C.Với A,B,C là
tập huấn luyện
Các bước giải quyết vấn đề học giám sát
+ Xác định loại hình đào tạo
+ Thu thập thông tin để huấn luyện
+ Xác định tính năng dữ liệu đầu vào
+ Xác định cơ cấu, chức năng đã học và các thuật
toán tương ứng
+ Chạy các thuật toán trên các tập dữ liệu
 Học không giám sát (Unsupervised learning)
Là cách học thông tin mà không cần tập dữ liệu huấn luyện được gán nhãn sẵn.
Báo cáo thu hoạch CNTT & Ứng dụng Trang 2
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Đối tượng D đưa vào có thể nằm trong 3 thuộc tính trên hoặc không. Quá trình
học không giám sát là quá trình khám phá dữ liệu
- Ví dụ:Kỹ thuật gom cụm (Hierarchical clustering, K-means,…)
- Giải thuật Hierarchical clustering: Cho tập N đối tượng và một ma trận khoảng
cách N*N, giải thuật sẽ xử lý như sau:
- Tìm cặp cluster có khoảng cách ngắn nhất kết hợp chúng lại
thành 1 nhóm.
- Tính toán khoảng cách giữa các nhóm với nhóm cũ
- Lặp lại bước 2 và 3 cho đến khi các items được nhóm vào trong 1 nhóm đơn
kích cỡ N
1.1.2.2 Phân loại theo 2 tiêu chuẩn cùng lúc:”Cấp độ học” và “cách tiếp cận”
Cấp độ học
 Học vẹt (Rote learning). Hệ tiếp nhận các khẳng định của các quyết
định đúng. Khi hệ tạo ra một quyết định không đúng, hệ sẽ đưa ra các luật hay quan

hệ đúng mà hệ đã sử dụng. Hình thức học vẹt nhằm cho phép chuyên gia cung cấp
tri thức theo kiểu tương tác.
 Học theo giải thích ( by explanation ) :Thay vì đưa ra một luật cụ thể cần
áp dụng vào tình huống cho trước, hệ thống sẽ được cung cấp bằng các chỉ dẫn tổng
quát
 Học theo ví dụ, trường hợp ( by examples,cases): Hệ thống được cung cấp
một tập các ví dụ và kết luận được rút ra từ từng ví dụ. Hệ liên tục lọc các luật và
quan hệ nhằm xử lý từng ví dụ mới.
 Học khám phá ( by discovering) Thay vì có mục tiêu tường minh, hệ khám
phá liên tục tìm kiếm các mẫu và quan hệ trong dữ liệu nhập. Các ví dụ về học khám
phá bao gồm gom cụm dữ liệu, học để nhận dạng các đặc tính cơ bản như cạnh từ các
điểm ảnh.

Cách tiếp cận
 Tiếp cận thống kê
 Tiếp cận toán tử logic
 Tiếp cận hình học (Phân hoạch không gian,xây dựng cây định danh)
 Tiếp cận mạng neural
 Tiếp cận khai mỏ dữ liệu
Báo cáo thu hoạch CNTT & Ứng dụng Trang
3
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
1.2 Khám phá tri thức
Phát hiện tri thức là khái niệm ra đời vào những năm cuối của thập kỷ 80 và đã
trở thành một lĩnh vực được nghiên cứu rộng rãi trên toàn cầu. Sự ra đời của phát hiện
tri thức là sự kết hợp kết quả nguyên cứu của nhiều ngành khoa học khác lại với nhau
như: Quản trị cơ sở dữ liệu, máy học, thống kê v.v.
1.2.1. Định nghĩa khám phá tri thức
Khám phá tri thức (Khám phá tri thức-Knowledge Discovery in Databases)
trong các cơ sở dữ liệu là quá trình phát hiện những tri thức tiềm ẩn, không biết trước,

và có ích trong trong cơ sở dữ liệu. Thực chất đó là quá trình tìm kiếm những thông
tin có trong cơ sở dữ liệu nhưng bị che giấu trong các khối dữ liệu.
Tri thức ở đây có thể được hiểu là một biểu thức trong một ngôn ngữ nào đó
diễn tả một hoặc nhiều mối quan hệ giữa các thuộc tính trong các dữ liệu đó. Các
ngôn ngữ thường dùng để biểu diễn tri thức trong việc biểu diễn tri thức trong quá
trình phát hiện tri thức từ cơ sở dư liệu là các khung (frames), các cây và đồ thị, các
luật, các công thức trong logic mệnh đề hoặc logic tân từ cấp một . . .
Việc khám phá tri thức thường được áp dụng để giải quyết một loạt những yều
cầu phục vụ những mục đích nhất định. Do vậy nên quá trình phát hiện tri thức mang
tính chất hướng nhiệm vụ, không phải là phát hiện mọi tri thức mà phát hiện những tri
thức phục vụ tốt một nhiệm vụ đề ra. Vì vậy, quá trình phát hiện tri thức là một hoạt
động tương tác giữa một người sử dụng hoặc một chuyên gia phân tích với các công
cụ tin học.
1.2.2. Các giai đoạn của quá trình khám phá tri thức
Mục đích của quá trình khám phá tri thức: Từ những cơ sở dữ liệu ngoài cuộc
sống thực tế sau một hoặc một số bước của quá trình sẽ rút ra được những tri thức
mới. Các bước trong quá trình này có thể lặp đi lặp lại nhiều lần và được mô tả theo
hình sau:
Giai đoạn 1:Chuẩn bị dữ liệu.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
4
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
− Tìm hiểu lĩnh vực ứng dụng và nhiệm vụ đề ra, xác định các tri thức đã có
và các mục tiêu của người sử dụng.
− Tạo và chọn lựa cơ sở dữ liệu.
Giai đoạn 2: Huấn luyện dữ liệu.
− Xử lý và làm sạch dữ liệu trước: Bỏ đi các dữ liệu tạp bao gồm các lỗi và các
dạng không bình thường. Xử lý dữ liệu bị mất, chuyển đổi dữ liệu phù hợp.
− Rút gọn kích thước dữ liệu nhận được: Nhận ra các thuộc tính hữu ích cho
quá trình phát hiện tri thức.

Giai đoạn 3: Khai mỏ dữ liệu.
− Chọn nhiệm vụ khai mỏ dữ liệu.
− Lựa chọn các phương pháp khai mỏ dữ liệu.
− Khai mỏ dữ liệu để rút ra các mẫu, các mô hình.
Giai đoạn 4: Biểu diển tri thức.
− Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống. Tuy nhiên để sử
dụng được tri thức đó đôi khi cần đến các chuyên gia trong các lĩnh vực quan tâm
vì tri thức rút ra có thể chỉ có tính chất hỗ trợ quyết định.
− Tri thức tìm được có thể được sử dụng cho một quá trình khám phá tri thức
khác.
Giai đoạn 5:Kiểm tra đánh giá:
Báo cáo kết quả các tri thức tìm được và tỉ lệ phần trăm tri thức có trong cơ sở
dữ liệu đó.
Như vậy khám phá tri thức gồm 5 giai đoạn chính, trong 5 giai đoạn trên thì giai
đoạn khai mỏ dữ liệu là quan trọng nhất. Đây là giai đoạn duy nhất tìm được các
thông tin tiềm ẩn trong cơ sở dữ liệu.
1.2.3. Khai mỏ dữ liệu
Khai mỏ dữ liệu (hay data mining) được định nghĩa như là quá trình phát hiện
các tri thức mới, có giá trị từ những dữ liệu lớn được lưu trữ trong cơ sở,
datawarehouse hay các kho chứa thông tin khác. Khai mỏ dữ liệu là một giai đoạn
quan trọng trong quá trình phát hiện tri thức. Về bản chất nó là giai đoạn duy nhất
tìm ra được thông tin mới, thông tin tiềm ần có trong cơ sở dữ liệu. Mục đích nguyên
thủy của khai mỏ dữ liệu là mô tả và dự đoán. Các kỹ thuật khai mỏ dữ liệu được chia
thành những mảng chính sau:
 Phân cụm và phân lớp dữ liệu: Quá trình này có thể xem là quá trình phân
tích một tập dữ liệu và sinh ra một tập nhóm các luật mà chúng ta có thể sử dụng để
phân lớp dữ liệu trong tương lai. Khi phân lớp dữ liệu người ta thường dựa trên một
tập các mẫu huấn luyện để sinh ra các luật. Có rất nhiều phương pháp để phân lớp dữ
liệu được nguyên cứu như: Các phương pháp học cây quyết định, phương pháp thông
kê, các mạng nơ ron, các mạng xác xuất Bayes,. . .

 Khai mỏ luật kết hợp: Mong muốn tìm ra những mối quan hệ giữa các thuộc
tính hoàn toàn độc lập với nhau trong cơ sở dữ liệu. Luật kết hợp có thể dùng để hỗ
trợ quyết định. Ví dụ như các bài toán kinh doanh.
 Khai mỏ chuỗi: Luật chuỗi và khai mỏ chuỗi có thể coi như là một cách trừu
tượng của luật kết hợp và phát hiện các luật kết hợp trong cơ sở dữ liệu phụ thuộc
thời gian.
 Có rất nhiều phương pháp để có thể tiến hành khai mỏ dữ liệu đã được nguyên
cứu và đề ra như:
− Các phương pháp sinh cây quyết định.
− Các phương pháp thống kê.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
5
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
− Các mạnh nơ ron.
− Các mạng xác suất Bayes.
− Các thuật toán di truyền.
− Phương pháp người láng giềng gần nhất.
− Luật suy diễn.
− Trực quan hoá dữ liệu.
− .v.v.
Như vậy, khai mỏ dữ liệu là một giai đoạn quan trọng trong quá trình khám phá
tri thức và nó đang được áp dụng rộng rãi trong nhiều lĩnh vực như:
− Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision
support)
− Điều trị y học (medical treatment)
− Text mining & Web mining
− Tài chính và thị trường chứng khoán (finance & stock market)
− Bảo hiểm (insurance)
− Nhận dạng (pattern recognition)
− .v.v.

II. Cây quyết định
2.1 Giới thiệu chung
Trong lĩnh vực máy học, 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 một 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 một 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ị 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.
Tóm lại ta có thể định nghĩa cây quyết định như sau:
Cây quyết định là cấu trúc cây sao cho:
 Mỗi nút trong ứng với một phép kiểm tra trên một thuộc tính
 Mỗi nhánh biểu diễn kết quả phép kiểm tra
 Các nút lá biểu diễn các lớp hay các phân bố lớp
 Nút cao nhất trong cây là nút gốc.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khám pha
dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho
các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại
đó. Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập
con dựa theo một kiểm tra giá trị thuộc tính . Quá trình này được lặp lại một cách đệ
qui cho mỗi tập con dẫn xuất. Quá trình đệ qui hoàn thành khi không thể tiếp tục thực
hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần
tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên (random forest) sử dụng
một số cây quyết định để có thể cải thiện tỉ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán
các xác suất có điều kiện.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
6
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh

Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học
và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho
trước.
Dữ liệu được cho dưới dạng các bản ghi có dạng:
1 2 3
( , ) ( , , , , , )
k
x y x x x x y=
Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân
loại hay tổng quát hóa.
1 2 3
, , x x x
là các biến sẽ giúp ta thực hiện công việc đó.
2.2 Các kiểu cây quyết định
Cây quyết định còn có hai tên khác:
Cây hồi quy (Regression tree): ước lượng các hàm giá 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 Xây dựng cây quyết định
2.3.1 Chọn thuộc tính phân tách
Lúc khởi đầu, ta có trong tay một tập 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 xem thuộc tính nào đưa
ra được sự phân tách tốt nhất tại nú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 xác định để 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 sự phân
tách tốt cũng phải tạo ra các nút có kích cỡ tương tự nhau, hay chí ít cũng không tạo
ra các nút có quá ít bản ghi.
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 tách tốt nhất sẽ được sử dụng trong
phép 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 (có thể do có quá ít bản ghi) hoặc do 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á.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
7
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
2.3.2 Chọn thuộc tính phân hoạch tốt nhất
2.3.2.1 Phân hoạch dựa vào vector đặc trưng
Quinlan quyết định thuộc tính phân hoạch bằng cách xây dựng các vector đặc
trưng cho mỗi giá trị của từng thuộc tính dẫn xuất và thuộc tính mục tiêu. Cách tính
cụ thể như sau :
Với mỗi thuộc tính dẫn xuất A còn có thể sử dụng để phân hoạch, tính :
VA(j) = ( T(j

, r
1
), T(j

, r
2
) , …, T(j

, rn) )
T(j, ri) = (tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất

A là j và có giá trị thuộc tính mục tiêu là ri ) / ( tổng số phần tử trong phân
hoạch có giá trị thuộc tính dẫn xuất A là j )
* trong đó r
1
, r
2
, … , rn

là các giá trị của thuộc tính mục tiêu
*
Như vậy nếu một thuộc tính A có thể nhận một trong 5 giá trị khác nhau thì nó
sẽ có 5 vector đặc trưng.
Một vector V(Aj

) được gọi là vector đơn vị nếu nó chỉ có duy nhất một thành
phần có giá trị 1 và những thành phần khác có giá trị 0.
Thuộc tính được chọn để phân hoạch là thuộc tính có nhiều vector đơn vị nhất.
2.3.2.2 Phân hoạch dựa vào độ đo hỗn loạn
Thay vì phải xây dựng các vector đặc trưng như phương pháp của Quinlan, ứng với
mỗi thuộc tính dẫn xuất ta chỉ cần tính ra độ đo hỗn loạn và lựa chọn thuộc tính nào
có độ đo hỗn loại là thấp nhất. Công thức tính như sau :
TA =
trong đó :
b
t
là tổng số phần tử có trong phân hoạch
b
j
là tổng số phần tử có thuộc tính dẫn xuất A có giá trị j.
b

ri
: tổng số phần tử có thuộc tính dẫn xuất A có giá trị j và thuộc tính mục tiêu
có giá trị i.
- Entropy là đại lượng đặc trưng cho độ hỗn loạn dữ liệu
- Entropy = 0 nếu tất cả các dữ liệu thuộc về 1 lớp
- Entropy = 1 nếu phân lớp có tỉ lệ bằng nhau.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
8
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
2.4 Ưu điểm của cây quyết định
So với các phương pháp khám phá dữ liệu khác, cây quyết định là phương pháp
có một số ưu điểm:
• Cây quyết định dễ hiểu. Người ta có thể hiểu mô hình cây quyết định sau
khi được giải thích ngắn.
• Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc không cần
thiết. Các kỹ thuật khác thường đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ
(dummy variable) và loại bỏ các giá trị rỗng.
• Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá
trị là tên thể loại. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ
gồm một loại biến. Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên,
trong khi mạng nơ-ron chỉ có thể dùng cho các biến có giá trị bằng số.
• Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình
huống cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng
logic Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho
kết quả quá phức tạp để có thể hiểu được.
• Có thể thẩm định một mô hình bằng các kiểm tra thống kê. Điều này làm
cho ta có thể tin tưởng vào mô hình.
• Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian
ngắn. Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời
gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của

cây quyết định.
2.5 Các thuật toán xây dựng 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. Đâ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).
Những bài toán nên sử dụng việc học cây quyết định:
− 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
− 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.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
9
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
− 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.
Danh sách các thuật toán xây dựng cây quyết định
Algorithms References
CLS(Concept learning System) C. I. Hovland và E. B. Hunt
CART(Classification And Regression
Tree)

Breiman et al.(1984)
ID3(Interactive Dichotomizer 3) Quinlan(1986)
C4.5 Quinlan(1993)
CHAID (CHi-squared Automatic
Interaction Detecor)
Kass(1980)
QUEST LohandShih(1997)
CAL5 Muller and Wysotzki(1994)
FACT Loh and Vanichsetakul(1988)
LMDT Brodley and Utgoff(1995)
T1 Holte(1993)
PUBLIC Rastogi and Shim(2000)
MARS Friedman(1991)
SLIQ (Supervised Learning in Quest) Mehta(1996)
SPRINT(A Scalable Parallel Classifier for
DataMining)
Shafer, Agrawal, Mehta
Nhưng phổ biến nhất vẫn là 2 thuật toán của Quinlan: ID3 (Interactive Dichotomizer
3 ) năm 1986 và C4.5 là thuật toán cải tiến từ thuật toán ID3 năm 1993.
Sau đây ta sẽ tìm hiểu về 2 thuật toán trên:
2.5.1 Thuật toán xây dựng cây quyết định ID3
2.5.1.1 Giới thiệu:
Đâ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.
ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định (decision tree).
Biểu diễn này 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 đó.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
10

Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Như vậy, nhiệm vụ của giải thuật 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). Hay
nói khác hơn, giải thuật có:
• Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao 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 có khả năng phân loại đúng đắn các ví dụ trong
tập dữ liệu rèn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong
tương lai.
2.5.1.2 Thuật toán ID3
* ID3 xây dựng cây quyết định theo giải thuật 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 lớp đó
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ùngV các ví dụ trong tập_ví_dụ có giá trị V tại thuộc
tính P;
Gọi induce_tree(phân_vùngV, tập_thuộc_tính), gắn kết quả 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 QĐ, phân vùng của một nhánh mới có thể có các
dạng sau:
Báo cáo thu hoạch CNTT & Ứng dụng Trang
11
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
• Có các ví dụ thuộc các lớp khác nhau, chẳng hạn 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, chẳng hạn như toàn âm hoặc
toàn dương.
• Không còn 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ề).
Từ các nhận xét này, ta thấy rằng để có một cây QĐ đơn giản, hay một cây có
chiều cao là thấp, ta nên chọn một thuộc tính sao cho tạo ra càng nhiều các phân vùng
chỉ chứa các ví dụ thuộc cùng một lớp càng tốt. Một phân vùng chỉ có ví dụ thuộc
cùng một lớp, ta nói phân vùng đó có tính thuần nhất. Vậy, để chọn thuộc tính kiểm
tra có thể giảm thiểu chiều sâu của cây QĐ, ta cần một phép đo để đo tính thuần nhất
của các phân vùng, và chọn thuộc tính kiểm tra tạo ra càng nhiều phân vùng thuần
nhất càng tố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 đo tính thuần nhất của tập ví dụ
Entropy 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.
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 giá 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:
Báo cáo thu hoạch CNTT & Ứng dụng Trang
12
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
• 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 bố các ví dụ dương trong tập S.
• p
-
là phân bố 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) =

=

C
i
ii
pp
1
2
log
Information Gain
Information gain chính là độ sai lệch giữa trị thông tin Entropy(S) ban đầu
(trước phân hoạch) và trị thông tin mới Entropy
A
(S) (sau phân hoạch với thuộc tính
A) àphản ánh độ hiệu quả của 1 thuộc tính phân lớp.
Một cách chính xác hơn, Gain(S,A) của thuộc tính A, trên tập S, được định nghĩa như
sau:
)(
||
||
)(),(
)(

v
AValuesv
v
SEntropy
S
S
SEntropyASGain


−=
Trong đó :
 Value(A) là tập các giá trị của A
 S
v
là tập con của S với giá trị A
Thuộc tính tương ứng với information gain lớn nhất sẽ được chọn làm thuộc tính
phân tách cho node N
Ví dụ, chúng ta hãy xét bài toán phân loại xem ta ‘có đi chơi tennis’ ứng bảng huấn
luyện sau:
Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis
Nắng Nóng Cao Nhẹ Không
Nắng Nóng Cao Mạnh Không
Âm u Nóng Cao Nhẹ Có
Mưa Ấm áp Cao Nhẹ Có
Mưa Mát TB Nhẹ Có
Mưa Mát TB Mạnh Không
Âm u Mát TB Mạnh Có
Nắng Ấm áp Cao Nhẹ Không
Nắng Mát TB Nhẹ Có
Mưa Ấm áp TB Nhẹ Có

Báo cáo thu hoạch CNTT & Ứng dụng Trang
13
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Nắng Ấm áp TB Mạnh Có
Âm u Ấm áp Cao Mạnh Có
Âm u Nóng TB Nhẹ Có
Mưa Ấm áp Cao Mạnh Không
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
Gain(S, Quang cảnh) = Entropy(S) – (5/14)Entropy(S
Nắng
) – (4/14)Entropy(S
Âm u
) –
(5/14) Entropy(S
Mưa
) = 0.940 – (5/14)(5/14)(- (2/5)log
2
(2/5) – (3/5)log
2
(3/5)) - (4/14)
(0) - (5/14)(- (3/5)log

2
(3/5) – (2/5)log
2
(2/5)) = 0.246
Gain(S, Nhiệt độ) = Entropy(S) - (4/14)×Entropy(S
Nóng
) - (6/14)×Entropy(S
Ấm áp
) –
(4/14)×Entropy(S
Mát
)
= 0.940 – (4/14)(1) - (6/14)(- (4/6)log
2
(4/6) – (2/6)log
2
(2/6)) -
(4/14)(- (3/4)log
2
(3/4) – (1/4)log
2
(1/4)) = 0.029
Tương tự ta cũng tính được :
Gain(S, Gió) = Entropy(S) - (6/14)×Entroy(S
Mạnh
) - (8/14)×Entropy(S
Nhẹ
)
Báo cáo thu hoạch CNTT & Ứng dụng Trang
Quang cảnh

Nắng
Âm u Mưa
[2+, 3-] [4+, 0-] [3+, 2-]
Nhiệt độ
Nóng
Ấm áp Mát
[2+, 2-] [4+, 2-] [3+, 1-]
14
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
= 0.940 - (6/14)(1) - (8/14)(- (6/8)log
2
(6/8) – (2/8)log
2
(2/8))
= 0.048
Gain(S, Độ ẩm) = Entropy(S) – (7/14)×Entropy(S
Cao
) – (7/14)×Entropy(S
TB
)
= 0.940 – (7/14)(- (3/7)log
2
(3/7) – (4/7)log
2
(4/7)) –
(7/14)(- (6/7)log
2
(6/7) – (1/7)log
2
(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 lại xét nhánh Nắng
Entropy(S
Nắng
) = - (3/5)log
2
(3/5) – (2/5)log
2
(2/5) = 0.971
Gain(S
Nắng
, Nhiệt độ) = Entropy(S
Nắng
) - (2/5)×Entropy(S
Nóng
) - (2/5)×Entropy(S
Ấm áp
) –
(1/5)×Entropy(S
Mát
)
= 0.971 – (2/5)×0 - (2/5)×1 - (1/5)×0 = 0.571
Gain(S
Nắng
, Gió) = Entroy(S
Nắng
) - (2/5)×Entropy(S
Nhẹ
) - (3/5)×Entropy(S
Mạnh

)
= 0.971 - (2/5)×1 - (3/5)(- (1/3)log
2
(1/3) – (2/3)log
2
(2/3))
= 0.020
Gain(S
Nắng
, Độ ẩm) = Entropy(S
Nắng
) – (3/5)×Entropy(S
Cao
) – (2/5)×Entropy(S
TB
)
= 0.971 – (3/5)(0) – (2/5)(0)
= 0.971
Như vậy thuộc tính độ ẩm có hiệu suất phân loại cao nhất trong nhánh Nắng à ta
chọn thuộc tính Độ ẩm làm nút kế tiếp.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
Quang cảnh
Nắng Âm u Mưa
Có - Không Có Có - Không
15
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
 Xét nhánh “Mưa”:
Entropy(S
Mưa
) = - (3/5)log

2
(3/5) – (2/5)log
2
(2/5) = 0.971
Gain(S
Mưa
, Nhiệt độ) = Entropy(S
Mưa
) - (3/5)×Entropy(S
Ấm áp
) - (2/5)×Entropy(S
Mát
)
= 0.971 - (3/5)(- (2/3)log
2
(2/3) – (1/3)log
2
(1/3)) - (2/5)(1)
= 0.020
Gain(S
Mưa
, Gió) = Entropy(S
Mưa
) - (3/5)×Entropy(S
Nhẹ
) - (2/5)×Entropy(S
Mạnh
)
= 0.971 - (3/5)×0 - (2/5)×0 = 0.971
Như vậy thuộc tính gió có hiệu suất phân loại cao nhất trong nhánh Mưa à ta

chọn thuộc tính Gió làm nút kế tiếp.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
TB
Không

Nhiệt
độ
Mát
Mưa
Quang cảnh
[0+,
0-]
[2+,
1-]
[1+,
1-]
Ấm
áp
Nóng
Quang cảnh
Nắng Âm u Mưa

Độ ẩm
Cao
16
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Từ đây các ví dụ trong mẫu đã được phân ra rõ ràng nên ta có thể dễ dàng suy rac
các luật.
 Luật rút ra từ cây quyết định:
 Luật 1: if (Quang cảnh = Nắng) and (Độ ẩm = cao) then Chơi tennis = Không

 Luật 2: if (Quang cảnh = Nắng) and (Độ ẩm = Trung bình) then Chơi tennis=

 Luật 3: if (Quang cảnh = Âm u) then Chơi tennis = Có
 Luật 4: if (Quang cảnh = Mưa) and (Gió = Nhẹ) then Chơi tennis = Có
 Luật 5: if (Quang cảnh = Mưa) and (Gió = Mạnh) then Chơi tennis = Không
Nhận xét về giải thuật ID3
Không gian giả thuyết các cây quyết định của ID3 là một không gian đầy đủ các
cây quyết định trên các thuộc tính đã cho trong tập rèn luyện. Điều này có nghĩa là
không gian mà ID3 tìm kiếm chắc chắn có chứa cây quyết định cần tìm.
Trong khi tìm kiếm, ID3 chỉ duy trì một giả thuyết hiện tại. Vì vậy, giải thuật
này không có khả năng biểu diễn được tất cả các cây quyết định khác nhau có khả
năng phân loại đúng dữ liệu hiện có.
Giải thuật thuần ID3 không có khả năng quay lui trong khi tìm kiếm. Vì vậy, nó
có thể gặp phải những hạn chế giống như giải thuật leo núi, đó là hội tụ về cực tiểu
địa phương.
Vì ID3 sử dụng tất cả các ví dụ ở mỗi bước để đưa ra các quyết định dựa trên
thống kê, nên kết quả tìm kiếm của ID3 rất ít bị ảnh hưởng bởi một vài dữ liệu sai
(hay dữ liệu nhiễu).
Báo cáo thu hoạch CNTT & Ứng dụng Trang
TB
Không

Gió
Nhẹ Mạnh

Không
Quang cảnh
Nắng Âm u Mưa

Độ ẩm

Cao
17
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Trong quá trình tìm kiếm, giải thuật ID3 có xu hướng chọn cây quyết định ngắn
hơn là những cây quyết định dài. Đây là tính chất thiên lệch quy nạp của ID3.
Các vấn đề tồn tại trong ID3
 Cây quyết định học được quá khớp (overfitting) với các dữ liệu học.
 Xử lý các thuộc tính có kiểu giá trị liên tục (kiểu số thực).
 Các đánh giá phù hợp hơn (tốt hơn Information Gain) đối với việc xác định
thuộc tính kiểm tra cho một nút.
 Xử lý các bộ học thiếu giá thuộc tính (missing-value attributes).
 Xử lý các thuộc tính có chi phí (cost) khác nhau .
2.5.2 Thuật toán xây dựng cây quyết định C4.5
- C4.5 là thuật toán phát triển từ ID3 để giải quyết những vấn đề tồn tại ở giải
thuật ID3:
+ Trong việc xây dựng cây quyết định, chúng có thể liên hệ với tập
huấn luyện 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 xây dựng cây quyết định, giải thuật C4.5 có thể giải quyết
tốt đối với trường hợp giá trị của các thuộc tính là giá trị thực.
+ Trong việc xây dựng cây quyết đinh, C4.5 có thể giải quyết tốt đối
với trường hợp thuộc tính có nhiều giá trị mà mỗi giá trị này lại duy nhất.
- Tuy nhiên C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, nên
C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ
2.5.2.1 Thuật toán xây dựng cây quyết định:
Dữ liệu vào: Tập dữ liệu D, tập danh sách thuộc tính, tập nhãn lớp
Dữ liệu ra: Mô hình cây quyết định
Thuật toán: Tạocây(Tập dữ liệu E, tập danh sách thuộc tính F, tập nhãn lớp)

1 Nếu điều_kiện_dừng(E,F) = đúng
2 nútlá = CreateNode()
3 nútlá.nhãnlớp=Phânlớp(E)
4 return nútlá
5 Ngược lại
6 Nútgốc = CreateNode()
7 Nútgốc.điềukiệnkiểmtra = tìm_điểm_chia_tốt_nhất(E, F)
8 Đặt F = F \ {Nút chọn phân chia}
9 Đặt V = {v| v thoả điều kiện là phần phân chia xuất phát từ Nútgốc}
10 Lặp qua từng tập phân chia v

V
11 Đặt Ev = {e | Nútgốc.điềukiệnkiểmtra(e) = v và e

E}
12 Nútcon = Tạocây(Ev, F, tập nhãn lớp)
Báo cáo thu hoạch CNTT & Ứng dụng Trang
18
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
13 Dừng lặp
14 End if
15 Trả về nútgốc.
Hàm chính
Gọi hàm Tạocây (E, tập danh sách thuộc tính của E, tập nhãn lớp).
Giải thích thuật toán: Đây là một thuật toán kiểu đệ qui tạo cây quyết định.
+ Tại hàm chính, gọi hàm đệ qui Tạocây() với ba tham số vào là tập dữ liệu E,
tập danh sách thuộc tính của E và tập nhãn. Thuật toán làm việc bằng cách đệ qui
chọn giá trị thuộc tính tốt nhất để chia, lưu ý là chọn giá trị của thuộc tính sao cho
điều kiện chia tốt nhất (bước 7), tiếp tục tiến hành mở rộng nút con bằng cách gọi đệ
qui cho đến khi điều kiện dừng (ở bước 1) được thỏa mãn. Dưới đây là phần giải thích

chi tiết thuật toán:
+ Dòng đầu tiên sẽ kiểm tra điều kiện dừng, nếu được thỏa mãn nghĩa là đã đệ
qui để tạo ra được đến nút lá. Điều kiện dừng chỉ xảy ra khi:
 Tất cả các dòng trong tập dữ liệu E thuộc về cùng một lớp duy nhất
(1).
  Không có bất cứ dòng nào trong tập E, điều này có thể xảy ra khi tập
con được tạo ở bước phân chia các tập con là rỗng (2).
Trong trường hợp (1) chỉ việc tiến hành tạo nút lá bằng hàm createNode() và
tiến hành gán nhãn cho nút lá này bằng cách gán nhãn duy nhất cho thuộc tính nhãn
của nút vừa được tạo này.
Trường hợp (2) sẽ trả về nút lá bằng rỗng và tiến hành gán nhãn cho nút cha là
nhãn lớp xuất hiện nhiều nhất như sau:
Nhãn lớp = max (tổng của từng giá trị nhãn lớp riêng biệt trong E).
Hàm Phânlớp(E) thực hiện việc xác định nhãn cho một tập dữ liệu E, nó tự động xác
định và trả về đúng giá trị nhãn cho cả hai trường hợp trên.
+ Dòng 3 và 4 xảy ra khi chỉ còn một thuộc tính trong nút cha (lưu ý nút cha là
nút sau khi đã phân chia tạo ra tập dữ liệu D này). Nếu sau khi phân chia trên nút cha
mà tập D không còn chứa thuộc tính để phân chia, trả về nút lá là giá trị nhãn xuất
hiện nhiều nhất trong D.
+ Xét dòng 5, nếu thuật toán chưa thỏa mãn điều kiện để dừng, tiếp tục xét
bằng cách tìm kiếm điểm chia tốt nhất. Để tìm điểm chia tốt nhất cần sử dụng một
hàm đánh giá, kết quả của hàm này sẽ trả về thuộc tính được chọn tương ứng. Về các
tiêu chuẩn đánh giá cũng như chọn điểm chia sẽ được giải thích rõ hơn trong các phần
bên dưới.
+ Xét dòng 7 và 8, sau khi đã chọn được điểm chia tốt nhất, tiến hành phân
chia tập D thành các tập con Di, cập nhật lại danh sách các thuộc tính.
+ Dòng 9 và 10: lặp qua danh sách các tập con D
i
và tiến hành gọi đệ qui hàm
Tạocây() với tham số mới tương ứng.

Báo cáo thu hoạch CNTT & Ứng dụng Trang
19
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
2.5.2.2 Độ đo sử dụng để xác định điểm chia tốt nhất:
 Entropy: Đại lượng đo tính đồng nhất hay tính thuần nhất của các mẫu.
i
c
i
i
ppSEntropy
2
1
log)(

=
−=
Trong đó:
 S là tập dữ liệu huấn luyện.
 C
i
là một nhãn lớp bất kỳ trong tập dữ liệu S.
 P
i
là xác suất của một bộ bất kỳ trên S thuộc về nhãn C
i
.
Giả sử phân chia các bộ trong S trên một thuộc tính A bất kỳ, để không mất
tính tổng quát có thể xem như A có các giá trị phân biệt {a
1
, a

2
, …, a
v
}. Nếu thuộc
tính A được sử dụng để chia thành v tập con, những tập con này sẽ tương ứng với các
nhánh con của nút hiện tại, độ đo thông tin có được sau khi phân lớp theo v tập con
trên sẽ được tính như sau:

=
×=
v
j
j
j
A
SEntropy
S
S
SEntropy
1
)()(
Trong đó:
j
S
là tổng số bộ dữ liệu được phân chia vào tập con thứ j.
 Information gain: độ đo xác định ảnh hưởng của một thuộc tính trong mẫu đó
trong việc phân lớp gọi là độ lợi thông tin.
Độ lợi thông tin dựa trên phân nhánh bằng thuộc tính A:
)()(),( SEntropySEntropyASGain
A

−=
 SplitInformation: Thông tin tiềm ẩn được tạo ra bằng cách chia tập dữ liệu
trong một số tập con nào đó.
Splitinfomation(S,A) = -

=
c
i
ii
S
S
S
S
1
2
log
Trong đó S
i
là tập con của S chứa các ví dụ có thuộc tính A mang giá trị V
i
. Để ý
rằng Splitinfomation thực sự chính là Entropy của S với sự liên quan trên những giá
trị của thuộc tính A.
 GainRatio: Sự đánh giá thay đổi các giá trị của thuộc tính.

Gain(S,A)
GainRation(S,A) =


SplitInformation(S,A)

Tất cả các thuộc tính sẽ được tính toán độ đo tỷ lệ Gain, thuộc tính nào có độ
đo tỷ lệ Gain lớn nhất sẽ được chọn làm thuộc tính phân chia.
2.5.2.3 Một số vấn đề với thuộc tính:
 Thuộc tính liên tục:
Báo cáo thu hoạch CNTT & Ứng dụng Trang
20
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Thuật toán ID3 bị giới hạn bởi việc liên quan đến tập những giá trị rời rạc.
Trong thuật toán C4.5 chúng ta sẽ mở rộng phạm vi hoạt 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.
Thuật toán C4.5 đưa ra đị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 theo các quy tắc sau:
- Dựa trên một giá trị nếu muốn phân chia nhị phân.
- Dựa trên vài giá trị nếu muốn có nhiều nhánh.
- Với mỗi giá trị tính các mẫu thuộc một lớp theo dạng A < v và A > v.
- Cách chọn giá trị v hiệu quả:
+ Sắp xếp các giá trị tăng dần.
+ Chọn giá trị trung bình của từng cặp giá trị của thuộc tính để phân chia và
tính chỉ số gain.
+ Chọn giá trị phân chia có chỉ số gain cao nhất
Ví dụ:
Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis
Nắng Nóng 85 Nhẹ Không
Nắng Nóng 90 Mạnh Không
Âm u Nóng 78 Nhẹ Có
Mưa Ấm áp 96 Nhẹ Có
Mưa Mát 80 Nhẹ Có
Mưa Mát 70 Mạnh Không
Âm u Mát 65 Mạnh Có
Nắng Ấm áp 95 Nhẹ Không

Nắng Mát 70 Nhẹ Có
Mưa Ấm áp 80 Nhẹ Có
Nắng Ấm áp 70 Mạnh Có
Báo cáo thu hoạch CNTT & Ứng dụng Trang
21
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
Âm u Ấm áp 90 Mạnh Có
Âm u Nóng 75 Nhẹ Có
Mưa Ấm áp 80 Mạnh Không
Ta có:
Entropy(S
Độ ẩm
) = - (9/14)log
2
(9/14) – (5/14)log
2
(5/14) = 0.940
Entropy
Độ ẩm =67.5
(S
Độ ẩm
) = (1/14)×Entropy(S
Độ ẩm≤67.5
) + (13/14)×Entropy(S
Độ ẩm>67.5
)
= (1/14)(0) + (13/14)(-8/13log
2
(8/13) – 5/13log
2

(5/13))
= 0.893
Gain(S
Độ ẩm
, Độ ẩm=67.5) = 0.940 – 0.893 = 0.047
Tính tương tự cho các giá trị còn lại ta có bảng sau:
Độ ẩm
65 70 75 78 80 85 90 95 96
67.5 72.5 76.5 79 82.5 87.5 92.5 95.5
≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ >
Có 1 8 3 6 4 5 5 4 7 2 3 2 8 1 8 1
Khôn
g
0 5 1 4 1 4 1 4 2 3 7 2 4 1 5 0
Gain 0.047 0.646 0.04
5
0.090 0.10
2
0.02
5
0.01
0
0.047
Như vậy ta có giá trị để phân chia là 72.5
 Thuộc tính nhiều giá trị:
Thuộc tính ID3 bị giới hạn bởi việc liên quan đến những thuộc tính có nhiều
giá trị, mà các giá trị này lại duy nhất. Khi đó, việc chia một tập dữ liệu thành thành
quá nhiều các tập con dẫn đến số lượng các lớp tại mỗi nút giảm và do đó Entropy
trên thuộc tính đó cũng giảm theo, nên sự thu thập thông tin (Gain) sẽ cao hơn các
thuộc tính khác. Vì vậy thuộc tính này sẽ được lựa chọn thường xuyên để tách, dẫn

đến độ phân nhánh lớn, cây sẽ rất lớn và phức tạp.
Ví dụ: Ta thêm thuộc tính “Ngày” vào bảng dữ liệu thời tiết về chơi tennis.
Ngày
Quang cảnh Nhiệt độ Độ ẩm Gió
Chơi
tennis
D1
Nắng Nóng 85 Nhẹ Không
D2
Nắng Nóng 90 Mạnh Không
D3
Âm u Nóng 78 Nhẹ Có
D4
Mưa Ấm áp 96 Nhẹ Có
D5
Mưa Mát 80 Nhẹ Có
Báo cáo thu hoạch CNTT & Ứng dụng Trang
22
Chuyên đề: Học Bằng Phương Pháp Xây Dựng Cây Định Danh
D6
Mưa Mát 70 Mạnh Không
D7
Âm u Mát 65 Mạnh Có
D8
Nắng Ấm áp 95 Nhẹ Không
D9
Nắng Mát 70 Nhẹ Có
D10
Mưa Ấm áp 80 Nhẹ Có
D11

Nắng Ấm áp 70 Mạnh Có
D12
Âm u Ấm áp 90 Mạnh Có
D13
Âm u Nóng 75 Nhẹ Có
D14
Mưa Ấm áp 80 Mạnh Không
Entropy
Ngày
(S) =
×
14
1
Entropy(S
D1
) +
×
14
1
Entropy(S
D2
) + … +
×
14
1
Entropy(S
D14
)
Entropy(S
D1

) = Entropy(S
D2
) = … = Entropy(S
D14
) = 0
→ Entropy
Ngày
(S) = 0
Gain(S, Ngày) = Entropy(S) - Entropy
Ngày
(S) = 0.940
Lúc này, thuộc tính ngày có độ đo thông tin cao nhất so với các thuộc tính
khác trong tập dữ liệu. Nó sẽ được chọn làm thuộc tính phân tách.
Kết quả phép tách trên thuộc tính “Ngày”
Tuy thuộc tính “Ngày” có nhiều nhất những giá trị trong việc phân chia tập dữ
liệu huấn luyện thành những tập nhỏ. Cũng chính vì điều này nó sẽ có thu thập thông
tin rất cao liên quan đến tập dữ liệu huấn luyện. Tuy nhiên nó lại là một công cụ tiên
đoán không tốt của hàm mục tiêu trên những trường hợp vô hình.
Vì vậy để giải quyế vấn đề này ta phải lựa chọn thuộc tính phân tách theo
nguyên tắc:
- Tỉ lệ tăng thêm thông tin (GainRatio) cao.
Báo cáo thu hoạch CNTT & Ứng dụng Trang
Ngày
Không Không Có Không
D1
D2 D3 D14
23

×