Tải bản đầy đủ (.pdf) (79 trang)

Tìm hiểu các thuật toán MMC và MMDT trên bảng quyết định đa trị

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 (1.44 MB, 79 trang )

B GIO DC V O TO
I HC HU
TRNG I HC KHOA HC

HUNH TH HNG NHN

Tìm hiểu các thuật toán MMC và MMDT
trên bảng quyết định đa trị

CHUYấN NGNH: KHOA HC MY TNH
M S: 60.48.01.01

LUN VN THC S KHOA HC MY TNH

Hu, 2015


MỤC LỤC
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các bảng
Danh mục các hình
MỞ ĐẦU ................................................................................................................... 1
Chương 1. PHÂN LỚP DỮ LIỆU DỰA TRÊN CÂY QUYẾT ĐỊNH ................ 4
1.1 Tổng quan về phân lớp dữ liệu ............................................................................. 4
1.2 Cây quyết định ...................................................................................................... 9
1.3 Một số thuật toán xây dựng cây quyết định đơn trị ............................................ 14
1.4 Tiểu kết chương 1 ............................................................................................... 20
Chương 2. THUẬT TOÁN MMC VÀ MMDT .................................................... 21
2.1 Tổng quan về bảng quyết định đa trị .................................................................. 21


2.1.1. Định nghĩa dữ liệu đa trị ................................................................................. 21
2.1.2 Cây quyết định đa trị ....................................................................................... 22
2.1.3 Phân lớp với dữ liệu đa trị ............................................................................... 24
2.1.4 Một số ký hiệu sử dụng trong MMC và MMDT ............................................. 24
2.2 Thuật toán MMC (Multi-valued and Multi-labeled Classifier).......................... 26
2.2.1 Trọng số tương tự giữa các nhãn ..................................................................... 26
2.2.2 Một số tính chất của trọng số tương tự ............................................................ 27
2.2.3 Thuật toán MMC ............................................................................................. 28
2.2.4 Xác định nút trong và các nhánh (Giải quyết bước 4 đến bước 6) .................. 30
2.2.5 Xác định nút lá (bước 10) ................................................................................ 34
2.3 Thuật toán MMDT (Multi-valued and Multi-labeled Decision Tree)................ 36
2.3.1 Độ tương tự nhãn (Label similarity) ................................................................ 36
2.3.2 Tỷ lệ nhãn (Label Ratio).................................................................................. 37
2.3.3 Thuật toán MMDT .......................................................................................... 40
2.3.4 Hàm next_attribute của MMDT ...................................................................... 41
2.3.5 Hàm weighted-labelRatio ................................................................................ 42


2.4 Tiểu kết chương 2 ............................................................................................... 45
Chương 3. CÀI ĐẶT VÀ MÔ PHỎNG ỨNG DỤNG ......................................... 46
3.1 Giới thiệu ............................................................................................................ 46
3.2 Bài toán hỗ trợ mua máy tính ............................................................................. 46
3.2.1 Phát biểu .......................................................................................................... 46
3.2.2 Cài đặt .............................................................................................................. 48
3.3 Bài toán hỗ trợ chọn Tour du lịch....................................................................... 53
3.3.1 Phát biểu .......................................................................................................... 53
3.3.2 Cài đặt .............................................................................................................. 55
3.4 Tiểu kết chương 3 ............................................................................................... 59
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................ 60
TÀI LIỆU THAM KHẢO...................................................................................... 61



DANH MỤC CÁC TỪ VIẾT TẮT

MMC

Multi-valued and Multi-labeled Classifier

MMDT

Multi-valued and Multi-labeled Decision Tree


DANH MỤC CÁC BẢNG
Số hiệu

Tên bảng

bảng

Trang

1.1

Mã giả của thuật toán phân lớp dữ liệu dựa trên cây quyết định

14

2.1


Tập dữ liệu huấn luyện đa trị

21

2.2

Một số luật từ cây quyết định trong Hình 1

23

2.3

Bảng tương tự giữa hai tập nhãn bất kỳ.

27

2.4

Thuật toán MMC

29

2.5

Hàm phân chia khoảng cho thuộc tính số

30

2.6


Hàm chọn thuộc tính để phân nhánh

32

2.7

Bảng tương tự dựa trên sự xuất hiện của A, B, C

37

2.8

Bảng tham chiếu dựa trên sự xuất hiện của tập nhãn A, B, C

39

2.9

Thuật toán MMDT

40

2.10

Hàm chọn thuộc tính tốt nhất của thuật toán MMDT

42

3.1


Dữ liệu khách hàng mua máy tính

47

3.2

Dữ liệu khách hàng đi du lịch

54


DANH MỤC CÁC HÌNH
Số hiệu

Tên hình vẽ

Trang

hình vẽ
1.1

Quá trình phân lớp dữ liệu–(a) Bước xây dựng mô hình phân lớp

5

1.2

Quá trình phân lớp dữ liệu–(b1)Ước lượng độ chính xác của mô

6


hình
1.3

Quá trình phân lớp dữ liệu – (b2) Phân lớp dữ liệu mới

6

1.4

Ước lượng độ chính xác của mô hình phân lớp với pp holdout

9

1.5

Ví dụ về cây quyết định

10

1.6

Sơ đồ xây dựng cây quyết định theo phương pháp đồng bộ

17

1.7

Sơ đồ xây dựng cây quyết định theo phương pháp phân hoạch


19

1.8

Sơ đồ xây dựng cây quyết định theo phương pháp lai

20

2.1

Cây quyết định đa trị

22

3.1

Dữ liệu chọn mua máy tính

48

3.2

Độ tương tự của MMC

49

3.3

Tỉ lệ độ tương tự của MMDT


50

3.4

Cây quyết định hỗ trợ mua máy tính

51

3.5

Các luật hỗ trợ mua máy tính

52

3.6

Dự đoán một dữ liệu mới

52

3.7

Dữ liệu chọn tour du lịch

55

3.8

Độ tương tự của MMC


56

3.9

Tỉ lệ độ tương tự của MMDT

57

3.10

Cây quyết định hỗ trợ chọn tour du lịch

58

3.11

Các luật hỗ trợ chọn tour du lịch

58

3.12

Dự đoán dữ liệu mới

29


1

MỞ ĐẦU

Trong nhiều năm qua, cùng với sự phát triển của công nghệ thông tin và ứng
dụng của công nghệ thông tin trong nhiều lĩnh vực của đời sống xã hội, thì lượng dữ
liệu được các cơ quan thu thập và lưu trữ ngày một nhiều lên. Người ta lưu trữ những
dữ liệu này vì cho rằng nó ẩn chứa những giá trị nhất định nào đó. Tuy nhiên theo
thống kê thì chỉ có một lượng nhỏ của những dữ liệu này (khoảng từ 5% đến 10%) là
luôn được phân tích, số còn lại họ không biết sẽ phải làm gì và có thể làm gì với những
dữ liệu này, nhưng họ vẫn tiếp tục thu thập và lưu trữ vì hi vọng những dữ liệu này sẽ
cung cấp cho họ những thông tin quý giá một cách nhanh chóng để đưa ra những quyết
định kịp thời vào một lúc nào đó. Chính vì vậy, các phương pháp quản trị và khai thác
cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã làm phát triển
một khuynh hướng kỹ thuật mới đó là kỹ thuật phát hiện tri thức và khai phá dữ liệu.
Một trong những công cụ khai phá tri thức hiệu quả hiện nay là sử dụng cây
quyết định để tìm ra các luật phân lớp.
Thông thường phân loại cây quyết định được sử dụng để phân loại dữ liệu có
thuộc tính đơn trị. Tuy nhiên, trong thực tế có rất nhiều vấn đề phân lớp cần phải giải
quyết với các dữ liệu đa giá trị.
Dữ liệu đa giá trị có nghĩa là một bản ghi có thể có nhiều giá trị cho một thuộc
tính chứ không phải là giá trị duy nhất.
Ví dụ, nếu chúng ta có một dữ liệu du lịch bao gồm giới tính là nữ và thu nhập
$750, theo phương pháp phân loại truyền thống thì chỉ dự đoán cô ấy có thể tham gia
tour du lịch C1, nhưng phân lớp mới có thể dự đoán cô ấy có khả năng tham gia tour
du lịch C1, C2 hoặc C3.
Hầu hết các phân loại không có khả năng xử lý dữ liệu với thuộc tính đa trị. Vì
vậy, đó là lý do tôi chọn đề tài luận văn là: “Tìm hiểu các thuật toán MMC và
MMDT trên bảng quyết định đa trị” để xây dựng cây quyết định cho dữ liệu đa trị.
MMC (Multi-valued and Multi-labeled Classifier) và MMDT (Multi-valued and
Multi-labeled Decision Tree) khác với phân loại cây quyết định truyền thống trong


một số chức năng chính bao gồm phát triển một cây quyết định, lựa chọn thuộc tính,

gán nhãn cho một nút lá và thực hiện dự đoán cho một dữ liệu mới. MMC chủ yếu dựa
trên độ đo giống nhau giữa nhiều nhãn; MMDT chủ yếu dựa trên cả độ đo giống nhau
và tỉ lệ đo giống nhau giữa nhiều nhãn.
Những năm gần đây việc xây dựng cây quyết định cho bảng dữ liệu đa trị được
nhiều nhà khoa học quan tâm nghiên cứu. Nhiều nhà khoa học trên thế giới đã nghiên
cứu ra các thuật toán để giải quyết vấn đề dữ liệu đa trị; chẳng hạn như: Ba nhà khoa
học là Yen-Liang Chen, Chang-Ling Hsu, Shih-Chieh Chou đã nghiên cứu thuật toán
MMC [1], hai nhà khoa học là Shihchieh Chou, Chang-Ling Hsu đã nghiên cứu thuật
toán MMDT [2] nhằm cải thiện thuật toán MMC và một nhóm nhà khoa học gồm
(Hong Li, Rui Zhao, Jianer Chen and Yao Xiang) nghiên cứu thuật toán SSC
(Similarity of Same and Consistent) [3], ngoài ra còn có các thuật toán ADMT [4],
SSC_SP1, SSC_SP2,…
Đề tài nghiên cứu của luận văn nhằm góp phần giải quyết thuộc tính đa trị và
thuộc tính số. Mục đích nghiên cứu của luận văn nhằm tìm hiểu những vấn đề sau:


Tìm hiểu bảng quyết định đa trị.



Tìm hiểu hai thuật toán MMC và MMDT.



Cài đặt hai thuật toán.
Để hoàn thành luận văn này, tác giả phải phân tích và tổng hợp tài liệu từ các bài

báo khoa học trong và ngoài nước; Nghiên cứu lý thuyết, phân tích, khái quát, từ đó
rút ra những vấn đề cần giải quyết của đề tài luận văn.
Cấu trúc luận văn bao gồm phần mở đầu, ba chương nội dung chính, phần kết

luận và tài liệu tham khảo.
Chương 1. Tổng quan về phân lớp dữ liệu dựa trên cây quyết định. Trong
chương này, trình bày tổng quan về phân lớp dữ liệu, ứng dụng phân lớp dữ liệu dựa
trên cây quyết định, mô tả thuật toán xây dựng cây quyết định đơn trị dựa vào phương
pháp Hunt làm tư tưởng chủ đạo.
Chương 2. Thuật toán MMC và MMDT. Trong chương này, trình bày tổng quan
về bảng dữ liệu đa trị, cây quyết định đa trị, cách dự đoán một dữ liệu đa trị mới, các


luật được tạo ra từ cây quyết định đa trị.
Chương 3. Chương trình cài đặt. Trong chương này, tác giả cài đặt được hàm
chọn thuộc tính tốt nhất để phân nhánh là hàm weighted-similarity của MMC và hàm
similarity-ratio của MMDT.
Phần kết luận nêu những kết quả đã đạt được và hướng phát triển của đề tài.
Vì thời gian có hạn và bản thân bước đầu tìm hiểu về lĩnh vực này nên không thể
tránh khỏi những sai sót, kính mong sự giúp đỡ và góp ý của quý thầy cô và các bạn.


Chương 1
PHÂN LỚP DỮ LIỆU DỰA TRÊN CÂY QUYẾT ĐỊNH
1.1. Tổng quan về phân lớp dữ liệu
1.1.1. Phân lớp dữ liệu
Ngày nay phân lớp dữ liệu là một trong những hướng nghiên cứu chính của khai
phá dữ liệu.
Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin ẩn con người
có thể trích rút ra các quyết định nghiệp vụ thông minh. Phân lớp và dự đoán là hai
dạng của phân tích dữ liệu nhằm trích rút ra một mô hình mô tả các lớp dữ liệu quan
trọng hay dự đoán xu hướng dữ liệu tương lai. Phân lớp dự đoán giá trị của những
nhãn xác định hay những giá trị rời rạc, có nghĩa là phân lớp thao tác với những đối
tượng dữ liệu mà có bộ giá trị là biết trước. Trong khi đó, dự đoán lại xây dựng mô

hình với các hàm nhận giá trị liên tục. Ví dụ mô hình phân lớp dự báo thời tiết có thể
cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thông số về độ ẩm, sức
gió, nhiệt độ,… của ngày hôm nay và các ngày trước đó. Hay nhờ các luật về xu
hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh doanh có thể ra
những quyết sách đúng đắn về lượng mặt hàng cũng như chủng loại bày bán… Một
mô hình dự đoán có thể dự đoán được lượng tiền tiêu dùng của các khách hàng tiềm
năng dựa trên những thông tin về thu nhập và nghề nghiệp của khách hàng. Trong
những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trong
nhiều lĩnh vực khác nhau như học máy, hệ chuyên gia, thống kê ... Công nghệ này
cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, nhà băng, maketing,
nghiên cứu thị trường, bảo hiểm, y tế, giáo dục... Phần lớn các thuật toán ra đời trước
đều sử dụng cơ chế dữ liệu cư trú trong bộ nhớ, thường thao tác với lượng dữ liệu nhỏ.
Một số thuật toán ra đời sau này đã sử dụng kỹ thuật cư trú trên đĩa cải thiện đáng kể
khả năng mở rộng của thuật toán với những tập dữ liệu lớn lên tới hàng tỉ bản ghi.
Quá trình phân lớp dữ liệu gồm hai bước [8]:


 Bước thứ nhất (learning)
Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các
khái niệm định trước. Đầu vào của quá trình này là một tập dữ liệu có cấu trúc được
mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính đó.
Mỗi bộ giá trị được gọi chung là một đối tượng. Trong tập dữ liệu này, mỗi đối tượng
giả sử thuộc về một lớp định trước, lớp ở đây là giá trị của một thuộc tính được chọn
làm thuộc tính gán nhãn lớp hay thuộc tính phân lớp. Đầu ra của bước này thường là
các quy tắc phân lớp dưới dạng luật dạng if-then, cây quyết định, công thức logic, hay
mạng nơron. Quá trình này được mô tả như trong Hình 1.1.

Hình 1.1. Quá trình phân lớp dữ liệu–(a) Bước xây dựng mô hình phân lớp.
 Bước thứ hai (Classification)
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới.

Trước tiên, độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra
được ước lượng. Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ
thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các
mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo. Độ
chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các các mẫu
trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế).


Hình 1.2. Quá trình phân lớp dữ liệu–(b1)Ước lượng độ chính xác mô hình.

Hình 1.3. Quá trình phân lớp dữ liệu–(b2) Phân lớp dữ liệu mới.
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định tới
sự thành công của mô hình phân lớp. Do vậy chìa khóa của vấn đề phân lớp dữ liệu là
tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả
năng mở rộng được. Trong đó khả năng mở rộng được của thuật toán được đặc biệt
chú trọng và phát triển [8].
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng phổ biến:
 Phân lớp cây quyết định.
 Bộ phân lớp Bayes.
 Mô hình phân lớp K-hàng xóm gần nhất.
 Mạng nơron.
 Phân tích thống kê .
 Các thuật toán di truyền.
 Phương pháp tập thô.


1.1.2. Các vấn đề liên quan đến phân lớp dữ liệu
1.1.2.1. Chuẩn bị dữ liệu cho việc phân lớp
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể thiếu và
có vai trò quan trọng quyết định tới sự áp dụng được hay không của mô hình phân lớp.

Quá trình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính hiệu quả và khả năng
mở rộng được của mô hình phân lớp.
Quá trình tiền xử lý dữ liệu gồm có các công việc sau:
 Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý dữ liệu nhiễu và giá trị thiếu (missing
value) trong tập dữ liệu ban đầu. Nhiễu là các lỗi ngẫu nhiên hay các giá trị không hợp
lệ của các biến trong tập dữ liệu. Để xử lý với loại lỗi này có thể dùng kỹ thuật làm
trơn. Giá trị thiếu là giá trị của các thuộc tính không được xác định. Giá trị thiếu có thể
do lỗi chủ quan trong quá trình nhập liệu, hoặc trong trường hợp cụ thể giá trị của
thuộc tính đó không có, hay không quan trọng. Kỹ thuật xử lý ở đây có thể bằng cách
thay giá trị thiếu bằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể
xảy ra nhất dựa trên thống kê. Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử
lý với những giá trị thiếu và lỗi trong tập dữ liệu, nhưng bước tiền xử lý này có thể làm
giảm sự hỗn độn trong quá trình học (xây dựng mô hình phân lớp).
 Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần thiết hay
liên quan đến một bài toán phân lớp cụ thể. Ví dụ dữ liệu về ngày trong tuần hoàn toàn
không cần thiết đối với ứng dụng phân tích độ rủi ro của các khoản tiền cho vay của
ngân hàng, nên thuộc tính này là dư thừa. Phân tích sự cần thiết của dữ liệu nhằm mục
đích loại bỏ những thuộc tính không cần thiết, dư thừa khỏi quá trình học vì những
thuộc tính đó sẽ làm chậm, phức tạp và gây ra sự hiểu sai trong quá trình học dẫn tới
một mô hình phân lớp không dùng được.
 Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần thiết trong
quá trình tiền xử lý. Việc này đặc biệt hữu ích với những thuộc tính liên tục


(continuous attribute hay numeric attribute). Ví dụ các giá trị số của thuộc tính thu
nhập của khách hàng có thể được khái quát hóa thành các dãy giá trị rời rạc: thấp,
trung bình, cao. Tương tự với những thuộc tính rời rạc (categorical attribute) như địa

chỉ phố có thể được khái quát hóa lên thành thành phố. Việc khái quát hóa làm cô
đọng dữ liệu học nguyên thủy, vì vậy các thao tác vào/ ra liên quan đến quá trình học
sẽ giảm.
1.1.2.2. So sánh các mô hình phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn mô hình phân lớp phù hợp. Việc lựa chọn
đó căn cứ vào sự so sánh các mô hình phân lớp với nhau, dựa trên các tiêu chuẩn sau:
 Độ chính xác dự đoán
Độ chính xác là khả năng của mô hình để dự đoán chính xác nhãn lớp của dữ liệu
mới hay dữ liệu chưa biết.
 Tốc độ
Tốc độ là những chi phí tính toán liên quan đến quá trình tạo ra và sử dụng mô hình.
 Sức mạnh
Sức mạnh là khả năng mô hình tạo ta những dự đoán đúng từ những dữ liệu
nhiễu hay dữ liệu với những giá trị thiếu.
 Khả năng mở rộng
Khả năng mở rộng là khả năng thực thi hiệu quả trên lượng lớn dữ liệu của mô
hình đã học.
 Tính hiểu được
Tính hiểu được là mức độ hiểu và hiểu rõ những kết quả sinh ra bởi mô hình đã học.
 Tính đơn giản
Tính đơn giản liên quan đến kích thước của cây quyết định hay độ cô đọng của
các luật.
Trong các tiêu chuẩn trên, khả năng mở rộng của mô hình phân lớp được nhấn
mạnh và trú trọng phát triển, đặc biệt với cây quyết định.
1.1.3. Các phương pháp đánh giá độ chính xác của mô hình phân lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó cho phép dự


đoán được độ chính xác của các kết quả phân lớp những dữ liệu tương lai. Độ chính
xác còn giúp so sánh các mô hình phân lớp khác nhau. Chúng tôi đề cập đến 2 phương

pháp đánh giá phổ biến là holdout và k-fold cross-validation. Cả 2 kỹ thuật này đều
dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu.
 Trong phương pháp holdout, dữ liệu đưa ra được phân chia ngẫu nhiên thành 2
phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra. Thông thường 2/3 dữ liệu cấp cho
tập dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra [8]

Hình 1.4. Ước lượng độ chính xác của mô hình phân lớp
với phương pháp holdout.
 Trong phương pháp k-fold cross validation tập dữ liệu ban đầu được chia ngẫu
nhiên thành k tập con (fold) có kích thước xấp xỉ nhau S1, S2, …, Sk. Quá trình học và
test được thực hiện k lần. Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại
hợp thành tập dữ liệu đào tạo. Có nghĩa là, đâu tiên việc dạy được thực hiện trên các
tập S1, S2, …, Sk, sau đó test trên tập S1 tiếp tục quá trình dạy được thực hiện trên tập
S1, S2, S3, S4, …,Sk, sau đó test trên tập S2, và cứ thế tiếp tục. Độ chính xác là toàn bộ
số phân lớp đúng từ k lần lặp chia cho tổng số mẫu của tập dữ liệu ban đầu.
1.2. Cây quyết định
1.2.1. Định nghĩa
Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà khoa học
trong nhiều lĩnh vực khác nhau đề xuất như mạng nơtron, mô hình thống kê tuyến tính,
cây quyết định, mô hình di truyền. Trong số những mô hình đó, cây quyết định với


những ưu điểm của mình được đánh giá là một công cụ mạnh, phổ biến và đặc biệt
thích hợp cho data mining nói chung và phân lớp dữ liệu nói riêng. Có thể kể ra những
ưu điểm của cây quyết định như: xây dựng tương đối nhanh, đơn giản, dễ hiểu. Hơn
nữa các cây có thể dễ dàng được chuyển đổi sang các câu lệnh SQL để có thể được sử
dụng để truy nhập cơ sở dữ liệu một cách hiệu quả. Cuối cùng, việc phân lớp dựa trên
cây quyết định đạt được sự tương tự và đôi khi là chính xác hơn so với các phương
pháp phân lớp khác.
Cây quyết định là biểu đồ phát triển có cấu trúc dạng cây, được mô tả trong Hình

vẽ sau:

Hình 1.5. Ví dụ về cây quyết định.
Trong cây quyết định:
• Gốc: Là nút trên cùng của cây .
• Nút trong: Biểu diễn sự phân lớp (hình chữnhật).
• Nhánh: Giá trị thuộc tính phân lớp (mũi tên).
• Nút lá: Biểu diễn lớp (hình tròn).
Để phân lớp mẫu dữ liệu chưa biết, giá trị các thuộc tính của mẫu được đưa vào
kiểm tra trên cây quyết định. Mỗi mẫu tương ứng có một đường đi từ gốc đến lá và lá
biểu diễn dự đoán giá trị phân lớp mẫu đó.


1.2.2. Đánh giá cây quyết định
1.2.2.1. Sức mạnh của cây quyết định
Cây quyết định có 5 sức mạnh chính sau [9]:
 Khả năng sinh ra các quy tắc hiểu được
Cây quyết định có khả năng sinh ra các quy tắc có thể chuyển đổi được sang
dạng tiếng Anh, hoặc các câu lệnh SQL. Đây là ưu điểm nổi bật của kỹ thuật
này. Thậm chí với những tập dữ liệu lớn khiến cho hình dáng cây quyết định lớn
và phức tạp, việc đi theo bất cứ đường nào trên cây là dễ dàng theo nghĩa phổ biến
và rõ ràng. Do vậy sự giải thích cho bất cứ một sự phân lớp hay dự đoán nào đều
tương đối minh bạch.
 Khả năng thực thi trong những lĩnh vực hướng quy tắc
Điều này nghe có vẻ hiển nhiên, nhưng quy tắc quy nạp nói chung và cây
quyết định nói riêng là lựa chọn hoàn hảo cho những lĩnh vực thực sự là các quy
tắc. Rất nhiều lĩnh vực từ di truyền tới các quá trình công nghiệp thực sự chứa các
quy tắc ẩn, không rõ ràng do khá phức tạp và tối nghĩa bởi những dữ liệu lỗi. Cây
quyết định là một sự lựa chọn tự nhiên khi chúng ta nghi ngờ sự tồn tại của các
quy tắc ẩn, không rõ ràng.

 Dễ dàng tính toán trong khi phân lớp
Mặc dù như chúng ta đã biết, cây quyết định có thể chứa nhiều định dạng,
nhưng trong thực tế, các thuật toán sử dụng để tạo ra cây quyết định thường tạo
ra những cây với số phân nhánh thấp và các test đơn giản tại từng nút. Những test
điển hình là: so sánh số, xem xét phần tử của một tập hợp, và các phép nối đơn
giản. Khi thực thi trên máy tính, những test này chuyển thành các toán hàm logic
và số nguyên là những toán hạng thực thi nhanh và không đắt. Đây là một ưu điểm
quan trọng bởi trong môi trường thương mại, các mô hình dự đoán thường được sử
dụng để phân lớp hàng triệu thậm trí hàng tỉ bản ghi.
 Khả năng xử lý với cả thuộc tính liên tục và thuộc tính rời rạc
Cây quyết định xử lý “tốt” như nhau với thuộc tính liên tục và thuộc tính rời
rạc. Tuy rằng với thuộc tính liên tục cần nhiều tài nguyên tính toán hơn. Những
thuộc tính rời rạc đã từng gây ra những vấn đề với mạng neural và các kỹ thuật


thống kê lại thực sự dễ dàng thao tác với các tiêu chuẩn phân chia trên cây quyết
định: mỗi nhánh tương ứng với từng phân tách tập dữ liệu theo giá trị của thuộc
tính được chọn để phát triển tại nút đó. Các thuộc tính liên tục cũng dễ dàng phân
chia bằng việc chọn ra một số gọi là ngưỡng trong tập các giá trị đã sắp xếp của
thuộc tính đó. Sau khi chọn được ngưỡng tốt nhất, tập dữ liệu phân chia theo test
nhị phân của ngưỡng đó.
 Thể hiện rõ ràng những thuộc tính tốt nhất
Các thuật toán xây dựng cây quyết định đưa ra thuộc tính mà phân chia tốt
nhất tập dữ liệu đào tạo bắt đầu từ nút gốc của cây. Từ đó có thể thấy những thuộc
tính nào là quan trọng nhất cho việc dự đoán hay phân lớp.
1.2.2.2 Điểm yếu của cây quyết định
Dù có những sức mạnh nổi bật trên, cây quyết định vẫn không tránh khỏi có
những điểm yếu. Đó là cây quyết định không thích hợp lắm với những bài toán
với mục tiêu là dự đoán giá trị của thuộc tính liên tục như thu nhập, huyết áp hay
lãi xuất ngân hàng,… Cây quyết định cũng khó giải quyết với những dữ liệu thời

gian liên tục nếu không bỏ ra nhiều công sức cho việc đặt ra sự biểu diễn dữ liệu
theo các mẫu liên tục.
 Dễ xẩy ra lỗi khi có quá nhiều lớp
Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng yes/no
hay accept/reject. Số khác lại có thể chỉ định các bản ghi vào một số lớp bất kỳ,
nhưng dễ xảy ra lỗi khi số ví dụ đào tạo ứng với một lớp là nhỏ. Điều này xẩy ra
càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một nút.
 Chi phí tính toán đắt để đào tạo
Điều này nghe có vẻ mâu thuẫn với khẳng định ưu điểm của cây quyết định ở
trên. Nhưng quá trình phát triển cây quyết định đắt về mặt tính toán. Vì cây quyết
định có rất nhiều nút trong trước khi đi đến lá cuối cùng. Tại từng nút, cần tính một
độ đo (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục phải
thêm thao tác xắp xếp lại tập dữ liệu theo thứ tự giá trị của thuộc tính đó. Sau đó
mới có thể chọn được một thuộc tính phát triển và tương ứng là một phân chia tốt
nhất. Một vài thuật toán sử dụng tổ hợp các thuộc tính kết hợp với nhau có trọng số


để phát triển cây quyết định. Quá trình cắt cụt cây cũng “đắt” vì nhiều cây con ứng
cử phải được tạo ra và so sánh.
1.2.3. Xây dựng cây quyết định
Cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp và dự báo.
Các đối tượng dữ liệu được phân thành các lớp. Các giá trị của đối tượng dữ liệu chưa
biết sẽ được dự đoán, dự báo. Tri thức được rút ra trong kỹ thuật này thường được mô
tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng.
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
 Giai đoạn thứ nhất phát triển cây quyết định:
Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp
theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả các lá
được gán nhãn lớp.
 Giai đoạn thứ hai cắt, tỉa bớt các cành nhánh trên cây quyết định.

Giai đoạn này nhằm mục đích đơn giản hóa và khái quát hóa từ đó làm tăng độ
chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ nhiễu
của dữ liệu đào tạo mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc
tính riêng biệt của dữ liệu đào tạo. Giai đoạn này chỉ truy cập dữ liệu trên cây
quyết định đã được phát triển trong giai đoạn trước và quá trình thực nghiệm cho
thấy giai đoạn này không tốn nhiều tài nguyên tính toán, như với phần lớn các
thuật toán, giai đoạn này chiếm khoảng dưới 1% tổng thời gian xây dựng mô hình
phân lớp.
Do vậy, ở đây chúng ta chỉ tập trung vào nghiên cứu giai đoạn phát triển cây
quyết định. Dưới đây là khung công việc của giai đoạn này:
1) Chọn thuộc tính “tốt” nhất bằng một độ đo đã định trước
2) Phát triển cây bằng việc thêm các nhánh tương ứng với từng giá trị của
thuộc tính đã chọn
3) Sắp xếp, phân chia tập dữ liệu đào tạo tới nút con
4) Nếu các đối tượng được phân lớp rõ ràng thì dừng.
Ngược lại: lặp lại bước 1 tới bước 4 cho từng nút con


1.3. Một số thuật toán xây dựng cây quyết định đơn trị
1.3.1. Tư tưởng chung
Phần lớn các thuật toán phân lớp dữ liệu dựa trên cây quyết định có mã giả như sau:
Bảng 1.1. Mã giả của thuật toán phân lớp dữ liệu dựa trên cây quyết định
Đầu vào: Bảng quyết định DT=(U,A  {d}).
Đầu ra: Mô hình cây quyết định.
Phương pháp:
Function Tạo_Cây (DT)
{
Phân_vùng (DT)
}
Function Phân_vùng (Dữ liệu S)

{
Nếu (tất cả bản ghi trong S có cùng nhãn lớp) thì
Trả về nút lá có cùng nhãn lớp
Đối với mỗi thuộc tính A thực hiện
Đánh giá sự phân chia của thuộc tính A
Sử dụng thuộc tính chia tốt nhất để phân S vào S1, S2, …, Sk
Phân vùng(S1)
Phân vùng (S2) …
Phân vùng (Sk)
}
Các thuật toán phân lớp như C4.5 (Quinlan, 1993), CDP (Agrawal và các tác
giả khác, 1993), SLIQ (Mehta và các tác giả khác, 1996) và SPRINT (Shafer và
các tác giả khác, 1996) đều sử dụng phương pháp của Hunt làm tư tưởng chủ
đạo. Phương pháp này được Hunt và các đồng sự nghĩ ra vào những năm cuối thập
kỷ 50 đầu thập kỷ 60.
Mô tả quy nạp phương pháp Hunt [10]:
Giả sử xây dựng cây quyết định từ T là tập dữ liệu huấn luyện và các lớp
được biểu diễn dưới dạng tập C = {C1, C2, …,Ck}


Trường hợp 1: T chứa các bản ghi thuộc về một lớp đơn Cj, cây quyết định
ứng với T là một lá tương ứng với lớp Cj
Trường hợp 2: T chứa các bản ghi thuộc về nhiều lớp khác nhau trong tập C.
Một kiểm tra được chọn trên một thuộc tính có nhiều giá trị {O1, O2, ….,On }.
Trong nhiều ứng dụng n thường được chọn là 2, khi đó tạo ra cây quyết định nhị
phân. Tập T được chia thành các tập con T1, T2, …, Tn, với Ti chứa tất cả các bản
ghi trong T mà có kết quả là Oi trong kiểm tra đã chọn. Cây quyết định ứng với T
bao gồm một nút biểu diễn kiểm tra được chọn, và mỗi nhánh tương ứng với mỗi
kết quả có thể của kiểm tra đó. Cách thức xây dựng cây tương tự được áp dụng đệ
quy cho từng tập con của tập dữ liệu huấn luyện.

Trường hợp 3: T không chứa bản ghi nào. Cây quyết định ứng với T là một
lá, nhưng lớp gắn với lá đó phải được xác định từ những thông tin khác ngoài T.
Ví dụ C4.5 chọn giá trị phân lớp là lớp phổ biến nhất tại cha của nút này.
1.3.2 Tình hình nghiên cứu các thuật toán hiện nay
Các thuật toán phân lớp dữ liệu dựa trên cây quyết định đều có tư tưởng chủ
đạo là phương pháp Hunt đã trình bày ở trên. Luôn có 2 câu hỏi lớn cần phải được
trả lời trong các thuật toán phân lớp dữ liệu dựa trên cây quyết định là:
1. Làm cách nào để xác định được thuộc tính tốt nhất để phát triển tại mỗi
nút?
2. Lưu trữ dữ liệu như thế nào và làm cách nào để phân chia dữ liệu theo các
trường tương ứng?
Các thuật toán khác nhau có các cách trả lời khác nhau cho hai câu hỏi trên.
Điều này làm nên sự khác biệt của từng thuật toán.
Có 2 loại tiêu chuẩn hay chỉ số để xác định thuộc tính tốt nhất phát triển tại
mỗi nút
 Gini-index (Breiman và các đồng sự, 1984 [1]): Loại tiêu chuẩn này lựa
chọn thuộc tính mà làm cực tiểu hóa độ không tinh khiết của mỗi phân chia. Các
thuật toán sử dụng này là CART, SLIQ, SPRINT.
Information–gain (Quinlan, 1993 [1]): Khác với Gini-index, tiêu chuẩn này


sử dụng entropy để đo độ không tinh khiết của một phân chia và lựa chọn thuộc
tính theo mức độ cực đại hóa chỉ số entropy. Các thuật toán sử dụng tiêu chuẩn này
là ID3, C4.5.
Việc tính toán các chỉ số trên đôi khi đòi hỏi phải duyệt toàn bộ hay một phần
của tập dữ liệu đào tạo. Do vậy các thuật toán ra đời trước yêu cầu toàn bộ tập dữ
liệu đào tạo phải nằm thường trú trong bộ nhớ trong quá trình phát triển cây quyết
định. Điều này đã làm hạn chế khả năng mở rộng của các thuật toán đó, vì kích thước
bộ nhớ là có hạn, mà kích thước của tập dữ liệu đào tạo thì tăng không ngừng, đôi
khi là triệu là tỉ bản ghi trong lĩnh vực thương mại. Rõ ràng cần tìm ra giải pháp mới

để thay đổi cơ chế lưu trữ và truy cập dữ liệu, năm 1996 SLIQ (Mehta) và SPRINT
(Shafer) ra đời đã giải quyết được hạn chế đó. Hai thuật toán này đã sử dụng cơ chế
lưu trữ dữ liệu thường trú trên đĩa và cơ chế sắp xếp trước một lần tập dữ liệu đào
tạo. Những đặc điểm mới này làm cải thiện đáng kể hiệu năng và tính mở rộng so
với các thuật toán khác. Tiếp theo là một số thuật toán khác phát triển trên nền tảng
SPRINT với một số bổ xung cải tiến như PUBLIC (1998) với ý tưởng kết hợp hai
quá trình xây dựng và cắt tỉa với nhau, hay ScalParC (1998) cải thiện quá trình
phân chia dữ liệu của SPRINT với cách dùng bảng băm khác, hay thuật toán do
các nhà khoa học trường đại học Minesota (Mỹ ) kết hợp với IBM đề xuất đã làm
giảm chi phí vào ra cũng như chi phí giao tiếp toàn cục khi song song hóa so với
SPRINT. Trong các thuật toán đó SPRINT được coi là sáng tạo đột biến, đáng để
chúng ta tìm hiểu và phát triển.
1.3.3. Song song hóa thuật toán phân lớp dựa trên cây quyết định tuần tự
Song song hóa xu hướng nghiên cứu hiện nay của các thuật toán phân lớp dữ
liệu dựa trên cây quyết định. Nhu cầu song song hóa các thuật toán tuần tự là một
nhu cầu tất yếu của thực tiễn phát triển khi mà các đòi hỏi về hiệu năng, độ chính
xác ngày càng cao. Thêm vào đó là sự gia tăng nhanh chóng về kích thước của dữ
liệu cần khai phá. Một mô hình phân lớp chạy trên hệ thống tính toán song song có
hiệu năng cao, có khả năng khai phá được những tập dữ liệu lớn hơn từ đó gia tăng
độ tin cậy của các quy tắc phân lớp. Hiện nay, các thuật toán tuần tự yêu cầu dữ liệu
thường trú trong bộ nhớ đã không đáp ứng được yêu cầu của các tập dữ liệu có


kích thước TetaByte với hàng tỉ bản ghi. Do vậy xây dựng thuật toán song song
hiệu quả dựa trên những thuật toán tuần tự sẵn có là một thách thức đặt ra cho các
nhà nghiên cứu.
Có 3 chiến lược song song hóa các thuật toán tuần tự:
 Phương pháp xây dựng cây đồng bộ
Trong phương pháp này, tất cả các bộ vi xử lý đồng thời tham gia xây dựng
cây quyết định bằng việc gửi và nhận các thông tin phân lớp của dữ liệu địa

phương. Hình 1.6 mô tả cơ chế làm việc của các bộ vi xử lý trong phương pháp này.
Ưu điểm của phương pháp này là không yêu cầu việc di chuyển các dữ liệu
trong tập dữ liệu đào tạo. Tuy nhiên, thuật toán này phải chấp nhận chi phí giao
tiếp cao, và tải bất cân bằng. Với từng nút trong cây quyết định, sau khi tập hợp được
các thông tin phân lớp, tất cả các bộ vi xử lý cần phải đồng bộ và cập nhật các
thông tin phân lớp. Với những nút ở độ sâu thấp, chi phí giao tiếp tương đối nhỏ,
bởi vì số lượng các mục training data được xử lý là tương đối nhỏ. Nhưng khi cây
càng sâu thì chi phí cho giao tiếp chiếm phần lớn thời gian xử lý. Một vấn đề nữa
của phương pháp này là tải bất cân bằng do cơ chế lưu trữ và phân chia dữ liệu ban
đầu tới từng bộ vi xử lý.

Hình 1.6. Sơ đồ xây dựng cây quyết định theo phương pháp đồng bộ


 Phương pháp xây dựng cây phân hoạch
Khi xây dựng cây quyết định bằng phương pháp phân hoạch các bộ vi xử lý khác
nhau làm việc với các phần khác nhau của cây quyết định. Nếu nhiều hơn 1 bộ vi xử lý
cùng kết hợp để phát triển 1 nút, thì các bộ vi xử lý được phân hoạch để phát triển các
con của nút đó. Phương pháp này tập trung vào trường hợp 1 nhóm các bộ vi xử lý Pn
cùng hợp tác để phát triển nút n. Khi bắt đầu, tất cả các bộ vi xử lý cùng đồng thời kết
hợp để phát triển nút gốc của cây phân lớp. Khi kết thúc, toàn bộ cây phân lớp được
tạo ra bằng cách kết hợp tất cả các cây con của từng bộ vi xử lý. Hình 1.7 mô tả cơ chế
làm việc của các bộ vi xử lý trong phương pháp này.
Ưu điểm của phương pháp này là khi một bộ vi xử lý một mình chịu trách nhiệm
phát triển một nút, thì nó có thể phát triển thành một cây con của cây toàn cục một
cách độc lập mà không cần bất cứ chi phí giao tiếp nào.
Tuy nhiên cũng có một vài nhược điểm trong phương pháp này, đó là: Thứ nhất
yêu cầu di chuyển dữ liệu sau mỗi lần phát triển một nút cho tới khi mỗi bộ vi xử lý
chứa toàn bộ dữ liệu để có thể phát triển toàn bộ một cây con. Do vậy dẫn đến tốn kém
chi phí giao tiếp khi ở phần trên của cây phân lớp. Thứ hai là khó đạt được tải cân

bằng. Việc gán các nút cho các bộ vi xử lý được thực hiện dựa trên số lượng các case
trong các nút con. Tuy nhiên số lượng các case gắn với một nút không nhất thiết phải
tương ứng với sốlượng công việc cần phải xử lý để phát triển cây con tại nút đó.


Hình 1.7. Sơ đồ xây dựng cây quyết định theo phương pháp phân hoạch.
 Phương pháp lai
Phương pháp lai tận dụng ưu điểm của cả 2 phương pháp trên. Phương pháp xây
dựng cây đồng bộ chấp nhận chi phí giao tiếp cao khi biên giới của cây càng rộng.
Trong khi đó, phương pháp xây dựng cây quyết định phân hoạch thì phải chấp nhận
chi phí cho việc tải cân bằng sau mỗi bước. Trên cơ sở đó, phương pháp lai tiếp tục
duy trì cách thức thứ nhất miễn là chi phí giao tiếp phải chịu do tuân theo cách thức
thứ nhất không quá lớn. Khi mà chi phí này vượt quá một ngưỡng quy định, thì các bộ
vi xử lý đang xử lý các nút tại đường biên hiện tại của cây phân lớp được phân chia
thành 2 phần (với giả thiết số lượng các bộvi xử lý là lũy thừa của 2).Phương pháp này
cần sử dụng tiêu chuẩn để khởi tạo sự phân hoạch tập các bộ vi xử lý hiện tại, đó là:
∑(Chi phí giao tiếp) ≥ Chi phí di chuyển + Tải cân bằng.
Mô hình hoạt động của phương pháp lai được mô tả trong hình 1.8.


×