You are on page 1of 153

Mục lục

Mục lục ......................................................................................................................................................... 1


Chương 1 ....................................................................................................................................................... 5

TỔNG QUAN VỀ PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU .............................................. 5
1.1. BƯỚC PHÁT TRIỂN MỚI CỦA VIỆC TỔ CHỨC VÀ KHAI THÁC CSDL ....................... 5

1.2. PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU LÀ GÌ (KDD)? .................................... 8

1.3. CÁC BƯỚC CỦA QUÁ TRÌNH PHÁT HIỆN TRI THỨC.................................................... 9

1.4. KDD VÀ CÁC LĨNH VỰC LIÊN QUAN ............................................................................ 12

1.5. CÁC PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU ..................................................................... 13

1.6. ỨNG DỤNG CỦA KDD ...................................................................................................... 17

1.7. NHỮNG THÁCH THỨC TRONG ỨNG DỤNG VÀ NGHIÊN CỨU KỸ THUẬT KHAI
PHÁ DỮ LIỆU ................................................................................................................................... 17

Chương 2 ..................................................................................................................................................... 20

TIỀN XỬ LÝ DỮ LIỆU ......................................................................................................................... 20


2.1 CÁC LOẠI DỮ LIỆU SỬ DỤNG TRONG KHAI PHÁ DỮ LIỆU .................................... 21

2.2 TÓM TẮT HÓA DỮ LIỆU .................................................................................................. 22

2.3 LÀM SẠCH DỮ LIÊU ......................................................................................................... 23

2.4 TÍCH HỢP VÀ CHUYỂN ĐỔI DỮ LIÊU ........................................................................... 26

2.5 RÚT GỌN DỮ LIỆU ............................................................................................................ 29

Chương 3 ..................................................................................................................................................... 37

PHÂN LỚP DỰA VÀO CÂY QUYẾT ĐỊNH...................................................................................... 37


3.1 PHÂN LỚP LÀ GÌ? DỰ ĐOÁN? ......................................................................................... 37

3.2 CÂY QUYẾT ĐỊNH ............................................................................................................. 37

3.3 XÂY DỰNG CÂY QUYẾT ĐỊNH ....................................................................................... 39

3.4 RÚT TRÍCH LUẬT TỪ CÂY QUYẾT ĐỊNH ..................................................................... 45

3.5 QUÁ KHÍT KHAO VÀ CẮT TỈA CÂY QUYẾT ĐINH ...................................................... 46

1
3.6 SỬ DỤNG CÂY QUYẾT ĐỊNH DỰ ĐOÁN LỚP CỦA CÁC DỮ LIỆU CHƯA BIẾT ...... 47

Chương 4 ..................................................................................................................................................... 51

PHÂN LỚP BẰNG NAÏVE BAYES VÀ LÁNG GIỀNG GẦN NHẤT .............................................. 53
4.1 PHÂN LỚP NAÏVE BAYES ................................................................................................ 53

4.2 ĐỘ ĐO KHOẢNG CÁCH .................................................................................................... 56

4.3 PHÂN LỚP LÁNG GIỀNG GẦN NHẤT............................................................................. 61

Chương 5 ..................................................................................................................................................... 65

PHÂN LỚP DỰA VÀO LÝ THUYẾT TẬP THÔ ............................................................................... 65


5.1 LÝ THUYẾT TẬP THÔ ....................................................................................................... 65

5.2 BẢNG QUYẾT ĐỊNH VÀ CÂY QUYẾT ĐỊNH ................................................................. 68

5.3 PHÂN LỚP DỰA VÀO LUẬT QUYẾT ĐỊNH ................................................................... 70

Chương 6 ..................................................................................................................................................... 74

ĐÁNH GIÁ HIỆU NĂNG MỘT PHÂN LỚP ...................................................................................... 74


6.1 LƯỢNG GIÁ ĐỘ CHÍNH XÁC DỰ ĐOÁN CỦA MỘT PHÂN LỚP ................................. 74

6.2 MA TRẬN NHẦM LẪN (CONFUSION MATRIX)........................................................... 76

6.3 CÁC ĐỘ ĐO HIỆU NĂNG (PERFORMANCE MEASURES) ........................................... 77

6.4 SO SÁNH TP RATE, FP RATE VỚI ĐỘ CHÍNH XÁC DỰ ĐOÁN ................................... 77

6.5 TÌM PHÂN LỚP TỐT NHẤT .............................................................................................. 78

Chương 7 ..................................................................................................................................................... 80

KHAI PHÁ LUẬT KẾT HỢP ............................................................................................................... 80


7.1 MỘT SỐ KHÁI NIỆM CƠ BẢN .......................................................................................... 80

7.2 KHAI PHÁ TẬP PHỔ BIẾN ................................................................................................ 82

7.3 KHAI PHÁ LUẬT KẾT HỢP TỪ TẬP PHỔ BIẾN: ............................................................ 91

7.4 CÁC ĐỘ ĐO HỖ TRỢ ĐỘ QUAN TÂM CỦA LUẬT KẾT HỢP: LIFT, LEVERAGE .......... 92

Chương 8 ..................................................................................................................................................... 96

KHAI PHÁ LUẬT KẾT HỢP DỰA VÀO LÝ THUYẾT TẬP THÔ ................................................... 96
8.1 CẤU TRÚC DỮ LIỆU “BITMAP” ...................................................................................... 96

2
8.2 KHAI PHÁ LUẬT KẾT HỢP CỰC ĐẠI.............................................................................. 97

Chương 9 ................................................................................................................................................... 105

PHÂN CỤM ......................................................................................................................................... 105


9.1 CÁC YÊU CẦU CỦA PHÂN CỤM TRONG KHAI PHÁ DỮ LIỆU ................................ 105

9.2 PHÂN LOẠI CÁC KỸ THUẬT PHÂN CỤM TRONG KHAI PHÁ DỮ LIỆU ................. 106

9.3 MỘT SỐ THUẬT TOÁN PHÂN CỤM KINH ĐIỂN......................................................... 109

9.4 THUẬT TOÁN PHÂN CỤM DỰA VÀO LÝ THUYẾT TẬP THÔ ................................. 120

Chương 10 ................................................................................................................................................. 128

KHAI PHÁ VĂN BẢN ......................................................................................................................... 128


10.1 KHAI PHÁ DỮ LIỆU VĂN BẢN ...................................................................................... 128

10.2 MỘT SỐ MÔ HÌNH BIỂU DIỄN VĂN BẢN .................................................................... 130

10.3 CÁC PHƯƠNG PHÁP LỰA CHỌN CÁC TỪ TRONG BIỂU DIỄN VĂN BẢN ........... 134

10.4 THU GỌN ĐẶC TRƯNG BIỂU DIỄN .............................................................................. 136

10.5 PHÂN LOẠI SIÊU VĂN BẢN ........................................................................................... 136

Chương 11 ................................................................................................................................................. 139

KHAI PHÁ VĂN BẢN DỰA TRÊN MÔ HÌNH TẬP THÔ DUNG SAI .......................................... 139
11.1 BIỂU DIỄN VĂN BẢN ...................................................................................................... 139

11.2 MÔ HÌNH TẬP THÔ DUNG SAI (TRSM) ........................................................................ 140

11.4 PHÂN CỤM VĂN BẢN DỰA TRÊN MÔ HÌNH TẬP THÔ DUNG SAI (TRSM)........... 142

11.5 TÌM KIẾM DỰA TRÊN VĂN BẢN ĐÃ PHÂN CỤM ...................................................... 146

11.6 PHÂN LOẠI VĂN BẢN .................................................................................................... 147

11.7 TRÍCH CHỌN TỪ KHÓA ................................................................................................. 147

TÀI LIỆU THAM KHẢO ..................................................................................................................... 152

3
4
Chương 1

TỔNG QUAN VỀ PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU

1.1. BƯỚC PHÁT TRIỂN MỚI CỦA VIỆC TỔ CHỨC VÀ KHAI THÁC CSDL

Cùng với việc tăng không ngừng dung lượng dữ liệu, các hệ thống thông tin cũng được chuyên
môn hóa, phân chia theo các lĩnh vực ứng dụng như sản xuất, tài chính, buôn bán thị trường ... Như vậy,
bên cạnh chức năng khai thác dữ liệu có tính chất tác nghiệp, sự thành công trong mỗi một lĩnh vực
không chỉ là hiệu suất của các hệ thống thông tin, mà còn là tính linh hoạt và sẵn sàng đáp lại những yêu
cầu trong thực tế. CSDL cần đem lại những “tri thức” hơn là dung lượng dữ liệu. Trong kinh doanh, các
quyết định cần phải có càng nhanh càng tốt và chính xác dựa trên những dữ liệu sẵn có, trong khi dung
lượng dữ liệu ngày càng tăng làm ảnh hưởng đến thời gian ra quyết định cũng như khả năng hiểu hết
được nội dung dữ liệu. Chính điều này, các mô hình CSDL truyền thống và ngôn ngữ SQL đã cho thấy
không có khả năng thực hiện công việc này. Để lấy được những thông tin có tính “tri thức” trong khối dữ
liệu khổng lồ, người ta đã đi tìm những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao
dịch khác nhau, chuyển đổi thành một tập hợp các cơ sở dữ liệu ổn định, có chất lượng, chỉ được sử dụng
riêng cho một vài mục đích nào đó. Các kỹ thuật đó được gọi chung là kỹ thuật tạo kho dữ liệu (data
warehousing) và môi trường các dữ liệu có được gọi là các kho dữ liệu (data warehouse).

Kho dữ liệu tích hợp các hệ thống dữ liệu nguồn, cung cấp cho người dùng các thông tin khó có
thể truy nhập hoặc biểu diễn trong các CSDL tác nghiệp truyền thống, nhằm mục đích hỗ trợ việc ra quyết
định. Theo W.H.Inmon, có thể định nghĩa kho dữ liệu như sau: “Một kho dữ liệu là một tập hợp dữ liệu
tích hợp hướng chủ đề có tính ổn định, cập nhật theo thời gian nhằm hỗ trợ cho việc ra quyết định. Nói
cách khác, một kho dữ liệu bao gồm:

- Một hoặc nhiều công cụ để chiết xuất dữ liệu từ bất kỳ dạng cấu trúc dữ liệu nào.

- Cơ sở dữ liệu tích hợp hướng chủ đề ổn định được tổng hợp bằng cách xây dựng các
bảng dữ liệu.”

Một kho dữ liệu có thể được coi là một hệ thống thông tin với những thuộc tính sau:

- Là một cơ sở dữ liệu được thiết kế có nhiệm vụ phân tích, sử dụng các dữ liệu từ các ứng
dụng khác nhau.
- Hỗ trợ cho người dùng với các mục đích, tiêu chí khác nhau.
- Là dữ liệu chỉ đọc.

5
- Nội dung của nó được cập nhật thường xuyên theo cách thêm thông tin.
- Chứa các dữ liệu lịch sử và hiện tại để cung cấp các xu hướng thông tin.
- Chứa các bảng dữ liệu có kích thước lớn.
- Một câu hỏi thường trả về một tập kết quả liên quan đến toàn bộ bảng và các liên kết
nhiều bảng.

Cấu trúc kho dữ liệu được xây dựng dựa trên hệ quản trị CSDL quan hệ, có chức năng giống như
một kho lưu trữ thông tin trung tâm. Trong đó, dữ liệu tác nghiệp và phần xử lý được tách riêng khỏi quá
trình xử lý kho dữ liệu. Kho lưu trữ trung tâm được liên kết với các thành phần khác được thiết kế làm
cho kho dữ liệu có thể hoạt động, quản lý và truy nhập được từ nhiều người dùng khác nhau.

Dữ liệu Dữ liệu tổng hợp


nguồn

P.tích trực tuyến Phân tích dữ liệu trực tuyến (OLAP)


Dữ liệu Kho Dữ liệu
nguồn

Chiết xuất Dữ liệu


Làm sạch dữ liệu Siêu Dữ liệu
Nạp dữ liệu Báo cáo
Dữ liệu
nguồn
Dữ liệu thô

Khai phá dữ liệu


Kỹ thuật xây dựng kho dữ liệu

H 1.1. Cấu trúc Kho dữ liệu

Như Hình 1.1 cho thấy, kho dữ liệu bao gồm 7 thành phần:

- Dữ liệu nguồn (là các ứng dụng tác nghiệp hoặc các kho dữ liệu tác nghiệp) và các công
cụ chiết xuất, làm sạch và chuyển đổi dữ liệu.
- Kho siêu dữ liệu (MetaData)
- Các kỹ thuật tạo lập kho
- Kho dữ liệu theo chủ đề (Data marts): là nơi các dữ liệu được khoanh vùng theo chủ đề
đến một giới hạn nào đó và có thể được thay đổi cho phù hợp với nhu cầu của từng bộ
phận người dùng. Với các kho dữ liệu này, có thể tổng hợp thành một kho dữ liệu thông

6
minh. Ngược lại, một kho dữ liệu có thể được phân tích thành nhiều kho dữ liệu thông
minh.
- Các công cụ truy vấn (query), báo cáo (reporting), phân tích trực tuyến (OLAP) và khai
phá dữ liệu (data mining) là các kỹ thuật khai thác kho dữ liệu để đem lại những “tri
thức”. Điểm mạnh và yếu của các kỹ thuật này ta sẽ phân tích kỹ hơn ở những phần sau.
- Quản trị kho dữ liệu.
- Hệ thống phân phối thông tin.

Nhưng chỉ có kho dữ liệu thôi thì chưa đủ để có các tri thức. Các kho dữ liệu được sử dụng theo
ba cách chính:

v Theo cách khai thác truyền thống, kho dữ liệu được sử dụng để khai thác các thông tin
bằng các công cụ truy vấn và báo cáo. Tuy nhiên, nhờ có việc chiết xuất, tổng hợp và
chuyển đổi từ dữ liệu thô sang dạng các dữ liệu chất lượng cao và có tính ổn định. Kho
dữ liệu giúp cho việc nâng cao các kỹ thuật biểu diễn thông tin truyền thống. Bằng cách
tạo ra một tầng ẩn giữa CSDL và người dùng, các dữ liệu đầu vào của các kỹ thuật này
được đặt vào một nguồn duy nhất. Việc hợp nhất này loại bỏ được rất nhiều lỗi sinh ra do
việc phải thu thập và biểu diễn thông tin từ rất nhiều nguồn khác nhau cũng như giảm bớt
được sự chậm trễ do phải kết xuất các dữ liệu phân đoạn trong các cơ sở dữ liệu khác
nhau. Tuy nhiên, đây mới chỉ là cách khai thác với kỹ thuật cao để đưa ra dữ liệu tinh và
chính xác hơn chứ chưa đưa ra được dữ liệu “tri thức”.

v Thứ hai, các kho dữ liệu được sử dụng để hỗ trợ cho phân tích trực tuyến (OLAP). Trong
khi ngôn ngữ truy vấn chuẩn SQL và các công cụ làm báo cáo truyền thống chỉ có thể mô
tả những gì có trong CSDL thì phân tích trực tuyến có khả năng phân tích dữ liệu, kiểm
định xem giả thuyết đúng hay sai. Tuy nhiên, phân tích trực tuyến lại không có khả năng
đưa ra được các giả thuyết.

Hơn nữa, kích thước quá lớn và tính chất phức tạp của kho dữ liệu làm cho nó rất khó sử dụng
cho những mục đích như đưa ra các giả thuyết từ các thông tin mà chương trình ứng dụng cung cấp (ví dụ
như khó có thể đưa ra được giả thuyết giải thích được hành vi của một nhóm khách hàng).

Trước đây, kỹ thuật học máy thường được sử dụng để tìm ra những giả thuyết từ các thông tin dữ
liệu thu thập được. Tuy nhiên, thực nghiệm cho thấy chúng thể hiện khả năng rất kém khi áp dụng với các
tập dữ liệu lớn trong kho dữ liệu. Phương pháp thống kê tuy ra đời đã lâu nhưng chưa có đột phá để phù
hợp với sự phát triển của dữ liệu. Đây chính là lý do tại sao một lượng lớn dữ liệu vẫn chưa được khai
thác và thậm chí được lưu trữ chủ yếu trong các kho dữ liệu không trực tuyến (off-line). Điều này là một

7
lỗ hổng lớn trong việc hỗ trợ phân tích và tìm hiểu dữ liệu, tạo ra khoảng cách giữa việc tích hợp dữ liệu
và việc khai thác các dữ liệu. Trong khi đó, càng ngày người ta càng nhận thấy rằng, nếu được phân tích
hợp lý thì dữ liệu sẽ là một nguồn tài nguyên quý giá.

Những người làm tin học đã đáp ứng lại những thách thức trong thực tiễn cũng như trong nghiên
cứu khoa học. Họ đưa ra một phương pháp mới đáp ứng cả yêu cầu trong học thuật cũng như trong hoạt
động thực tiễn: phương pháp Khai phá dữ liệu Đây chính là ứng dụng thứ ba của kho dữ liệu.

Sự phát triển của công nghệ cơ sở dữ liệu (CSDL) có thể tổng kết như sau:

v 1960s:
· Thu thập dữ liệu, tạo cơ sở dữ liệu, IMS và mạng lưới các hệ quản trị cơ sở dữ liệu
(DBMS)

v 1970s:
· Mô hình dữ liệu quan hệ, phát triển các hệ quản trị cơ sở dữ liệu quan hệ

v 1980s:
· Hệ quản trị cơ sở dữ liệu quan hệ RDBMS, các mô hình dữ liệu nâng cao (quan hệ mở
rộng, hướng đối tượng, suy diễn,..) và các hệ quản trị cơ sở dữ liệu hướng ứng dụng (về
không gian, khoa học,...)

v 1990s—2000s:
· Khai phá dữ liệu và kho dữ liệu, cơ sở dữ liệu đa phương tiện và cơ sở dữ liệu Web.
1.2. PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU LÀ GÌ (KDD)?

Cũng như các điện tử và sóng đã trở thành bản chất của kỹ thuật điện cổ điển, thì ta thấy rằng dữ
liệu, thông tin, tri thức đang là lĩnh vực tập trung nhiều nghiên cứu và ứng dụng: phát hiện tri thức và khai
phá dữ liệu.

Dữ liệu là tập các sự kiện thô và chúng được tổ chức ở các dạng logic. Thành phần nhỏ nhất của dữ
liệu được “thừa nhận” bởi máy tính là các ký tự đơn, ví dụ: chữ A, số 1, ký tự *…Một ký tự được biểu
diễn bởi 8 bít. Các bits thường được sử dụng để đo thông tin.

Tri thức được xem như là các thông tin tích hợp, bao gồm các sự kiện và mối quan hệ giữa chúng, đã
được nhận thức, khám phá, hoặc nghiên cứu. Nói cách khác, tri thức có thể được coi là dữ liệu ở mức độ
cao của sự trừu tượng và tổng quát.

Khám phá tri thức hay phát hiện tri thức trong cơ sở dữ liệu là một quy trình nhận biết các mẫu hoặc
các mô hình trong dữ liệu với các tính năng: Phân tích, tổng hợp, hợp thức, khả ích và có thể hiểu được.

8
Dữ liệu lớn (@ Tera byte) Thuật toán Khai phá dữ liệu? Biểu diễn và sử dụng
tri thức?
H 1.2. Phát hiện tri thức và khai phá dữ liệu

Khai phá dữ liệu là một bước trong quá trình khám phá tri thức, bao gồm các thuật toán chuyên
dụng đáp ứng một số yêu cầu về hiệu quả tính toán để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói
cách khác, mục tiêu của khai phá dữ liệu là tìm kiếm các mẫu hoặc mô hình tồn tại tiềm ẩn trong cơ sở dữ
liệu dung lượng lớn.

Mục đích của khai phá dữ liệu là phát hiện tri thức phục vụ cho các lợi ích trong thực tế và các
yêu cầu trong nghiên cứu học thuật. Do đó, ta có thể coi mục đích chính của khai thác dữ liệu là mô tả
(description) và dự đoán (prediction). Dự đoán liên quan đến việc sử dụng các biến hoặc các trường
trong cơ sở dữ liệu để chiết xuất ra các mẫu nhằm dự đoán những giá trị chưa biết hoặc giá trị của các
biến sẽ được quan tâm trong tương lai. Mô tả tập trung vào việc tìm kiếm các mẫu biểu diễn dữ liệu mà
con người có thể hiểu được.

Trong cuốn sách nổi tiếng “ Data Mining – Concepts and Techniques”, hai tác giả Jiawei Han và
Micheline Kamber [17] nhận định rằng, tình trạng “giàu về dữ liệu, nghèo về thông tin” là một động lực
phát triển lĩnh vực khai phá dữ liệu và phát hiện tri thức trong cơ sở dữ liệu (CSDL). Minh chứng cho
nhận định trên là các số liệu thống kế vào năm 2006 đáng chú ý: Về dữ liệu Web, điển hình là Alexa, sau
7 năm đã có 500TB (terabyte), Google đã lưu trữ hơn 4 tỷ trang Web với dung lượng hàng trăm TB, IBM
WebFountain với hơn 160TB,..Về CSDL, điển hình là Max Planck Institude for Meteorology có hơn
220TB, Yahoo! Có hơn 100TB..

1.3. CÁC BƯỚC CỦA QUÁ TRÌNH PHÁT HIỆN TRI THỨC

Bước đầu tiên: tìm hiểu phạm vi ứng dụng và xác định bài toán. Bước này rõ ràng là điều kiện tiên
quyết để rút trích tri thức hữu ích, phục vụ cho việc lựa chọn phương pháp khai phá dữ liệu thích hợp theo
các mục tiêu ứng dụng và tính chất của dữ liệu.

Bước thứ hai: thu thập và tiền xử lý dữ liệu, bao gồm cả việc lựa chọn các nguồn dữ liệu, loại bỏ
nhiễu hoặc ngoại lệ, xử lý các dữ liệu bị thiếu, việc chuyển đổi (phân rã nếu cần thiết), rút gọn dữ liệu ..,

9
bước này thường mất nhiều thời gian (cần thiết) nhất trong quá trình KDD.

Xác định bài toán

Thu thập và tiền xử lý


Dữ liệu

Khai phá DL
Rút trích tri thức

Đánh giá & làm rõ


Kết quả

Sử dụng tri thức


Phát hiện

H 1.3 Quá trình phát hiện tri thức và khai phá dữ liệu

Bước thứ ba: khai phá dữ liệu nhằm rút trích các mẫu và/hoặc các mô hình ẩn trong dữ liệu. Một
mô hình có thể được xem là "một biểu diễn cấu trúc tổng thể, hệ thống các thành phần cơ sở dữ liệu hoặc
mô tả dữ liệu phát sinh như thế nào". Lưu ý, "mẫu/mô hình cũng có thể là một cấu trúc cục bộ có thể chỉ
liên quan đến một số ít thành phần thay đổi và một vài đối tượng". Với hai đích chính của khai phá dữ
liệu là Dự đoán (Prediction) và Mô tả (Description), người ta thường sử dụng các phương pháp sau cho
khai phá dữ liệu:

Các phương pháp Dự đoán:

- Phân lớp (Classification)


- Hồi qui (Regression)
- Dò tìm biến đổi và độ lệch (Change and Deviation Dectection)

Các phương pháp mô tả:

- Phân cụm (Clustering)


- Luật kết hợp (Association Rule)
- Mô hình ràng buộc (Dependency modeling)
- Biểu diễn mô hình (Model Representation)
- Kiểm định mô hình (Model Evaluation)

Bước thứ tư: là làm rõ tri thức phát hiện được, đặc biệt là thể hiện mô tả và dự báo. Thực tế cho
thấy các mẫu được phát hiện hoặc các mô hình có được từ dữ liệu không phải luôn luôn được xem xét
hoặc sử dụng ngay, quá trình KDD cần đánh giá, xem xét tri thức phát hiện được bằng một quá trình lặp.

10
Một cách đánh giá các luật (tri thức) kết xuất người ta chia dữ liệu thành hai tập, một tập để huấn
luyện, một tập để kiểm thử rút trích tri thức. Quá trình phân chia dữ liệu được tiến hành nhiều lần, trung
bình cộng các kết quả thu được có thể sử dụng để đánh giá hiệu năng tập luật.

Bước cuối là đưa tri thức phát hiện được vào sử dụng thực tế.

Có thể xem xét một cách chi tiết hơn quá trình KDD thể hiện trong hình H. 1.4 với các tác vụ:

· Nâng cao phạm vi hiểu biết và ứng dụng: các tri thức liên quan trước đó, mục tiêu của người
dùng ..
· Tạo dữ liệu đích, tạo kho dữ liệu: chọn một tập dữ liệu, hoặc tập trung vào một tập hợp con của
các biến hoặc mẫu dữ liệu để phát hiện tri thức.
· Làm sạch và tiền xử lý dữ liệu: thực hiện các thao tác cơ bản như loại bỏ nhiễu hoặc dữ liệu
ngoại lai, thu thập các thông tin cần thiết để mô hình hóa hay hạn chế nhiễu, quyết định chiến
lược cho việc xử lý dữ liệu bị mất, tính toán sự biến đổi thông tin theo thời gian.
· Rút gọn và biểu diễn dữ liệu: tìm kiếm các đặc trưng để đại diện cho dữ liệu (tùy thuộc vào mục
tiêu của nhiệm vụ). Rút gọn dữ liệu, biến đổi nhằm rút gọn các biến cần quan tâm.
· Chọn bài toán khai phá dữ liệu: quyết định xem mục đích của quá trình KDD là bài toán cụ thể
nào: phân lớp, hồi quy, phân cụm, ..

Dữ liệu được tổ chức theo


chức năng
Quá trình KDD
Tạo/ lựa chọn
CSDL đích
Tạo kho dữ liệu
Lựa chọn
kỹ thuật
Lấy mẫu & DL

Bổ sung Loại trừ


DL còn thiếu DL nhiễu

Tìm các thuộc tính


Chuẩn hóa Chuyển đổi Tạo lập & các phạm vi
DL DL thuộc tính có giá trị

Lựa chọn Lựa chọn Rút trích Kiểm tra Tinh chế
Bài toán DM Ph.pháp DM Tri thức Tri thức tri thức

Query & repor generation


Chuyển qua
các dạng Aggregation & sequences
biểu diễn khác Advanced methods

H 1.4 Mô tả chi tiết các bước trong quá trình KDD

11
· Chọn phương pháp (thuật toán khai phá dữ liệu): tiến hành việc dò tìm các mẫu cần quan tâm
dưới dạng trình bày riêng biệt, hoặc trình bày tổng hợp theo các qui tắc phân lớp, hồi qui, phân
cụm .. Trong bước này, sự hỗ trợ của người dùng đóng một vai trò quan trọng.
· Diễn giải và đánh giá các mẫu/ mô hình.
· Hợp nhất các tri thức đã được khám phá: tích hợp các tri thức thành một hệ thống, diễn giải bằng
các tài liệu đơn giản và kết xuất những phần đáng quan tâm. Trong bước này bao gồm cả phần
kiểm tra và giải quyết các xung đột của tri thức được rút trích.

Kiến trúc điển hình của một hệ thống khai phá dữ liệu: Từ mô tả chi tiết các bước trong quá trình
KDD có thể biểu diễn một kiến trúc điển hình của một hệ thống khai phá dữ liệu một cách trực quan
như hình H 1.5.

Giao diện đồ họa người dùng

Đánh giá mẫu Cơ sở


Tri thức

Bộ máy khai phá dữ liệu

CSDL/ Kho Dữ liệu

Làm sạch & tích hợp DL Lọc

CSDL DB Kho DL

H 1.5 Kiến trúc điển hình của một hệ thống khai phá dữ liệu

1.4. KDD VÀ CÁC LĨNH VỰC LIÊN QUAN

KDD là một lĩnh vực liên ngành có liên quan đến thống kê, học máy, cơ sở dữ liệu, thuật toán,
trực quan hóa, tính toán song song và hiệu năng cao, thu nhận kiến thức cho các hệ chuyên gia, và dữ liệu
trực quan. Rất khó để xác định một biên rõ ràng giữa các ngành này và biên giữa mỗi ngành này với
KDD. Tuy nhiên, mục tiêu thống nhất của chúng là rút trích tri thức từ các cơ sở dữ liệu lớn.

12
Các lĩnh vực học máy và nhận dạng mô hình kết hợp với KDD trong nghiên cứu lý thuyết và
thuật toán cho các hệ thống chiết xuất và biểu diễn các mô hình dữ liệu (có thể hiểu là tri thức hữu dụng
trong lượng dữ liệu lớn).

KDD cũng có nhiều điểm chung thống kê số liệu, đặc biệt là phân tích dữ liệu thăm dò
(Exploratory Data Analysis: EDA).

Một lĩnh vực khác có liên quan là tạo kho dữ liệu. KDD kết hợp với kỹ thuật OLAP tạo thành nền
tảng phục vụ quản lý và khai thác thông tin.

Hệ thống CSDL Thống kê

Học máy Khai phá dữ liệu Trực quan hóa

Thuật toán Các bộ môn khác

H 1.6 Tính liên ngành của khai phá dữ liệu

1.5. CÁC PHƯƠNG PHÁP KHAI PHÁ DỮ LIỆU

Để làm rõ các phương pháp khai phá dữ liệu, xét một CSDL giao dịch tín dụng để minh họa H 1.6

Nợ
(Debt) Khách hàng vỡ nợ

Khách hàng tiềm năng

Thu nhập (Income)

H 1.6 Một mẫu đơn giản gồm hai lớp dùng để minh họa
Cụ thể, H 1.6 mô tả một tập dữ liệu hai chiều gồm có 23 điểm mẫu. Mỗi điểm biểu thị cho một
khách hàng đã vay ngân hàng. Trục hoành biểu thị cho thu nhập, trục tung biểu thị cho tổng dư nợ của

13
khách hàng. Dữ liệu khách hàng được chia thành hai lớp: dấu chấm đậm biểu thị cho khách hàng bị vỡ
nợ, dấu chấm nhạt biểu thị cho khách hàng có khả năng trả nợ. Tập dữ liệu này có thể chứa những thông
tin có ích đối với các tổ chức tín dụng trong việc ra quyết định có cho khách hàng vay nữa không. Với ví
dụ trên ta có mẫu “Nếu thu nhập < t đồng thì khách hàng vay sẽ bị vỡ nợ”.
· Phân lớp (Classification): là việc học một hàm ánh xạ (hay phân loại) một mẫu dữ liệu vào
một trong số các lớp đã xác định (Hand 1981; Weiss & Kulikowski 1991; McLachlan 1992). Ví dụ: phân
lớp các xu hướng trong thị trường tài chính (Apte. & Hong) hay ứng dụng tự động xác định các đối tượng
đáng quan tâm trong các cơ sở dữ liệu ảnh lớn (Fayyad, Djorgovski, & Weir).
Hình 1.7 và Hình 1.8 cho thấy sự phân loại dữ liệu (tín dụng) được cho ở H 1.6 vào hai lớp.
Lưu ý rằng không thể dễ tách thành các lớp hoàn hảo bằng cách sử dụng một đường biên quyết định tuyến
tính.

Debt

Income

H 1.7 Biên của phân lớp đối với phương phương pháp láng giềng gần nhất

Debt

Income

H 1.8 Biên của phân lớp không tuyến tính (ví dụ sử dụng phương pháp mạng Neuron)

· Hồi quy (Regression): Hồi quy là học một hàm ánh xạ một mẫu dữ liệu thành một dự đoán
có giá trị thực. Có rất nhiều ứng dụng khai phá dữ liệu sử dụng hồi quy, ví dụ như dự đoán số lượng các
quần thể sinh học khi biết các giá trị đo được từ vi sóng, đánh giá khả năng tử vong của bệnh nhân nếu

14
biết các kết quả xét nghiệm chuẩn đoán, dự đoán nhu cầu tiêu thụ một sản phẩm mới bằng một hàm mục
tiêu, …
Hình 1.9 mô tả mẫu kết quả dự đoán tổng dư nợ của khách hàng với kỹ thuật khai phá dữ liệu
là hồi quy. Đường hồi quy tuyến tính cho thấy những khách hàng có thu nhập càng cao thì tổng dư nợ
càng lớn. Mẫu kết quả này không phù hợp với quy luật và điều đó là dễ hiểu vì ta thấy đường hồi quy
tuyến tính ở đây không vét cạn được hết các trường hợp xảy ra mà chỉ mô tả được mối liên hệ của một số
rất ít khách hàng. Đường hồi qui

Debt

Income

H 1.9 Một hồi qui tuyến tính đơn giản

· Phân cụm (Clustering): là tìm ra các tập xác định các cụm hay các lớp để mô tả dữ liệu
(Titterington, Smith & Makov 1985; Jain & Dubes 1988). Các cụm có thể tách rời, phân cấp hoặc gối lên
nhau (có nghĩa là một dữ liệu có thể vừa thuộc cụm này, vừa thuộc cụm kia). Các ứng dụng khai phá dữ
liệu có nhiệm vụ phân nhóm như: phát hiện tập các khách hàng có phản ứng giống nhau trong cơ sở dữ
liệu tiếp thị, xác định các loại quang phổ từ các phương pháp đo tia hồng ngoại (Cheeseman & Stutz).
Cluster 3
Debt
Cluster 1

Cluster 2
Income

H 1.10 Phân cụm khách hàng thành ba cụm (Cluster)


Hình 1.10 mô tả các mẫu của quá trình khai phá dữ liệu với nhiệm vụ phâncụm. Ở đây, các
mẫu là các nhóm khách hàng được xếp thành ba cụm gối lên nhau. Các điểm nằm trong cả hai cụm chứng
tỏ khách hàng có thể thuộc cả hai loại trạng thái. Liên quan chặt chẽ đến việc phân cụm là tác vụ đánh giá

15
mật độ xác suất, bao gồm các kỹ thuật đánh giá dữ liệu, hàm mật độ xác suất đa biến liên kết của các
biến/các trường trong cơ sở dữ liệu (Silverman 1986).
· Tổng hợp (summarization): là phương pháp tìm kiếm một mô tả tổng hợp cho một tập
con dữ liệu. Ví dụ như việc lập bảng các độ lệch chuẩn và trung bình cho tất cả các trường. Các phương
pháp mở rộng của phương pháp này liên quan đến các luật tổng hợp (Agrawal et al.), khai thác mối liên
hệ hàm giữa các biên (Zembowicz & Zytkow).
Các kỹ thuật tổng hợp thường được áp dụng cho các phân tích dữ liệu tương tác có tính thăm
dò và tạo báo cáo tự động.
· Mô hình hóa phụ thuộc (Dependency Modeling): tìm kiếm một mô hình mô tả sự phụ
thuộc giữa các đại lượng. Các mô hình phụ thuộc tồn tại dưới hai mức:
- mức cấu trúc: xác định (thường ở dạng đồ họa) các đại lượng phụ thuộc cục bộ với nhau.
- mức định lượng: xác định độ mạnh của sự phụ thuộc theo một độ đo nào đó. Ví dụ như các mạng
phụ thuộc xác suất, sử dụng tính độc lập các điều kiện để xác định cấu trúc của mô hình và độ tương quan
của các đại lượng xác định độ mạnh của sự phụ thuộc (Heckerman; Glymour et al., 1987). (Các mạng phụ
thuộc xác suất đang ngày càng tìm thấy nhiều ứng dụng trong các lĩnh vực khác nhau như phát triển các
hệ chuyên gia y tế nhằm thu thập thông tin, mô hình hóa gen di truyền của người).
· Đặc trưng mô hình (Model Representation): sử dụng ngôn ngữ thể hiện đặc trưng các
mẫu phát hiện được, nhằm xây dựng được mô hình biểu diễn chuẩn xác.
· Phát hiện sự thay đổi và lạc hướng (Change and Deviation Detection): Tập trung khai
thác những thay đổi đáng kể nhất từ các giá trị dữ liệu chuẩn hoặc đo được trước đó (Berndt & Cliffort;
Guyon et al.; Klosegen; Matheus et al.; Basseville & Nikiforov 1993).
· Lượng giá mô hình (Model Evaluation estimates): xác định độ phù hợp một mô hình
ứng với các tiêu chí của quá trình KDD. Đánh giá độ chính xác dự báo (hiệu năng). Đánh giá chất lượng
mô tả chính xác liên quan đến việc dự đoán, tính mới, tiện ích, và dễ hiểu của các mô hình trang bị. Cả
hai tiêu chí tính hợp lý và thống kê có thể được sử dụng để đánh giá mô hình. Ví dụ, xác định các tiêu chí
tốt nhất để lựa chọn các tham số cho các mô hình phù hợp với dữ liệu huấn luyện.
· Phương pháp tìm kiếm (Search Method): phương pháp tìm kiếm bao gồm hai thành
phần: tìm kiếm tham số và tìm kiếm mô hình. Trong tìm kiếm tham số, các giải thuật tìm kiếm các tham
số để tối ưu hóa các tiêu chuẩn đánh giá mô hình ứng với các dữ liệu quan sát được và mô hình mô tả đã
xác định. Một số bài toán thuộc lĩnh vực này thường sử dụng kỹ thuật “tham lam” để xác định nghiệm. Ví
dụ như phương pháp giảm gradient trong giải thuật lan truyền ngược (backpropagation) cho các mạng
neuron. Tìm kiếm mô hình xảy ra giống như một quá trình thử nghiệm ứng với các bộ tham số khác nhau,
Với mỗi một mô hình mô tả, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất lượng mô
hình. Thông thường, các phương pháp tìm kiếm mô hình sử dụng các kỹ thuật tìm kiếm heuristic (vì kích

16
thước lớn của không gian các mô hình có thể làm hạn chế việc xác định nghiệm, hơn nữa các giải pháp
đơn giản (closed form) thường không đạt được).

1.6. ỨNG DỤNG CỦA KDD

KDD được áp dụng trong nhiều lĩnh vực, có thể liệt kê một số lĩnh vực phổ biến
• Thông tin doanh nghiệp
- Phân tích dữ liệu tiếp thị và bán hàng
- Phân tích đầu tư
- Phê duyệt tín dụng
- Phát hiện gian lận
• Thông tin sản xuất
- Kiểm soát và lập kế hoạch
- Quản lý mạng
- Phân tích kết quả thử nghiệm
- ..
• Thông tin khoa học
- Dự báo thời tiết
- Cơ sở dữ liệu sinh học
- Dự đoán động đất
- ..
• Thông tin cá nhân

1.7. NHỮNG THÁCH THỨC TRONG ỨNG DỤNG VÀ NGHIÊN CỨU KỸ THUẬT
KHAI PHÁ DỮ LIỆU

a. Các vấn đề liên quan đến cơ sở dữ liệu (CSDL)


Đầu vào chủ yếu của một hệ thống khai thác tri thức là các dữ liệu thô trong cơ sở dữ liệu. Những
vấn đề khó khăn phát sinh trong khai phá dữ liệu chính là từ đây. Dữ liệu trong thực tế thường biến đổi,
không đầy đủ, lớn và bị nhiễu, vì vậy một số thách thức liên quan đến CSDL thường gặp:
· Dữ liệu lớn: Cho đến nay, các cơ sở dữ liệu với hàng trăm bảng và thuộc tính, hàng triệu bản
ghi và với kích thước đến gigabytes đã là chuyện bình thường. Thậm chí đã bắt đầu xuất hiện các
cơ sở dữ liệu có kích thước tới vài terabytes. Các phương pháp xử lý là đưa ra một ngưỡng cho cơ
sở dữ liệu, lấy mẫu, tiến hành bằng các phương pháp xấp xỉ hay xử lý song song (Agrawal et al,
Holsheimer et al).

17
· Kích thước lớn: không chỉ có số lượng bản ghi lớn mà số các trường trong cơ sở dữ liệu cũng
nhiều. Vì vậy mà kích thước của bài toán trở nên lớn hơn. Một tập dữ liệu có kích thước lớn dẫn
đến không gian tìm kiếm mô hình suy diễn rất lớn. Hơn nữa, nó cũng làm tăng khả năng một giải
thuật khai phá dữ liệu có thể tìm thấy các mẫu ngoại lệ. Biện pháp khắc phục là làm giảm kích
thước tác động của bài toán và sử dụng các tri thức đã biết để xác định các biến không phù hợp.
· Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung của chúng thay đổi
liên tục. Dữ liệu có thể thay đổi theo thời gian, việc khai phá dữ liệu cũng bị ảnh hưởng bởi thời
điểm quan sát dữ liệu. Việc thay đổi dữ liệu nhanh chóng có thể làm cho các mẫu khai thác trước
đó mất giá trị. Hơn nữa, các đại lượng trong cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay
đổi hoặc là tăng lên theo thời gian. Vấn đề này được giải quyết bằng các giải pháp tăng trưởng để
nâng cấp các mẫu và xem những thay đổi như là cơ hội để khai thác tìm kiếm các mẫu bị thay đổi.
· Các thuộc tính không phù hợp: Một đặc điểm quan trọng khác của dữ liệu là tính không phù
hợp nghĩa là các thành phần dữ liệu trở nên không thích hợp với mục đích của việc khai thác. Một
khía cạnh khác đôi khi cũng liên quan đến độ phù hợp là tính ứng dụng của một thuộc tính đối với
một tập con của cơ sở dữ liệu.
· Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính dữ liệu phù hợp có thể
ảnh hưởng đến việc khai phá dữ liệu. Bài toán đặt ra là cách thức bổ sung và kiểm tra giá trị các
thuộc tính hợp lý trong hệ thống dữ liệu đang được xử lý.
· Các thuộc tính bị thiếu: Một quan sát không đầy đủ cơ sở dữ liệu có thể làm cho các dữ liệu có
giá trị bị xem như có lỗi. Việc quan sát cơ sở dữ liệu phải phát hiện được toàn bộ các thuộc tính có
thể dùng để giải thuật khai phá dữ liệu có thể áp dụng nhằm giải quyết bài toán. Nếu không làm
được điều đó thì có nghĩa là đã có lỗi trong dữ liệu.
· Độ nhiễu và không chắc chắn: Đối với các thuộc tính đã thích hợp, mức độ của lỗi phụ thuộc
vào kiểu dữ liệu của các giá trị. Các giá trị của các thuộc tính khác nhau có thể thuộc nhiều kiểu
khác nhau: số thực, số nguyên, chuỗi và giá trị định danh, các giá trị định danh này có thể sắp xếp
theo thứ tự từng phần hoặc hoặc toàn phần, thậm chí có thể có cấu trúc ngữ nghĩa.
Một yếu tố của độ không chắc chắn chính là tính kế thừa hoặc độ chính xác mà dữ liệu cần
có, nói cách khác là độ nhiễu của dữ liệu. Dựa trên việc tính toán trên các phép đo, phân tích, mô
hình thống kê ngẫu nhiên được sử dụng để định nghĩa độ tương thích và độ dung sai của dữ liệu.
Thường thì các mô hình thống kê được áp dụng phụ thuộc vào kinh nghiệm người xử lý số liệu, vì
vậy, kết quả đạt được đôi khi mang tính chủ quan..
· Mối quan hệ phức tạp giữa các thuộc tính: các mối quan hệ giữa các thuộc tính và các phương
pháp phức hợp diễn tả tri thức của cơ sở dữ liệu yêu cầu các giải thuật phải có khả năng sử lý một
cách hiệu quả các thông tin này. Ban đầu, kỹ thuật khai phá dữ liệu chỉ được phát triển cho các bản

18
ghi có giá trị thuộc tính đơn giản. Tuy nhiên, ngày nay người ta đang tìm cách phát triển các kỹ
thuật nhằm rút ra mối quan hệ giữa các đại lượng.

b. Một số vấn đề khác


§ “Quá khít khao” (Overfitting): Khi một giải thuật tìm kiếm các tham số tốt nhất cho một
mô hình sử dụng một tập dữ liệu bị hạn chế, nó có thể rơi vào tình trạng chỉ phù hợp với
các dữ liệu đó mà không có khả năng đáp ứng cho các dữ liệu khác. Điều này làm cho
mô hình hoạt động rất kém chính xác. Các giải pháp khắc phục bao gồm đánh giá chéo
(cross-validation), hoặc sử dụng các biện pháp thống kê.

§ Đánh giá tầm quan trọng thống kê: Vấn đề (liên quan đến overfitting) xảy ra khi một hệ
thống tìm kiếm qua nhiều mô hình. Ví dụ như nếu một hệ thống kiểm tra N mô hình ở
mức độ quan trọng 0,001 thì với dữ liệu ngẫu nhiên trung bình sẽ có N/1000 mô hình
được chấp nhận là quan trọng. Để xử lý vấn đề này, ta có thể sử dụng phương pháp điều
chỉnh thống kê trong kiểm tra như một hàm tìm kiếm.

§ Khả năng biểu đạt của mẫu: Trong rất nhiều ứng dụng, điều quan trọng là những kết quả
khai thác được phải dễ hiểu. Vì vậy, các giải pháp được sử dụng thường là biểu diễn tri
thức và dữ liệu dưới dạng đồ họa, xây dựng cấu trúc luật với các đồ thị có hướng
(Gaines), biểu diễn bằng ngôn ngữ tự nhiên (Matheus et al.)

§ Sự tương tác với người sử dụng và các tri thức sẵn có: rất nhiều công cụ và phương pháp
khai phá dữ liệu không thực sự tương tác với người dùng, không dễ dàng kết hợp cùng
với các tri thức đã biết. Nhiều biện pháp nhằm khắc phục vấn đề này như sử dụng cơ sở
dữ liệu suy diễn để phát hiện tri thức, những tri thức này sau đó được sử dụng làm mẫu
cho việc tìm kiếm khai phá dữ liệu về sau.

Câu hỏi và bài tập

1. Phân biệt bài toán khai phá dữ liệu với bài toán kiểm nghiệm giả thuyết thống kê.
2. Phân tích vai trò của cơ sở tri thức trong một hệ thống khai phá dữ liệu (H 1.15)
3. Phân biệt bài toán khai phá dữ liệu mô tả với bài toán khai phá dữ liệu dự đoán.
4. Phân biệt bài toán Phân lớp với bài toán Phân cụm.
5. Trình bày những thách thức và ứng dụng của kỹ thuật khai phá dữ liệu.

19
Chương 2

TIỀN XỬ LÝ DỮ LIỆU

Trong quá trình phát hiện tri thức và khai thác dữ liệu (KDD), các phương pháp dự báo, mô tả có
thể có rất nhiều công cụ lý thuyết toán học hỗ trợ. Tuy nhiên, trên thực tế tất cả những phương pháp này
có thể bị hạn chế bởi sự thiếu hụt, sai lệch của các dữ liệu liên quan. Vì vậy, tiền xử lý dữ liệu là một
bước quan trọng trong quá trình KDD, chất lượng các quyết định phải dựa trên chất lượng của dữ liệu.
Trong cuốn Data Preparation for Data Mining, Dorian Pyle ước lượng khoảng 60% của tiến trình khai
phá dữ liệu là để tiền xử lí dữ liệu.

Chất lượng dữ liệu: (data quality) được đánh giá qua các tiêu chí

- Tính chính xác (accuracy): giá trị được ghi nhận đúng với giá trị thực.
- Tính hiện hành (currency/timeliness): giá trị được ghi nhận không bị lỗi thời.
- Tính toàn vẹn/ đầy đủ (completeness): tất cả giá trị dành cho một biến/thuộc tính đều được ghi
nhận.
- Tính nhất quán (consistency): tất cả giá trị dữ liệu đều được biểu diễn như nhau trong tất cả
các trường hợp.

Những tác vụ chính trong quá trình tiền xử lý dữ liệu là:

- Tổng hợp dữ liệu (Descriptive data summarization)


v Nhận diện đặc điểm chung của dữ liệu và sự hiện diện của nhiễu hoặc các phần tử quan
sát ngoại lệ (outliers)
- Làm sạch dữ liệu (Cleaning Data)
v Xử lý dữ liệu bị thiếu (missing data)
v Xử lý dữ liệu bị nhiễu (noisy data)
- Tích hợp dữ liệu (Data integration)
v Tích hợp lược đồ (schema integration) và so trùng đối tượng (object matching)
v Xử lý dư thừa (redundancy)
v Phát hiện và xử lý mâu thuẫn giá trị dữ liệu (detection and resolution of data value
conflicts)
- Chuyển đổi dữ liệu (data transformation)
v Làm trơn dữ liệu (smoothing)
v Kết hợp dữ liệu (aggregation)

20
v Tổng quát hóa dữ liệu (generalization)
v Chuẩn hóa dữ liệu (normalization)
v Xây dựng thuộc tích đặc trưng (attribute/feature construction)
- Rút gọn dữ liệu (data reduction)
v Kết hợp khối dữ liệu (data cube aggregation)
v Chọn tập con các thuộc tính (attribute subset selection)
v Thu giảm chiều (dimensionality reduction)
v Thu giảm số lượng (numerosity reduction)
v Tạo phân cấp ý niệm (concept hierarchy generation) và rời rạc hóa (discretization)

2.1 CÁC LOẠI DỮ LIỆU SỬ DỤNG TRONG KHAI PHÁ DỮ LIỆU

Có nhiều kiểu dữ liệu dùng để biểu diễn các thuộc tính của các đối tượng, có thể liệt kê sáu loại dữ
liệu phổ biến:

Kiểu dữ liệu Ý nghĩa


Định danh là tập các nhãn dùng để mô tả, phân loại (categories) các đối tượng.
(Nominal data) Ví dụ: tên màu, mã nhân viên
Nhị phân là một trường hợp đặc biệt của kiểu dữ liệu định danh, các dữ liệu thuộc kiểu
này chỉ mang một trong 2 giá trị.
(Binary data)
Ví dụ: kiểu boolean (true, false), giới tính(nam, nữ)
Thứ tự là tập các phần tử chỉ định một thứ tự được sắp.
(Ordinary data) Ví dụ: Xếp_loại (Kém, Trung bình, Khá, Giỏi)
Số nguyên là tập các số nguyên. Các phần tử thuộc kiểu này có thể chịu tác động của các
phép toán số học để kết xuất phần tử mới.
(Integer)
Khoảng Dữ liệu khoảng (một đôi khi nhận giá trị là số nguyên) là một tập giá trị mà
các phần tử cách đều nhau (thường dùng làm các thang đo).
(Interval data)
Ví dụ: Nhiệt độ được đo theo độ C;
Tỷ lệ-khoảng Tương tự kiểu dữ liệu khoảng, điểm khác biệt là các phần tử thuộc kiệu dữ liệu
này có thể so sánh như là bội số với nhau. Dữ liệu kiểu tỷ lệ có thể thực hiện
(Ratio-scaled
các phép nhân, chia.
data)
Ví dụ: Trọng lượng, 10kg là hai lần 5kg; Sự khác biệt giữa 1 và 2 tương tự
như khác biệt gữa 3 và 4

Trong khai phá dữ liệu, các thuộc tính được phân thành hai loại dựa vào kiểu dữ liệu của chúng:
- Phân loại (categorical): các thuộc tính có dữ liệu thuộc kiểu Định danh, Nhị phân, Thứ tự
- Liên tục (continuous): các thuộc tính có dữ liệu thuộc kiểu Số nguyên, Khoảng, Tỷ lệ-khoảng

21
2.2 TỔNG HỢP DỮ LIỆU

Xác định các đại lượng số (đại lượng thống kê mô tả) để đo độ tập trung (central tendency) và
độ phân tán (dispersion) của dữ liệu. Các đại lượng này kết hợp với đồ thị phân phối tần số sẽ cho
một bức tranh rõ nét chi tiết về tập dữ liệu cần xử lý.

- Các đại lượng đo lường độ tập trung và phân tán:

Các đại lượng đo lường độ tập trung phổ biến

Trung bình cộng đơn n n: cỡ mẫu


giản åx
i =1
i xi là giá trị quan sát thứ i
x=
(Mean) n
Trung bình cộng có {x1, x2,..,xn}: tập dữ liệu mẫu

n

trọng số w i xi
{w1, w2,..,wn}: tập trọng số
i 1
Xw  tương ứng với các giá trị thuộc
(Weighted mean)
w
n
tập dữ liệu mẫu
i
i 1

Trung vị Me  x[(n+1)/2] , khi n lẻ Tập dữ liệu mẫu {x1, x2,..,xn}


gồm n phần tử đã được sắp.
(Meadian) Me  ( x[n / 2 ]  x[( n2)/ 2] ) / 2 , khi n chẳn

Yếu vị Là giá trị được gặp nhiều lần trong


tập dữ liệu mẫu
(Mode)
Trung bình nhân x  n x1 x2 ..xn Tập dữ liệu mẫu {x1, x2,..,xn}
gồm n phần tử
(Geometri mean)
Giá trị trung bình của Tập dữ liệu mẫu {x1, x2,..,xn}
các giá trị lớn nhất và gồm n phần tử
( xmax  xmin ) / 2
nhỏ nhất trong tập dữ
liệu (Midrange)
Các đại lượng đo lường sự phân tán
Phân vị Công thức xác định vị trí phân vị thứ p Phân vị thứ p (0<p<100) trong
một dãy tăng dần gồm n phần tử
(Percentiles) p
i ( n  1) là một giá trị chia dãy số gồm 2
100 phần, một phần gồm p% số quan
sát có giá trị nhỏ hơn hoặc bằng
giá trị phân vị thứ p
Khoảng biến thiên R  xmax  xmin
(Range)
Độ trãi giữa IRQ = Q3- Q1 Q1 phân vị thứ 25
(Interquartile Range) Q3 phân vị thứ 75

22
Phương sai
(X  X )
n
2
i
(Variance) i1
s2  X : trung bình cọng đơn giản
n 1

Độ lệch chuẩn
(X  X )
n
2
i
(Standard deviation) i1 X : trung bình cọng đơn giản
s
n 1

Quan sát ngoại lệ Các giá trị này thường nằm cách trên
Q3 hay dưới Q1 một khoảng
(Outliers)
1.5xIQR
Trong thống kê, người ta còn sử dụng biểu đồ hộp (BOXPLOT), là một đối tượng hình ảnh thể hiện
đồng thời các thông tin: giá trị cực đại, giá trị cực tiểu, 3 tứ phân vị (Q1, Q2, Q3), các quan sát ngoại lệ.

2.3 LÀM SẠCH DỮ LIÊU

a. Xử lý dữ liệu bị thiếu (missing data)

Dữ liệu bị thiếu là dữ liệu không có sẵn khi cần xử lý. Dữ liệu bị thiếu có thể là do yếu tố khách quan
(thiết bị trục trặc, không tồn tại khi nhập dữ liệu ..) hoặc do yếu tố chủ quan (xóa do không phù hợp với
các dữ liệu khác, không nhập dữ liệu do sự hiểu lầm..

Các giải pháp khắc phục:

v Bỏ qua các bộ chứa dữ liệu thiếu:


- Phương pháp này thường được sử dụng khi dữ liệu không thuộc về lớp đã được
nhận dạng
- Phương pháp này rất kém hiệu quả khi phần trăm giá trị thiếu trong từng thuộc
tính là đáng kể.
v Điền vào những giá trị còn thiếu một cách thủ công:
- Rất tốn thời gian và không khả thi nếu áp dụng với một tập dữ liệu lớn với nhiều
giá trị còn thiếu
v Sử dụng một hằng toàn cục để điền vào giá trị còn thiếu:
- Thay thế các giá trị thiếu bằng cùng một hằng số (chú ý: hệ thống có thể nhầm
lẫn).
- Sử dụng một giá trị trung bình của thuộc tính để điền vào giá trị còn thiếu:
v Sử dụng giá trị phù hợp để điền vào giá trị còn thiếu:
- Được xác định với các công cụ thống kê Bayesian hay dung nạp theo cây quyết
định.
b. Xử lý dữ liệu nhiễu (noisy data)

23
Phần tử ngoại lệ (Outliers) là những dữ liệu (đối tượng) không tuân theo đặc tính/hành vi chung của
tập dữ liệu (đối tượng). Dữ liệu nhiễu (Noisy data) là các phần tử ngoại lệ cần loại bỏ. Dữ liệu nhiễu gặp
phải có thể do: các công cụ thu thập dữ liệu gặp lỗi, nhập dữ liệu, truyền dữ liệu, giới hạn về công nghệ
hay không nhất quán trong quy ước đặt tên ..

Các giải pháp khắc phục:


v Giải pháp nhận diện phần tử ngoại lệ
- Dựa trên phân bố thống kê (statistical distribution-based)
- Dựa trên khoảng cách (distance-based)
- Dựa trên mật độ (density-based)
- Dựa trên độ lệch (deviation-based)
v Giải pháp giảm thiểu nhiễu

Binning:

Các kỹ thuật Binning phân các dữ liệu “láng giềng” vào từng giỏ (bin) ứng với các tiêu chí: độ
rộng (số khoảng) bằng nhau, chiều sâu (số phần tử) bằng nhau, cùng độ phụ thuộc lớp, hay entropy .. sau
đó làm trơn (smooth) giá trị của mỗi giỏ bởi các giá qui định (nominal value). Các giá qui định của mỗi
nhóm có thể là: giá trị trung bình, trung vị hay giá trị biên gần nhất ... Các kỹ thuật này thích hợp loại bỏ
các giá trị ngoại lệ.

Ví dụ : - Tạo Bin dữ liệu dựa vào tiêu chí độ rộng bằng nhau:

Giả sử có một tập dữ liệu nhiệt độ từ 16 đến 37 độ. Ta có: 37-16 = 21. Tạo 7 Bin dữ liệu
với độ rộng bằng 3.

16 17 20 21 22 23 23 25 28 28 33 34 36 37

2 2 2 2 2

H 2.1 Tạo Bin dữ liệu với độ rộng bằng nhau

- Làm trơn các Bin theo:

Giá trị trung bình Trung vị Giá trị biên


Bin 1: 16.5 16.5 Bin 1: 16.5 16.5 Bin 1:16 17
Bin 2: 20.5 20.5 Bin 2: 20.5 20.5 Bin 2: 20 21

24
Bin 3: 23.3 23.3 23.3 23.3 Bin 3: 23 23 23 23 Bin 3: 22 22 25 25
Bin 4: 28 28 Bin 4: 28 28 Bin 4: 28 28
Bin 5: 33.5 33.5 Bin 5: 33.5 33.5 Bin 5: 33 34
Bin 6: 36.5 36.5 Bin 6: 36.5 36.5 Bin 6: 36 37
- Tạo Bin dựa vào giá trị phụ thuộc của lớp
Mỗi một lớp chứa tối đa 3 phần tử liên tiếp thuộc cùng một lớp logic

16 17 20 21 22 23 24 25 33 34 36 37 40 41 45
no no yes yes yes no yes yes yes no yes no yes yes yes

H 2.2 Tạo Bin dữ liệu dựa vào giá trị lớp

Hồi quy (regression)

Dữ liệu có thể làm trơn bằng cách khớp các giá trị với một hàm nào đó, chẳng hạn như hàm hồi
qui. Phương pháp hồi qui nghiên cứu mối liên hệ phụ thuộc của một biến (gọi là biến phụ thuộc) vào một
hay nhiều biến khác (gọi là biến độc lập), với ý tưởng ước lượng và/hoặc dự đoán giá trị trung bình (tổng
thể) trên cơ sở các giá trị biết trước (trong mẫu) của các biến độc lập.

Y Y Y

X X X
Liên hệ phi tuyến Không có liên hệ Liên hệ tuyến tính
H 2.3 Các dạng liên hệ giữa hai biến

Phân cụm (Clustering): Các giá trị ngoại lệ có thể được dò bởi sự phân cụm, trong đó các giá trị
được tổ chức thành các cụm, hay còn gọi là các "cluster". Bằng trực giác, các giá trị rơi ra ngoài tập hợp
của các cluster có thể được xem như là các giá trị ngoại lệ. (H 2.4)

Nhiều phương pháp làm trơn dữ liệu cũng chính là các phương pháp rút gọn và sự rời rạc hóa dữ
liệu. Ví dụ, kỹ thuật binning mô tả ở trên có thể rút gọn một số giá trị khác nhau cho một thuộc tính. Các
phương pháp này là một hình thức rút gọn dữ liệu logic cơ sở (logic-based data) cho các phương thức
KTDL. Phương pháp cây quyết định (decision tree) thực hiện một cách lặp đi lặp lại sự so sánh giá trị trên
một tập dữ liệu đã được sắp xếp để tiến hành phân cấp dữ liệu, quá trình này cũng là quá trình rời rạc hóa
dữ liệu dùng trong việc làm trơn dữ liệu.

25
H 2.4 Phân cụm để phát hiện phần tử ngoại lệ

c. Xử lý dữ liệu không nhất quán

Dữ liệu không nhất quán là dữ liệu được ghi nhận khác nhau hay không phản ánh đúng ngữ nghĩa
cho cùng một đối tượng/thực thể

Ví dụ: ngày bắt đầu làm việc của một nhân viên được dạng: yyyy/mm/dd và dd/mm/yyyyy trong
cùng một CSDL : 2004/12/25 và 25/12/2004

Nguyên nhân của dữ liệu không nhất quán là do:

- Sự không nhất quán trong các qui ước đặt tên hay mã hóa dữ liệu
- Định dạng không nhất quán của các vùng nhập liệu
- Thiết bị ghi nhận dữ liệu khác nhau, …

Để xử lý dữ liệu không nhất quán có các giải pháp phổ biến sau:

- Tận dụng siêu dữ liệu, ràng buộc dữ liệu,


- Sự kiểm tra của nhà phân tích dữ liệu cho việc nhận diện
- Điều chỉnh dữ liệu không nhất quán thủ công
- Các giải pháp biến đổi/chuẩn hóa dữ liệu tự động

2.4 TÍCH HỢP VÀ CHUYỂN ĐỔI DỮ LIÊU

a. Tích hợp dữ liệu quá trình trộn dữ liệu từ các nguồn khác nhau vào một kho dữ liệu nhằm
phục vụ cho quá trình khai phá dữ liệu.
Các vấn đề cần quan tâm trong tác vụ tích hợp dữ liệu bao gồm:
v Vấn đề nhận dạng thực thể (entity identification problem)
- Các thực thể (object/entity/attribute) đến từ nhiều nguồn dữ liệu.
- Hai hay nhiều thể hiện khác nhau diễn tả cùng một thực thể thực.

26
Ví dụ:

- ở mức lược đồ (schema): thuộc tính mã số nhân viên được ký hiệu MSNV# trong nguồn
S1 và MA_NV# trong nguồn S2.
- ở mức thể hiện (instance): “R & D” trong nguồn S1 và “Research & Development” trong
nguồn S2 hay “Male” và “Female” trong nguồn S1 và “Nam” và “Nữ” trong nguồn S2.

Giải pháp: Tích hợp lược đồ (schema integration) + So trùng đối tượng (object matching)

v Vấn đề dư thừa (redundancy)


- Trong quá trình tích hợp dữ liệu, giá trị của một thuộc tính có thể được suy dẫn từ các
thuộc tính khác, gây nên sự trùng lắp dữ liệu (duplication). Nguyên nhân của sự dư thừa này là do: tổ
chức dữ liệu kém, không nhất quán trong việc đặt tên thuộc tính.

Giải pháp: Phát hiện dư thừa bằng phân tích tương quan (correlation analysis) nhận biết sự suy
dẫn giữa các thuộc tính (*1):

- Đối với các thuộc tính số (numerical attributes), đánh giá tương quan giữa hai
thuộc tính bằng các hệ số tương quan (correlation coefficient).
- Đối với các thuộc tính rời rạc (categorical/discrete attributes), đánh giá tương
quan giữa hai thuộc tính với phép kiểm thử Khi- bình phương (c2).
v Vấn đề mâu thuẫn giá trị dữ liệu (data value conflicts)
- Liên quan đến cấu trúc và tính không thuần nhất (heterogeneity) về ngữ nghĩa
(semantics) của dữ liệu
b. Chuyển đổi dữ liệu: quá trình biến đổi hay kết hợp dữ liệu vào những dạng thích hợp cho quá
trình khai phá dữ liệu
v Làm trơn dữ liệu (smoothing): Loại bỏ/giảm thiểu nhiễu khỏi dữ liệu.
- Các kỹ thuật thường dùng: Binning, Hồi qui, Phân cụm,..
v Kết hợp dữ liệu (aggregation)
- Chuyển dữ liệu đang xử lý sang dữ liệu ở mức kém chi tiết hơn, hỗ trợ việc phân
tích dữ liệu ở nhiều độ mịn thời gian khác nhau.
v Tổng quát hoá (generalization)
- Chuyển đổi dữ liệu cấp thấp/nguyên tố/thô sang các khái niệm ở mức cao hơn
thông qua các phân cấp khái niệm.
v Chuẩn hoá (normalization)

1
Xem [13] trang 340 - 356

27
- Các giá trị thuộc tính được chuyển đổi vào một miền trị nhất định được định
nghĩa trước.
Các kỹ thuật chuẩn hóa phổ biến:
· Chuẩn hóa min-max (min-max normalization)

Giả sử rằng minA và maxA là những giá trị cực tiểu và cực đại của thuộc tính A. Phép chuẩn hóa
cực tiểu – cực đại ánh xạ một giá trị v của A thành v’ trong miền giá trị [new_minA, new_maxA] bằng cách
sử dụng biểu thức chuyển đổi:
v - min A
v'= (new_max A - new_min A )  new_min A
max A - min A
Kỹ thuật chuẩn hóa này giữ được những mối quan hệ giữa những giá trị dữ liệu gốc. Tuy nhiên,
cần lưu ý phép chuẩn hóa này có thể gặp một số lỗi “vượt ra khỏi phạm vi (out of bounds)” nếu sau đó
có một trường hợp nhập dữ liệu để chuẩn hóa vượt ra khỏi phạm vi miền giá trị gốc của A.

· Chuẩn hóa z-score (z-score normalization)

Các giá trị của thuộc tính A được chuẩn hóa dựa trên độ lệch trung bình và độ lệch chuẩn của A.

Một giá trị v của A được chuẩn hóa thành giá trị v’ bằng cách tính:
v- mean A
v' =
stand_dev A
Trong đó, meanA và stand_devA là các giá trị lệch trung bình và giá trị lệch chuẩn tương ứng của
thuộc tính A. Phương pháp chuẩn hóa này hữu ích khi chưa biết giá trị cực tiểu và giá trị cực đại thực sự
của A, hay khi có những giá trị ngoại lai chi phối quá trình chuẩn hóa cực tiểu-cực đại.

· Chuẩn hóa bằng cách di chuyển dấu chấm thập phân (Normalization by decimal
caling)

Chuẩn hóa bằng cách di chuyển dấu thập phẩn của những giá trị của thuộc tính A. Số dấu thập
phân được di chuyển sẽ phụ thuộc vào giá trị tuyệt đối cực đại của A. Một giá trị v của A được chuẩn hóa
thành giá trị v’ bằng cách tính sau:
v
v'
10 j
Trong đó, j là số nguyên nhỏ nhất sao cho Max(|v’|) < 1

v Xây dựng thuộc tính/đặc tính (attribute/feature construction)

Các thuộc tính mới được xây dựng và thêm vào từ tập các thuộc tính sẳn có, nhằm:

- Hỗ trợ kiểm tra tính chính xác và giúp hiểu cấu trúc của dữ liệu nhiều chiều.
- Hỗ trợ phát hiện thông tin thiếu sót về các mối quan hệ giữa các thuộc tính dữ liệu.

28
2.5 RÚT GỌN DỮ LIỆU

Rút gọn dữ liệu là thu hẹp kích thước của tập dữ liệu mà không ảnh hưởng đến chất
lượng khai phá dữ liệu.
Việc rút gọn dữ liệu nhằm:
- Phù hợp với khả năng xử lý của một số chương trình khai phá dữ liệu.
- Giảm thời gian khai phá.

Chuẩn bị
Rút gọn
Dữ liệu
kích thước

Dạng chuẩn

Đánh giá Khai phá


Dữ liệu

Dữ liệu thu gọn

H 2.5 Các tác vụ chính của việc rút gọn dữ liệu

Các chiến lược thường được áp dụng để rút gọn dữ liệu:

v Tổng hợp các khối dữ liệu (data cube aggregation)

H 2.6 Kết hợp dữ liệu tạo thành các mức dữ liệu nhỏ nhất đáp ứng yêu cầu xử lý

Đối với dữ liệu dạng số (numerical), có thể gộp dữ liệu bằng các hàm nhóm: average, min, max,
sum, count, …. Việc gộp dữ liệu sẽ tạo ra dữ liệu ở các mức trừu tượng khác nhau. Mức trừu tượng càng
cao giúp thu giảm lượng dữ liệu càng nhiều.

v Rút gọn chiều, số lượng dữ liệu (dimensionality reduction, numerosity reduction)


Những tập dữ liệu phục vụ cho việc phân tích có thể chứa đựng hàng trăm thuộc tính, phần
nhiều trong số đó có thể không phù hợp với tác vụ khai phá hay dư thừa.

29
Ví dụ, nếu tác vụ là nhằm phân lớp các khách hàng theo khả năng khách hàng có thể mua một đĩa
CD hay không (?) khi được thông báo về việc giảm giá bán, thuộc tính như số điện thoại của khách hàng
có thể không cần thiết khác với các thuộc tính tuổi hay sở thích_âm nhạc.
Lưu ý rằng việc loại bỏ có độ tin cậy thấp có thể dẫn đến bỏ qua những thuộc tính cần thiết, hay
giữ lại những thuộc tính không cần thiết có thể tạo ra những mẫu được khám phá có chất lượng thấp hoặc
làm chậm lại quá trình khai phá do tạo ra một số thuộc tính không cần thiết hay dư thừa.
Rút gọn chiều làm giảm kích thước tập dữ liệu bằng cách loại bỏ những thuộc tính (hay chiều) ra
khỏi dữ liệu. Sự loại bỏ này nhằm tìm ra một tập cực tiểu các thuộc tính sao cho sự phân bố xác xuất
(probability distribution) của các lớp dữ liệu gần giống như sự phân bố ban đầu (khi sử dụng tất cả các
thuộc tính). Độ phức tạp của các thuật toán rút gọn thuộc tính thường là NP-khó, vì vậy phổ biến để rút
gọn chiều là sử dụng phương pháp heuristic được để chọn các tập thuộc tính con.
o Một số phương pháp heuristic để chọn thuộc tính tốt nhất:
Ø Phép chọn thuộc tính tiến theo từng bước:

Lặp: thuộc tính đơn tốt nhất sẽ được lấy ra

Cho đến khi: Không còn chọn được thuộc tính cần lấy từ tập các thuộc tính.

Ø Khử lùi thuộc tính theo từng bước:

Lần lượt khử thuộc tính không phù hợp.

Ø Phép kết hợp chọn và khử các thuộc tính tốt nhất theo từng bước.
Ø Phương pháp chia nhánh: Sử dụng phép khử thuộc tính và sử dụng chiến lược quay lui
(backtracking)
Ø Phương pháp qui nạp theo cây quyết định:

Kỹ thuật quy nạp theo cây quyết định: cây quyết định được xây dựng có một cấu trúc tương tự như
biểu đồ luồng (flow chart):

· Mỗi nút trong (không phải nút lá) biểu diễn một phép kiểm tra đối với một thuộc tính, mỗi
nhánh sẽ tương ứng với một kết quả của phép kiểm tra đó, mỗi nút lá biểu diễn một dự đoán lớp.
· Tại mỗi nút, thuật toán chọn ra một thuộc tính “tốt nhất” để phân hoạch dữ liệu thành những
lớp riêng.

Kỹ thuật qui nạp theo cây quyết định được sử dụng để chọn tập thuộc tính con như sau:

§ Một cây quyết định sẽ được xây dựng từ những dữ liệu đã cho.
§ Tất cả các thuộc tính không xuất hiện trên cây được xem như là không cần thiết.
§ Tập các thuộc tính xuất hiện trong cây sẽ tạo nên một tập thuộc tính được rút gọn.

30
Chọn thuộc tính tiến Khử lùi thuộc tính Xây dựng cây quyết định
Tập thuộc tính ban Tập thuộc tính ban Tập thuộc tính ban đầu: {A1,A2,A3,A4,A5,A6}
đầu: đầu:
{A1,A2,A3,A4,A5,A6} {A1,A2,A3,A4,A5,A6} A4?
Tập rút gọn xuất phát: Þ {A1,A3,A4,A5,A6} Y N
{} Þ {A1, A4,A5,A6}
A1?
A6?
Þ {A1} Tập thuộc tính rút gọn Y N Y N

Þ {A1, A4} { A1, A4, A6}


Tập thuộc tính rút gọn Lớp 1 Lớp 2
Lớp 3 Lớp 4
{ A1, A4, A6}
Tập thuộc tính rút gọn
{ A1, A4, A6}

H 2.7 Một số phương pháp rút gọn thuộc tính

Rút gọn số lượng (numerosity reduction): Làm giảm bớt kích thước dữ liệu, có thể sử dụng các kỹ
thuật sau:

Nén dữ liệu: Các kỹ thuật mã hóa hay chuyển đổi dữ liệu được áp dụng nhằm đạt được một biểu
diễn được rút gọn hay “nén” của dữ liệu gốc. Nếu dữ liệu gốc có thể được tái xây dựng từ những dữ liệu
nén mà không bị mất thông tin nào, thì kỹ thuật nén dữ liệu được sử dụng được gọi là bảo toàn (lossless).
Ví dụ như nén dữ liệu dạng chuỗi. Nếu chúng ta chỉ có thể xây dựng lại dữ liệu xấp xỉ với dữ liệu gốc, thì
kỹ thuật nén được gọi là không bảo toàn (lossy). Ví dụ như nén dữ liệu dạng Audio/video

Hai phương pháp nén dữ liệu không bảo toàn hiệu quả và được sử dụng rộng rãi: chuyển đổi
wavelet và phân tích các thành phần chính.

Rút gọn những số lớn: dữ liệu được thay thế hay được ước lượng bằng các biểu diễn dữ liệu
khác nhỏ hơn như những mô hình tham số (chỉ cần lưu lại những tham số mô hình thay vì lưu lại những
dữ liệu thực), hay các phương pháp không dùng tham số như phân cụm, tạo mẫu, và sử dụng histogram.

v Rời rạc hóa và tạo các phân cấp khái niệm (discretization, concept hierarchy generation):
o Giảm số lượng các giá trị cho một thuộc tính số đã cho bằng cách chia miền của
thuộc tính đó thành nhiều khoảng. Sau đó, các nhãn của khoảng có thể được sử dụng
để thay thế những giá trị dữ liệu thực sự.
o Giảm dữ liệu bằng cách thu thập và thay thế những khái niệm mức thấp. Ví dụ như
những giá trị dạng số cho thuộc tính tuổi bằng các khái niệm mức cao hơn như thiếu
niên, thanh niên, trung niên, tráng niên.

31
Để rời rạc hóa cho dữ liệu dạng số, các kỹ thuật phổ biến thường được áp dụng:
o Binning
o Phân tích Histogram
o Phân tích Clustering
o Rời rạc hoá dựa trên Entropy
o Phân đoạn bằng phân hoạch tự nhiên
Phân tích Histogram: bao gồm các bước
· Sử dụng kỹ thuật binning để xấp xỉ các phân bố dữ liệu và là một dạng rút gọn dữ liệu rất phổ
biến. Chia dữ liệu thành những bucket và lưu trữ giá trị trung bình cộng cho từng bucket
· Một histogram cho một thuộc tính A là phân bố dữ liệu của A thành những tập con rời nhau, hay
gọi là những bucket.
· Những bucket này được hiển thị trên một hệ trục Descaster, chiều cao (và diện tích) của một
bucket thông thường biểu diễn tần suất trung bình của giá trị được biểu diễn bởi bucket đó.
· Nếu mỗi bucket chỉ biểu diễn một cặp giá trị/tần suất của một thuộc tính đơn lẻ, những bucket
đó được gọi là singleton bucket. Thông thường, bucket biểu diễn những miền giá trị liên tục của
thuộc tính đã cho.
Ví dụ: Những dữ liệu sau đây là một danh sách giá thành của những mặt hàng được bán nhiều
(được làm tròn đến dollar gần nhất). Những con số đã được sắp xếp theo thứ tự.

1, 1, 5, 5, 5, 5, 5, 8, 8, 10, 10, 10, 10, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15, 18, 18, 18, 18, 18, 18,
18, 18, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 25, 25, 25, 25, 25, 28, 28, 30, 30, 30.

H 2.8 Một histogram cho price sử dụng singleton bucket biểu diển giá trị/ tần suất giá thành

Gom các singleton bucket thành các bucket có độ rộng bằng nhau (10)

32
H 2.9 Một histogram của thuộc tính price độ rộng đồng nhất là $10.

Phân đoạn bằng phân hoạch tự nhiên: những miền giá trị dạng số được phân hoạch thành các
khoảng liên quan đến nhau nhằm trực quan, dễ đọc.

Ví dụ, mức lương hàng năm thường được chia thành những miền giá trị như [$50,000, $60,000)
hơn những miền như [$51263.98, $860872.34) là kết quả thu được từ một số quá trình phân tích phân
cụm phức tạp. Trong trường hợp tổng quát, việc phân đoạn được thực hiện theo Luật 3-4-5:

Ý tưởng: Phân hoạch miền dữ liệu đã cho thành 3, 4, hay 5 đoạn có chiều dài tương tự nhau một
cách đệ quy, theo từng mức (3, 4 hay 5) dựa trên số lượng giá trị phân biệt chứa ký số đáng kể nhất
(Msd: Most significant digit- là số nhỏ nhất chứa ký số có trọng số lớn nhất).

Luật được thực hiện như sau:

· Nếu một đoạn chứa 3, 6, 7 hay 9 giá trị phân biệt chứa ký số đáng kể nhất, thì sẽ phân hoạch miền
thành 3 đoạn (có độ rộng bằng nhau ứng với 3, 6, 9 và theo tỉ lệ 2-3-2 ứng với 7)
· Nếu một đoạn chứa 2, 4 hay 8 giá trị phân biệt ở con số chứa ký số đáng kể nhất, thì sẽ phân
hoạch miền thành 4 đoạn có độ rộng bằng nhau;
· Nếu một đoạn chứa 1, 5 hay 10 giá trị phân biệt chứa ký số đáng kể nhất, thì phân hoạch miền
thành 5 đoạn độ rộng bằng nhau.
· Luật trên tiếp tục áp dụng đệ qui cho từng đoạn con.

Dữ liệu thực tế thường chứa nhiều giá trị ngoại lai có thể làm sai lệch phương pháp rời rạc hóa
dựa trên giá trị min và max của dữ liệu thu được. Ví dụ, tài sản của một số ít người có thể lớn hơn rất
nhiều so với số khác trong cùng một tập dữ liệu. Phương pháp rời rạc hóa dựa trên các giá trị tài sản lớn
nhất có thể dẫn đến một hệ thống phân cấp có độ dốc cao. Do đó rời rạc hóa dữ liệu có thể được thực hiện
dựa trên miền giá trị dữ liệu mô tả phần lớn dữ liệu đã cho (vd: khoảng giữa của dữ liệu sau khi cắt đi mỗi

33
đầu 5%). Các giá trị quá cao hay quá thấp nằm ngoài khoảng giữa này sẽ hình thành các khoảng riêng
biệt. Ví dụ sau mô tả sự sử dụng luật 3-4-5 cho việc tự động tạo một hệ thống phân cấp bằng số

Ví dụ: Tạo các phân đoạn cho thuộc tính profit (lợi nhuận) có miền giá trị: -$351,976.000 đến
$4,700,896.50.
- Xét khoảng giữa dữ liệu của miền trị cần xử lý (sau khi cắt bỏ 5% ở hai biên): [-159,876..1,838,76]
Msd của miền này là 1,000,000; Làm tròn biên của miền đang xét theo Msd:
[-159,876..1,838,76] Í [-1,000,000 .. +2,000,000], miền này có 2 số có giá trị ký số đáng kể nhất
phân biệt, nên phân hoạch đoạn này thành 3 đoạn đều nhau:
(-1,000,000 ..0]; (0..+1,000,000]; (+1,000,000..+2,000,000]
Chú ý để các miền con là một phân hoạch, qui ước mỗi miền con biễu diễn bởi nửa đoạn (l..r].

Msd=1.000.000

LOW’=-1.000.000 HIGH’=2.000.000

(HIGH’-LOW’)/msd=3

Xử lý các đoạn dữ liệu chiếm 5% đầu và cuối miền dữ liệu khảo sát ứng với các giá trị Min, Max.

o Min=-$351,976 Þ msdmin=100,000
o Min (-$1.000.000..0]. Điều chỉnh biên trái theo ký số msdmin để khoảng này
vừa đủ chứa Min ta được (-$400,000..0]

34
o Max=4.700,896.50 Þ msdmax=1.000.000
o Max ($1,000,000..2,000,000] . Thêm khoảng ($2,000,000..5,000,000] vừa đủ
chứa Max

Tiếp tục đệ qui cho các miền con:

(-400,000 .. -300,000]
(-$400,
(-300,000 .. -200,000]

(-200,000 .. -100,000]

(-100,000 ..0]

H 2.10 Hệ thống phân cấp cho thuộc tính profit dựa vào luật 3-4-5.
- Miền (-400,000 ..0] có 4 giá trị số có ký số đáng kể phân biệt {-3,-2,-1,0} nên được phân thành 4 miền
con.
- Miền (0 ..+1,000,000] có 1 giá trị số có ký số đáng kể phân biệt {1} nên được phân thành 5 miền con.
((0..+200,000]; (+200,000..+400,000]; (+400,000..+600,000]; (+600,000..+800,000];
(+800,000..+1,000,000]).
- Miền (+1,000,000..+2,000,000] có 1 giá trị số có ký số đáng kể phân biệt {2} nên được phân thành 5
miền con.
((+1,000,000..+1,200,000]; (+1,200,000..+1,400,000]; (+1,400,000..+1,600,000];
(+1,600,000..+1,800,000]; (+1,800,000..+2,000,000]).

35
- Miền (+2,000,000..+5,000,000] có 3 giá trị số có ký số đáng kể phân biệt {3,4,5} nên được phân thành 3
miền con.
((+2,000,000..+3,000,000]; (+3,000,000..+4,000,000]; (+4,000,000..+5,000,000]).

Câu hỏi và bài tập

1. Trình bày tính cần thiết của quá trình tiền xử lý dữ liệu.
2. Trình bày các đại lượng đo lường độ tập trung và phân tán dữ liệu.
3. Trình bày các giải pháp xử lý dữ liệu bị thiếu.
4. Các kỹ thuật phát hiện phần tử ngoại lệ.
5. Thuộc tính Age có các giá trị sau:
13, 15, 16, 16, 19, 20, 20, 21, 22, 22, 25, 25, 25, 25, 30, 33, 33, 33, 35, 35, 35, 35, 36, 40, 46, 52, 70.
Sử dụng phương pháp làm trơn bằng giá trị trung bình của bin để làm trơn dữ liệu, mỗi bin có độ sâu
bằng 3.
6. Sử dụng hai phương pháp dưới đây để chuẩn hóa nhóm dữ liệu sau:
200, 300, 400, 600, 1000.
a. Chuẩn hóa min-max bằng cách thiết lập min=0 và max=1
b. Chuẩn hóa z-score.
7. Sử dụng dữ liệu ở bài tập 5, trả lời các câu sau:
a. Sử dụng chuẩn hóa min-max để chuyển giá trị 35 của thuộc tính age vào đoạn [0.0,1.0].
b. Sử dụng chuẩn hóa z-score để chuyển đổi giá trị 35 của thuộc tính age, trong đó standard
deviation (độ lệch chuẩn) của age là 12,94 năm.
8. Các thuộc tính của một bản ghi nhân viêm gồm:
Tên, Ngày sinh, Giói tính, Chiều cao, Cân nặng, Tình trạng gia đình, Số con
Hãy đề nghị kiểu dữ liệu cho mỗi thuộc tính.
9. Đề nghị thuật toán, dạng pseudo-code hay ở dạng một ngôn ngữ lập trình thích hợp cho:
Tự động tạo hệ thống phân cấp cho dữ liệu số dựa trên luật phân hoạch độ rộng bằng nhau
(luật 3-4-5).

Tầm ta nhìn thật ngắn mà đã thấy bao thứ để làm – Alan Turing

36
Chương 3

PHÂN LỚP DỰA VÀO CÂY QUYẾT ĐỊNH

3.1 PHÂN LỚP LÀ GÌ? DỰ ĐOÁN?

Phân lớp (Classification) là quá trình xếp một đối tượng vào một trong những lớp đã biết (ví dụ:
phân lớp tin tức thuộc lĩnh vực tài chính, thể thao, thời sự,..., phân lớp học sinh theo các mức yếu, trung
bình, khá, giỏi...). Phân lớp thuộc lớp bài toán học có giám sát (supervised learning), mục đích là gán các
đối tượng/mẫu mới vào các lớp với độ chính xác cao nhất có thể.
Có thể định nghĩa một cách hình thức như sau:
Cho một cơ sở dữ liệu (CSDL) D = {t1, t2,.., tn} và tập các lớp C = {C1, C2, .., Cn}. Biết rằng lớp
Ci = {t, Ci(t)}, phân lớp là bài toán xác định ánh xạ f:D®C, sao cho"ti, $Cj: tiÎCj.
Tiến trình phân lớp bao gồm 2 bước:
Bước 1 : có thể xem như việc học của một ánh xạ hay hàm y=f(X) để có thể dự đoán nhãn lớp y
của đối tượng X đã cho. Thông thường, ánh xạ này được biểu diễn dưới dạng các luật phân lớp, các cây
quyết định hay các công thức toán học.
Bước 2 : sử dụng mô hình để phân lớp các đối tượng chưa biết. Cụ thể là :
· Đánh giá độ chính xác của mô hình dựa vào tập mẫu test (thử nghiệm). Độ chính xác của mô
hình phân lớp là tỉ lệ số đối tượng thuộc tập mẫu test (kiểm thử) được phân lớp đúng bởi mô hình. (Nhãn
lớp cho trước của mỗi đối tượngsẽ được so sánh với nhãn lớp được dự báo cho mỗi đối tượng).
· Xác định nhãn các lớp của các đối tượng chưa biết.

Dự đoán (Prediction) là xác định các giá trị còn thiếu hay chưa biết thông qua các hàm phân lớp
được xây dựng từ tập mẫu.

3.2 CÂY QUYẾT ĐỊNH

Cây quyết định là công cụ hữu hiệu phổ biến để phân lớp và dự đoán. Cây quyết định được
đánh giá cao trong khai phá dữ liệu là do:

· Tốc độ học tương đối nhanh hơn so với những phương pháp phân lớp khác.
· Có thể hoán chuyển được thành những luật phân lớp đơn giản và dễ hiểu.
· Sự chính xác phân lớp có thể so sánh được với những phương pháp khác.
· Đò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.

37
· 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ê.
· Có thể sử dụng truy vấn SQL để truy xuất cơ sở dữ liệu.
a. Học cây quyết định (Dicision tree learning):

Là phương pháp xấp xỉ giá trị rời rạc bởi những hàm đích (target function), các hàm này được biểu
diễn bởi một cây quyết định. Những cây học (learned trees) có thể được biểu diễn như là tập hợp của
những luật if then để tăng tính dễ đọc. Những phương pháp học này thể hiện trong những giải thuật suy
diễn quy nạp phổ biến và được ứng dụng thành công trong nhiều lĩnh vực, đặc biệt là trong y học, kinh tế.

b. Cây quyết đinh (decision tree):

H 3.1: Một ví dụ về cây quyết định sử dụng để phân loại dữ liệu

Trong lĩnh vực học máy, cây quyết định là một mô hình dự báo (predictive model), là một ánh xạ
từ các dữ liệu quan sát được về một sự vật/hiện tượng đến các kết luận về giá trị đích 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 một nút trong với các nút
con 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 (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 gọi ngắn gọn là cây quyết định. Cây quyết định là sự kết
hợp các kỹ thuật toán học nhằm hỗ trợ việc mô tả, phân lớp và tổng quát hóa một tập dữ liệu cho trước.

Cây quyết định là phương pháp qui nạp học tri thức dựa trên phân lớp. Để sử dụng cây quyết định
tập mẫu cần có các điều kiện:

- Các đối tượng cần xử lý phải được mô tả bởi một tập các thuộc tính_giá trị (Attribute_value
description).
- Các lớp phải được xác định trước (predefined class) (dữ liệu có giám sát – supervised data)
- Đầy đủ dữ liệu
- Các lớp rời rạc.

38
3.3 XÂY DỰNG CÂY QUYẾT ĐỊNH

a. Xây dựng cây quyết định:

Có nhiều thuật toán khác nhau để xây dựng cây quyết định như: CLS, ID3, C4.5, SLIQ,
SPRINT, EC4.5, C5.0… Cơ sở của các thuật toán này là sử dụng kỹ thuật tham lam, phương pháp chia để
trị (divide-and-conquer), đệ qui. Cây quyết định được xây dựng đệ quy top-down (từ trên xuống). Quá
trình xây dựng cây quyết định chia ra làm 3 giai đoạn cơ bản:

Xây dựng cây: Cây được thiết lập bằng cách thực hiện chia đệ quy tập mẫu dữ liệu huấn luyện cho
đến khi các đối tượng/mẫu ở mỗi nút lá thuộc cùng một lớp. Các bước cụ thể của giai đoạn này như sau:
· Rời rạc hóa các thuộc tính dạng phi số.
· Các mẫu huấn luyện xuất phát nằm ở gốc của cây
· Chọn một thuộc tính để phân chia tập mẫu huấn luyện 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 việc xây dựng cây quyết định cho các nhánh, quá trình lặp dừng khi:
§ Tất cả các mẫu đều được phân lớp (thuộc một nút lá)
§ Không còn thuộc tính nào có thể dùng để phân chia mẫu được nữa.

Cắt tỉa cây: là việc làm nhằm 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á.

Đá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ỷ số giữa tổng số
đối tượng được phân lớp chính xác trên tổng số đối tượng cần phân lớp.

b. Một số khái niệm cơ sở: một số khái niệm được qui ước:
S: Tập thông tin (mẫu) cần xử lý được phân thành m lớp {C1, C2,..Cm}

| Ci |: lực lượng của Ci, đặt si= | Ci |, s=|S| a1 a2 .. aj .. an


A: là một thuộc tính thông tin, A={a1, a2, .., an} C1 s11 s12 .. s1j .. s1n
Phân hoạch S theo thuộc tính A thành n tập {S1, S2,..,Sn}. C2 s21 s22 .. s2j .. s2n
Gọi sij là số phần tử của lớp Ci thuộc tập Sj. .. .. .. .. .. .. ..
Mỗi mẫu thông tin là một đối tượng cần phần lớp. Ci si1 si2 .. sij .. sin
1. Entropy: Độ đo độ đồng nhất của thông tin. .. .. .. .. .. .. ..
1a. Entropy của tập thông tin S, ký hiệu I(S) hay Cm sm1 sm2 .. smj .. smn
I(s1, s2,..sm) S1 S2 .. Sj .. Sn

 s log
m
si si
I ( S )  I( s1 ,s2 ,...,sm )   2
i 1 s

39
Đây là thông tin cần biết để phân lớp mẫu thông tin S. Chú ý:
v Entropy có giá trị nằm trong khoảng [0..1]
v Entropy(S) = 0 ó tập thông tin S là thuần nhất.
v Entropy(S) = 1 ó tập thông tin S độ nhiễu là cao nhất.
v 0 < Entropy(S) < 1 ó tập thông tin S có số lượng mẫu thuộc các loại khác nhau là không
bằng nhau.

Khi tập mẫu S là thuần nhất, giá trị phân lớp của một đối tượng/ mẫu là thuộc tập này (S) hay nói
khác hơn lượng thông tin có được về S là cao nhất. Nếu tập mẫu có độ nhiễu cao nhất, khi đó không thể
dự đoán chính xác một đối tượng/mẫu thuộc về phân lớp nào, lượng thông tin có được về tập S là ít nhất.

1.b Entropy của thuộc tính A ứng với tập thông tin S
n s1 j + s 2 j + .. + s mj
E ( A, S ) = å I (S j )
j =1 s
m sij sij
với I ( S j ) = å-
i =1 Sj
log
Sj
2. Độ lợi thông tin (Information Gain): là đại lượng xác định hiệu suất phân lớp các đối
tượng ứng với một thuộc tính. Đại lượng này xác định lượng giảm entropy của tập mẫu S khi phân chia
các đối tượng theo thuộc tính này. Độ lợi thông tin được xác định bởi thuộc tính A lên tập mẫu S ký hiệu
là Gain(S,A) có công thức xác định như sau:
Gain( A, S )  I ( S )  E ( A, S )

Điều mong ước trong quá trình tạo cây quyết định là làm sao chọn thuộc tính để có thể chia tập
mẫu ban đầu thành các tập mẫu thuần nhất càng nhanh càng tốt. Vì vậy, trong quá trình tạo cây, các
thuộc tính có độ lợi cao nhất sẽ được chọn để phân nhánh. Tuy nhiên, Độ lợi thông tin có xu hướng
thiên vị các thuộc tính mang nhiều giá trị, vì vậy để chuẩn hóa người ta sử dụng tỉ lệ độ lợi, ký hiệu Gain
Gain( A, S )
Ratio thay cho độ lợi: GainRatio( A, S ) 
E ( A, S )

c. Một số thuật toán xây dựng cây quyết định điển hình
1. Thuật toán CLS (Concept Learning System)

Thuật toán này được Hovland và Hint giới thiệu vào những năm 50 của thế kỷ 20.

Thuật toán CLS

Đầu vào: Tập mẫu (huấn luyện) S


Đầu ra: Cây quyết định

40
Phương pháp:

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.

Nhận xét: 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 khác nhau triển khai cây, 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 là điểm cần lưu ý.

2. Thuật toán ID3: Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Sydney,
Australia), được công bố vào cuối thập niên 70 của thế kỷ 20. Sau đó, thuật toán ID3 được giới thiệu và
trình bày (trong mục Induction on decision trees, machine learning) năm 1986. ID3 được xem như là một
cải tiến của CLS với khả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tại mỗi bước.
Thuật toán ID3

Đầu vào: Một tập hợp các mẫu, mỗi mẫu/ đối tượng bao gồm các thuộc tính mô tả và một giá
trị/nhãn phân lớp .

Đầu ra: Cây quyết định có khả năng phân lớp đúng đắn các mẫu trong tập dữ liệu huấn luyện và
dựa đoán phân lớp cho các mẫu/đối tượng chưa được phân lớp.

Phương pháp:
Function induce_tree(tập_mẫu, tập_thuộc_tính)
begin
if mọi mẫu trong tập_mẫu đề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 đó

41
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_mẫu
else begin
chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
xóa P ra khỏi tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùng các mẫu trong tập_mẫu có giá trị V
V

tại thuộc tính P;


Gọi induce_tree (phân_vùng , tập_thuộc_tính), gắn kết quả
V

vào nhánh V
end
end
end
Nhận xét: Với việc tính toán giá trị Gain để lựa chọn thuộc tính tối ưu cho việc triển
khai cây, thuật toán ID3 được xem là một cải tiến của thuật toán CLS. Tuy nhiên, thuật toán ID3 gặp khó
khăn khi xử lý những dữ liệu có thuộc tính kiểu giá trị liên tục, dữ liệu thiếu (missing data) hay dữ liệu
nhiễu (noisy data).

Ví dụ 3.1: Xét bài toán phân lớp xem ‘có đi chơi tennis’ trong một tình trạng thời tiết nào đó
không (?). Giải thuật ID3 sẽ học cây quyết định từ tập hợp các mẫu:

Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Tennis


D1 Nắng Nóng Cao Nhẹ Không
D2 Nắng Nóng Cao Mạnh Không
D3 Âm u Nóng Cao Nhẹ Có
D4 Mưa Ấm áp Cao Nhẹ Có
D5 Mưa Mát TB Nhẹ Có
D6 Mưa Mát TB Mạnh Không
D7 Âm u Mát TB Mạnh Có
D8 Nắng Ấm áp Cao Nhẹ Không
D9 Nắng Mát TB Nhẹ Có
D10 Mưa Ấm áp TB Nhẹ Có
D11 Nắng Ấm áp TB Mạnh Có

42
D12 Âm u Ấm áp Cao Mạnh Có
D13 Âm u Nóng TB Nhẹ Có
D14 Mưa Ấm áp Cao Mạnh Không
H 3.2 Tập dữ liệu mẫu Thời tiết_Chơi Tennis

Tập dữ liệu này bao gồm 14 mẫu. Mỗi mẫu biểu diễn cho tình trạng thời tiết bao gồm các thuộc
tính: quang cảnh, nhiệt độ, độ ẩm, gió; thuộc tính phân lớp ‘chơi Tennis’ còn được gọi là thuộc tính đích
(target attribute). Giá trị/nhãn phân lớp ở đây chỉ có hai loại (có, không), nói khác hơn phân lớp của tập
mẫu được phân thành hai lớp (classes).

Với tập mẫu trên, cây quyết định được xây dựng theo thuật toán ID3 như sau:

Đầu tiên tính độ thuần nhất của tập dữ liệu:

Entropy(S) = - (9/14) Log2 (9/14) – (5/14) Log2 (5/14) = 0.940

Nắng Âm_u Mưa


Có 2 4 3
Không 3 0 2

Tính Entropy(S Nắng): |S1Nắng |=2= s1Nắng, |S2Nắng |=3= s1Nắng

Þ I(s1Nắng, s2Nắng) = -2/5 log(2/5)-3/5 log(3/5) = 0.970951 » 0.971

Độ lợi Gain của mỗi thuộc tính:

Gain(S, Quang cảnh) = Entropy(S) – (5/14)Entropy(SNắng) – (4/14)Entropy(SÂm_u) –


(5/14)Entropy(SMưa) = 0.940 –(5/14)*0.971-(4/14)*0.0-(5/14)*0.0971= 0.247
Tương tự: Gain(S, Nhiệt độ) = 0.029, Gain(S, Độ ẩm) = 0.151, Gain(S, Gió) = 0.048
Do Gain(S, Quang cảnh) là lớn nhất nên thuộc tính quang cảnh được chọn làm nút gốc

+: D3, D4, D5, D7, D9, D10, D11, D12, D13


-: D1, D2, D6, D8, D14

Quang cảnh?

Nắng Mưa
Âm u

+: D9, D11 +: D3, D7, D12, D13 +: D3, D5, D10


-: D1, D2, D8
-: -: D6, D14

H 3.3 Cây quyết định khi chọn thuộc tính quang cảnh làm nút gốc

43
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:
Tiếp tục lấy Entropy và Gain cho nhánh Nắng ta được kết quả như sau:
Gain(SNắng, Độ ẩm) = 0.970; Gain(SNắng, Nhiệt độ) = 0.570; Gain(SNắng, Gió) = 0.019
Như vậy thuộc tính Độ ẩm có hiệu suất phân lớp cao nhất trong nhánh Nắng , ta chọn thuộc tính
Độ ẩm làm nút kế tiếp ….Tương tự như vậy đối với các nhánh còn lại của cây, ta được cây quyết định
hoàn chỉnh như hình H 3.4.
Chú ý:
v Để chọn thuộc tính phân nhánh và tiến hành phân nhánh đối với một thuộc tính liên tục
(Continuos Attribute) người ta còn sử dụng chỉ số GINI (GINI Index):

o Chỉ số Gini của nút t: GINI (t )  1  p j


2
( j / t)

§ Trong đó: p(j/t) là tần suất của lớp j trong nút t


§ Lớn nhất là 1-1/nc khi các mẫu phân bố đều trên các lớp
§ Thấp nhất là 0 khi các mẫu chỉ thuộc về một lớp
v Khi phân chia nút p thành k nhánh, chất lượng của phép chia được tính bằng:

 n GINI (i)
k
ni
GINI chia 
i1

trong đó ni là số mẫu trong nút i; n là số mẫu trong nút p


Người ta chọn thuộc tính có GINIchia nhỏ nhất để phân nhánh.

+: D3, D4, D5, D7, D9, D10, D11, D12, D13


-: D1, D2, D6, D8, D14

Quang cảnh?

Nắng Mưa
Âm u

+: D9, D11 +: D3, D7, D12, D13 +: D3, D5, D10


-: D1, D2, D8 -: D6, D14
-:

Độ ẩm? Có Gió?

Cao TB Mạnh Nhẹ

+: +:D9, D11 +: +:D4, D5, D10


-:D1, D2, D8 -: -: D6, D14 -:

H 3.4 Cây quyết định theo thuật toán ID3 đối với tập mẫu Thời tiết_Chơi Tennis
v Phân nhánh cho thuộc tính liên tục

44
o Dựa trên một giá trị nếu muốn phân chia nhị phân
o Dựa trên vài giá trị nếu muốn có nhiều nhánh
o 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 đơn giản: với mỗi giá trị v trong CSDL đều tính GINI của nó
và lấy giá trị có GINI nhỏ nhất.
§ 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 giá trị của thuộc tính để phân chia và tính chỉ số GINI
Ø Chọn giá trị phân chia có chỉ số GINI thấp nhất
Ví dụ 3.2: Xét tập mẫu huấn luyện sau:
TID Hoàn trả TT-Gia dình Thuế Gian lận
1 Có Độc thân 125 Không
2 Không Có gia đình 100 Không
3 Không Độc thân 70 Không
4 Có Có gia đình 120 Không
5 Không Ly hôn 95 Có
6 Không Có gia đình 60 Không
7 Có Ly hôn 220 Không
8 Không Độc thân 85 Có
9 Không Có gia đình 75 Không
10 Không Độc thân 90 Có

H 3.5 Tập dữ liệu mẫu về hoàn trả thuế

Gian Không Không Không Có Có Có Không Không Không Không


lận
Thuế
60 70 75 85 90 95 100 120 125 220
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Không 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0
Có 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0
GINI 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420

H 3.6 Cách chọn giá trị phân chia theo chỉ số GINI
Điều này có nghĩa là có thể phân nhánh dựa vào Thuế theo 2 nhánh: Thuế <= 97 và Thuế > 97.
Nhận xét: Các độ đo Entropy, Gain, GINI phục vụ cho việc lựa chon thuộc tính để phân nhánh cây
quyết định.

3.4 RÚT TRÍCH LUẬT TỪ CÂY QUYẾT ĐỊNH

Rút trích luật từ cây quyết định: Có thể chuyển đổi qua lại giữa mô hình cây quyết định và mô hình
dạng luật (IF …THEN…) theo qui tắc:
1. Mỗi luật tạo ra từ mỗi đường dẫn từ gốc đến lá.

45
2. 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 – và)
3. Các nút lá mang nhãn của lớp

Ví dụ 3.3: từ cây H 3.4 ta có thể rút ra được các luật sau:

R1: IF (Quang cảnh = Nắng) AND (Độ ẩm = Cao) THEN Chơi Tennis = Không
R2: IF (Quang cảnh = Nắng) AND (Độ ẩm = TB) THEN Chơi Tennis = Có
R3: IF (Quang cảnh = Âm u) THEN Chơi Tennis = Có
R4: IF (Quang cảnh = Mưa) AND (Gió = Mạnh) THEN Chơi Tennis = Không
R5: IF (Quang cảnh = Mưa) AND (Gió = Nhẹ) THEN Chơi Tennis = Có

3.5 QUÁ KHÍT KHAO VÀ CẮT TỈA CÂY QUYẾT ĐINH

a. Quá khít khao (Overfitting)

Một cây quyết định có thể gặp tình trạng “Quá khít khao” do dữ liệu của tập mẫu huấn luyện, thể hiện
của tình trạng này là: quá nhiều nhánh, một số nhánh có thể hiển thị những bất thường gây nhiễu hoặc
ngoại lệ. Điều này làm khó khăn cho việc dự đoán lớp của các đối tượng chưa biết.
b. Cắt tỉa cây (pruning)
Một biện pháp khắc phục hiện tượng quá khít khao của cây quyết định là cắt tỉa các nhánh không
phù hợp (over fitted branches). Có hai phương pháp cắt tỉa cây quyết định:
v Tiền cắt tỉa (Prepruning):

Chiến thuật tiền cắt tỉa nghĩa là sẽ dừng sớm việc phát triển cây trước khi nó vươn đến điểm mà
việc phân lớp các mẫu huấn luyện được hoàn thành, nghĩa là trong quá trình xây dựng cây, một nút có thể
sẽ không được tách thêm bước nữa nếu như kết quả của phép tách đó rơi vào một ngưỡng gần như chắc
chắn. Tuy nhiên, việc xác định ngưỡng là một điều khó khăn.

v Hậu cắt tỉa (Postpruning):

Chiến thuật này ngược với chiến thuật tiền cắt tỉa. Nó cho phép phát triển cây đầy đủ sau đó cắt
bỏ các nhánh không hợp lý. Trong thực tế, phương pháp hậu cắt tỉa là một phương pháp khá thành công
cho việc tìm ra các giả thuyết chính xác cao. Chiến thuật hậu cắt tỉa được tiến hành thông qua việc tính
toán lỗi như sau:
Ký hiệu: E(S) là lỗi tĩnh (Static error hay expected error) của một nút S; BackUpError(S) là lỗi từ
các nút con của S (Back Up Error); Error(S) là lỗi của nút S. Các giá trị này được tính như sau:
Error(S) = Min(E(S), BackUpError(S))
E(S) = (N – n + 1) / (N + 2)
Trong đó: N là tổng số mẫu ở nút S

46
n là số mẫu của lớp phổ biến nhất trong S.
Trong trường hợp tổng quát, nếu thuộc tính lớp có K giá trị (K lớp) thì:
E(S) = (N-n+K-1) / (N+K)
BackupError(S) = åiPiError(Si)
Trong đó: Si là nút con của S
Pi là tỷ lệ số mẫu trong Si trên số mẫu trong S
Như vậy các nút lá sẽ có lỗi Error(Si) = E(Si) do nút lá không có nút con dẫn đến không có lỗi
BackUpError. Nếu BackUpError(S) >= E(S) thì chiến thuật hậu cắt tỉa cây quyết định sẽ cắt tại nút S (tức
là cắt bỏ các cây con của S).

3.6 SỬ DỤNG CÂY QUYẾT ĐỊNH DỰ ĐOÁN LỚP CỦA CÁC DỮ LIỆU CHƯA BIẾT

Một trong chức năng của cây quyết định là dùng dự đoán lớp của các đối tượng chưa biết (unseen
data). Cách dự đoán lớp của các đối tượng được thực hiện bằng phương pháp duyệt cây hay dựa vào tập
luật rút trích được. Chọn nhánh của cây hay luật có tập điều kiện bao phủ tập giá trị thuộc tính đối tượng
cần dự đoán lớn nhất làm cơ sở dự đoán.

Ví dụ 3.4: Giả sử cần dự đoán việc chơi Tennis cho các ngày có điều kiện thời tiết:

Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi Tennis


D15 Nắng Mát Cao Mạnh ??
D16 Âm u Mát Cao Mạnh ??
- Sử dụng luật R1 cho dự đoán ngày D15, chơi Tennis = Không
- Sử dụng luật R3 cho dự đoán ngày D16, chơi Tennis = Có

Câu hỏi và bài tập

1. Nêu tóm tắt các bước xây dựng cây quyết định.
2. Xây dựng cây quyết định trong bài toán sắp xếp ba số a,b,c theo thứ tự tăng dần
3. Chúng ta muốn dự đoán kết quả của trận đấu sắp tới giữa hai vận động viên tennis hàng đầu:
Federera và Nadale.
Từ website của Federera ta có được bảng thành tích trong quá khứ của Federera. Kết quả là F nếu
Federera thắng và N nếu ngược lại H 3.6

a. Trong những trận đấu giao hữu (friendly match) thì Federera thường không sử dụng toàn bộ khả
năng của mình, do đó kết quả của nó không đáng tin cậy lắm. Xây dựng cây quyết định dựa trên
dữ liệu này, sử dụng giải thuật xây dựng cây quyết định ID3.

47
Time Match type Court surface Outcome
Morning Master Grass F
Afternoon Grand slam Clay F
Night Friendly Hard F
Afternoon Friendly Mixed N
Afternoon Master Clay N
Afternoon Grand slam Grass F
Afternoon Grand slam Hard F
Afternoon Grand slam Hard F
Morning Master Grass F
Afternoon Grand slam Clay N
Night Friendly Hard F
Night Master Mixed N
Afternoon Master Clay N
Afternoon Master Grass F
Afternoon Grand slam Hard F
Afternoon Grand slam Clay F

H 3.6 Bảng thành tích trong quá khứ của Federera


b. Trận đấu sắp tới giữa Federera và Nadale là một trận trong giải Grand Slam trên sân đất nện (clay
court) và diễn ra vào thời điểm buổi chiều. Dự đoán kết quả của trận đấu này sử dụng cây quyết
định trên.

4. a. Xây dựng cây quyết định bằng thuật toán ID3 với tập dữ liệu huấn luyện sau:

b. Dự báo lớp của mẫu mới : age= youth, income=medium, student=yes, credit- rating=fair.

48
c. Rút trích tập luật quyết định.

5. Cho tập huấn luyện như sau:

Attributes Classes
Gender Car Travel Cost Income Transportation
ownership ($)/Km Level Mode
Male 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Female 1 Cheap Medium Train
Female 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Male 0 Stardard Medium Train
Female 1 Stardard Medium Train
Female 1 Expensive High Car
Male 2 Expensive Medium Car
Female 2 Expensive High Car

a. Sử dụng lần lượt độ đo Gain và chỉ mục Gini để xây dựng cây quyết định.
b. Trình bày chi tiết từng bước. So sánh kết quả.
6. Sử dụng tập dữ liệu ở bài tập 5, tìm các phân lớp với thuật toán CLS. So sánh với các kết quả tìm
được ở bài 5.

7. Sử dụng cây quyết định ở câu 5.a (theo độ đo Gain) và tập luật có được để xác định lớp cho các
mẫu mới sau:

Attributes Classes
Person Gender Car Travel Cost Income Transportation
Name ownership ($)/Km Level Mode
Alex Male 1 Standard High ?
Buddy Male 0 Cheap Medium ?
Cherry Female 1 Cheap High ?

“We are drowning in data yet starving for knowledge”


J.Han, M.Kamber
49
GIẢI BÀI TẬP MẪU
a. Xây dựng cây quyết định với tập mẫu sau: b. Dự đoán lớp cho các đối tượng

Instance A1 A2 A3 Target Class

1 T T 1.0 + Instance A1 A2 A3 Target Class


2 T T 6.0 + T F 6.5 ?
10
3 T F 5.0 - 11 F F 5.5 ?
4 F F 4.0 + 12 T T 4.5 ?
5 F T 7.0 -
6 F T 3.0 -
7 F F 8.0 -
8 T F 7.0 +
9 F T 5.0 -

BÀI GIẢI
(Sử dụng chỉ số GINI để phân nhánh tạo cây)
v Chọn thuộc tính phân nhánh (lần 1)
· Thuộc tính A1
A1 T F GINI(T) = 1-(3/4)2-(1/4)2 = 0.375
+ 3 1 GINI(F) = 1-(1/5)2-(4/5)2 = 0.320
- 1 4 GINIS(A1)= (4/9)*GINI(T)+(5/9)*GINI(F) = 0.344
4 5
· Thuộc tính A2
A2 T F GINI(T) = 1-(2/5)2-(3/5)2 = 0.48
+ 2 2 GINI(F) = 1-(2/4)2-(2/4)2 = 0.5
- 3 2 GINIS(A2)= (5/9)*GINI(T)+(4/9)*GINI(F) = 0.488
5 4
· Thuộc tính A3 (thuộc tính liên tục)
A3 Class Tìm điểm chia
1.0 +
3.0 -
1.0 3.0 4.0 5.0 6.0 7.0 8.0
4.0 + 0.0 2.0 3.5 4.5 5.5 6.5 7.5 8.5
5.0 - ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ >
5.0 - + 0 4 1 3 1 3 2 2 2 2 3 1 4 0 4 0
6.0 + - 0 5 0 5 1 4 1 4 3 2 3 2 4 1 5 0
GINI 0.493 0.416 0.492 0.444 0.489 0.481 0.444 0.493
7.0 +
7.0 - So sánh chỉ số GINI ứng với các thuộc tính, thuộc tính A1 có chỉ số GINI bé nhất
8.0 - nên được chọn làm thuộc tính phân nhánh.

Thuộc tính A1 A2 A3
GINI 0.344 0.488 0.416

50
A1
T F

Instance A2 A3 Target Class Instance A2 A3 Target Class

1 T 1.0 + 4 F 4.0 +
2 T 6.0 + 5 T 7.0 -
3 F 5.0 - 6 T 3.0 -
8 F 7.0 + 7 F 8.0 -
9 T 5.0 -
(I)

v Xét phân nhánh của (I) (II)

· Thuộc tính A2
A2 T F GINI(T) = 1-(2/2)2-(0/2)2 = 0.0
+ 2 1 GINI(F) = 1-(1/2)2-(1/2)2 = 0.5
- 0 1 GINIS(A2)= (2/4)*GINI(T)+(2/4)*GINI(F) = 0.25
2 2
· Thuộc tính A3 (thuộc tính liên tục)
Ins. A3 Class 1.0 5.0 6.0 7.0
1 1.0 + -1.0 3.0 5.5 6.5 7.5
3 5.0 - > ≤ > ≤ > ≤ > ≤ > ≤
+ 0 3 1 2 1 2 2 1 3 1
2 6.0 + - 0 1 0 1 1 0 1 0 1 0
8 7.0 + GINI 0.375 0.333 0.25 0.333 0.375

Thuộc tính A2 A3
GINI 0.25 0.25
Cả 2 thuộc tính đều cùng giá trị chỉ số GINI, tuy nhiên chọn thuộc tính A3 để khỏi phải xử lý
thuộc tính liên tục về sau.

1, 2, 3, 8
A3
≤ 5.5 > 5.5

Ins. A2 Class Ins. A2 Class


1 T + 2 T +
3 F - 8 F +
T F T F

Ins. Class Ins. Class Ins. Class Ins. Class


1 + 3 - 1 + 8 +

v Xét phân nhánh (II)

51
v Thuộc tính A2
A2 T F GINI(T) = 1-(0/3)2-(3/3)2 = 0.0
+ 0 1 GINI(F) = 1-(1/2)2-(1/2)2 = 0.5
- 3 1 GINIS(A2)= (3/5)*GINI(T)+(2/5)*GINI(F) = 0.2
3 2
v Thuộc tính A3 (thuộc tính liên tục)
Ins. A3 Class 1.0 4.0 5.0 7.0 8.0
6 3.0 - 2.5 3.5 4.5 6.0 7.5 8.5
4 4.0 + ≤ > ≤ > ≤ > ≤ > ≤ > ≤ >
+ 0 1 0 1 1 0 1 0 1 0 1 0
9 5.0 - - 0 4 1 3 1 3 2 2 3 1 4 0
5 7.0 - GINI 0.32 0.30 0.20 0.27 0.30 0.32
7 8.0 -
Cả 2 thuộc tính đều cùng giá trị chỉ số GINI, tuy nhiên chọn thuộc tính A3 để khỏi phải xử lý
thuộc tính liên tục về sau.

4, 5, 6, 7, 9
A3
≤ 4.5 > 4.5

Ins. A2 Class Ins. A2 Class


6 T - 9 T -
4 F + 5 T -
T F
7 F -
Ins. Class Ins. Class
6 - Class
4 +
-

Cây quyết định được xây dựng từ tập mẫu

A1
T F

A3 A3
≤ 5.5 > 5.5 ≤ 4.5 > 4.5

A2 A2
T F + -
T F

+ - - +

Kết quả dự đoán A1 A2 A3 Target Class


T F 6.5 +
F F 5.5 -
T T 4.5 +

52
Chương 4

PHÂN LỚP BẰNG NAÏVE BAYES VÀ LÁNG GIỀNG GẦN NHẤT

4.1 PHÂN LỚP NAÏVE BAYES

Đây là kỹ thuật phân lớp dựa vào lý thuyết xác suất, chính xác hơn là lý thuyết Bayes do nhà toán
học người Anh-Thomas Bayes (1702-1761) đề xuất. Kỹ thuật phân lớp này được sử dụng khá phổ biến do
tính dễ hiểu và dễ triển khai.

a. Lý thuyết Bayes :2
v Qui tắc nhân: Nếu các biến cố Ai, i=1..n là độc lập thì:

 P( A )
n n
P( I i 1
Ai ) 
i 1
i (1)

Nếu các biến không độc lập thì :


n
P( I A )  P( A ) P( A
i 1
i 1 2 | A1 ) P( A3 | A1 A2 )..P ( An | A1 A2 .. An1 ) (2)

v Xác suất có điều kiện : Xác suất của biến cố A được tính với điều kiện biến cố B đã xảy ra được
P( A  B)
gọi là xác suất có điều kiện của A, ký hiệu P ( A | B )  .(3)
P( B)
v Qui tắc xác suất đầy đủ: Cho H1, H2, ..Hn là phân hoạch không gian mẫu M và A là biến cố bất kỳ
liên quan đến phân hoạch này. Xác suất của biến cố A được tính bằng công thức xác suất đầy đủ:
(4)

 P( H ).P( A | H )
n
P ( A)  i i
i1

Các xác suất P(Hi) được gọi là các xác suất tiền định (prior probability) của A.
Các xác xuất P(A|Hi) được gọi là xác suất khả dĩ (likelihood probability)
Các xác xuất P(Hi|A) được gọi là các xác suất hậu định (Posterior probability) của Hi
được xác định bởi công thức (5)
P( H i ) P( A | H i )
P ( H i | A) 
P( A)

2
Xem [13]

53
P( A | H i )
Tỷ số được gọi là chỉ số liên quan (irrelevance index) dùng để đo lường sự liên quan
P ( A)
của A và Hi. Nếu chỉ số này bằng 1, có nghĩa A và Hi không liên quan nhau.
v Định lý Bayes : Cho H1, H2, ..Hn là phân hoạch không gian mẫu M và A là biến cố bất kỳ liên
quan đến phân hoạch này. Khi đó ta có (6):
P( H i ) P( A | H i )
P ( H i | A) 
 P( H
n

k ) P( A | Hk )
k 1

b. Ứng dụng lý thuyết Bayes trong phân lớp dữ liệu (Naïve Bayes Classifier)

Cho H1, H2, ..Hn là phân hoạch không gian mẫu M và A là biến cố được dự đoán thuộc phân
hoạch (lớp) Hi, nếu:

P ( H i | A)  P ( H j | A), "j¹i, j=1..n

Theo công thức (5) ta thấy P(Hi|A) là lớn nhất khi P(Hi)P(A|Hi) là lớn nhất (mẫu số P(A) không
đổi trong các công thức tính P(Hi|A)).

k
Nếu A  IA
j 1
j , mà các biến cố Aj độc lập thì :

 P( A
k k

P( A  H i )
P( I ( A j  H i )) j  Hi )
 P( A
k
j 1 j 1
P( A | H i )     j | Hi )
P( H i ) P( H i ) P( H i ) j 1

 P( A
k
Nói khác hơn P(Hi|A) là lớn nhất khi: P ( H i ) j | H i ) là lớn nhất.
j 1

Ví dụ 4.1: Xét tập mẫu: Thuộc tính


Lớp
A1 A2
Xác suất tiền định P(C1)=3/5, P(C2)=2/5.
1 0 C1
Xác xuất có điều kiện 0 0 C1
2 1 C2
P(A1=1|C1)= 1/3, P(A1=1|C2)= 1/2, P(A2=1|C1)= 1/3, P(A2=1|C2)= 1/2
1 2 C2
Với X = (A1=1, A2=1), ta có: 0 1 C1

P(X|C1)= P(A1=1|C1)x P(A2=1|C1)= (1/3)x(1/3)= 1/9 1 1 ??

H 4.1 Tập mẫu huấn luyện phân lớp bằng Naïve Bayes 1

54
P(X|C2)= P(A1=1|C2)x P(A2=1|C2)= (1/2)x(1/2)= 1/4

Vì vây, P(C1|X)=P(C1)xP(X|C1)= (3/5)x(1/9)= 1/15

P(C2|X)=P(C2)xP(X|C2)= (2/5)x(1/4)= 1/10

Điều này cho phép dự đoán X = (A1=1, A2=1) thuộc lớp C2.

Ví du 4.1: Xét một tập mẫu dữ liệu gồm 20 mẫu, mỗi mẫu có 4 thuộc tính điều kiện, và một thuộc
tính phân lớp như sau:

Ngày Mùa Gió Mưa Lớp


Thường Xuân Không Không Đúng giờ
Thường Đông Không Phùn Đúng giờ
Thường Đông Không Phùn Đứng giờ
Thường Đông Lớn Nặng hạt Trễ
Thứ bảy Hạ Vừa Không Đúng giờ
Thường Thu Vừa Không Rất trễ
Lớp Số lượng mẫu Xác xuất tiền định
Lễ Hạ Lớn Phùn Đúng giờ
Hủy 1 1/20 = 0.05
Chủ nhật Hạ Vừa Không Đúng giờ
Rất trễ 3 3/20 = 0.15
Thường Đông Lớn Nặng hạt Rất trễ
Trễ 2 2/20 = 0.1
Thường Hạ Không Phùn Đúng giờ
Đúng giờ 14 14/20 = 0.7
Thứ bảy Xuân Lớn Nặng hạt Hủy
P(Lớp=Đúng giờ| Mùa = Đông)=2/6 = 0.33
Thường Hạ Lớn Phùn Đúng giờ
P(Lớp=Trễ | Mùa = Đông)=2/6 = 0.33
Thứ bảy Đông Vừa Không Trễ
P(Lớp=Rất trễ | Mùa = Đông)=2/6 = 0.33
Thường Hạ Lớn Không Đúng giờ
P(Lớp=Hủy | Mùa = Đông)=0/6 = 0
Thường Đông Vừa Nặng hạt Rất trễ
Thứ bảy Thu Lớn Phùn Đúng giờ
Thường Thu Không Nặng hạt Đúng giờ
Lễ Xuân Vừa phùn Đúng giờ
Thường Xuân Vừa Không Đúng giờ
Thường Xuân Vừa Phùn Đúng giờ
H 4.2 Tập mẫu huấn luyện phân lớp bằng Naïve Bayes 2

Cần dự đoán phân lớp cho mẫu X:

Ngày Mùa Gió Mưa Lớp


Thường Đông Cao Nặng hạt ???????

55
Bảng biểu diễn xác suất có điều kiện và xác xuất tiền định của tập mẫu huấn luyện thể hiện H 4.3

P(X| Lớp = Đúng giờ) = 0.70x0.64x0.14x0.29x0.07=0.0013

P(X| Lớp = Trễ) = 0.10x0.50x1.00x0.50x0.50=0.0125

P(X| Lớp = Rất trễ) = 0.15x1.00x0.67x0.33x0.67=0.0222

P(X| Lớp = Hủy) = 0.05x0.00x0.00x1.00x1.00=0.0000

Vì vậy, có thể dự đoán X thuộc lớp Rất trễ.

Lớp Đúng giờ Trễ Rất trễ Hủy


Ngày= Thường 9/14=0.64 1/2=0.5 3/3=1 0/1=0
Ngày=Thứ bảy 2/14=0.14 1/2=0.5 0/3=0 1/1=1
Ngày=Chủ nhật 1/14=0.07 0/2=0 0/3=0 0/1=0
Ngày=Lễ 2/14=0.14 0/2=0 0/3=0 0/1=0
Mùa=Xuân 4/14=0.29 0/2=0 0/3=0 1/1=1
Mùa=Hạ 6/14=0.43 0/2=0 0/3=0 0/1=1
Mùa=Thu 2/14=0.14 0/2=0 1/3=0.33 0/1=0
Mùa=Đông 2/14=0.14 2/2=1 2/3=0.67 0/1=0
Gió=Không 5/14=0.36 0/2=0 0/3=0 0/1=0
Gió=Lớn 4/14=0.29 1/2=0.5 1/3=0.33 1/1=1
Gió=Vừa 5/14=0.36 1/2=0.5 2/3=0.67 0/1=0
Mưa=không 5/14=0.36 1/2=0.5 1/3=0.33 0/1=0
Mưa=phùn 8/14=0.57 0/2=0 0/3=0 0/1=0
Mưa=Nặng hạt 1/14=0.07 1/2=0.5 2/3=0.67 1/1=1
Xác suất tiền định 14/20=0.70 2/20=0.10 3/20=0.15 1/20=0.05
H 4.3 Xác suất có điều kiện và xác xuất tiền định của tập mẫu huấn luyện ở H 4.2

4.2 ĐỘ ĐO KHOẢNG CÁCH

Độ đo khoảng cách (distance measure): Để đo khoảng cách hay sự khác nhau giữa các đối tượng
(instance) thuộc tập X, người ta sử dụng các hàm khoảng cách d hay còn gọi là các metric d: d: X ×
X → R+ thỏa mãn các điều kiện:
1. d(x, y) ≥ 0, với mọi x,y thuộc R; (tính chất không âm)
2. d(x, y) = 0 khi và chỉ khi x = y;
3. d(x, y) = d(y, x), với mọi x,y thuộc R; (tính đối xứng)
4. d(x, z) ≤ d(x, y) + d(y, z), với mọi x,y,z thuộc R. (bất đẳng thức tam giác)
Các độ đo thường được áp dụng cho các kiểu dữ liệu:

56
v Kiểu nguyên, khoảng:

a. Tiền xử lý đối với dữ liệu kiểu khoảng

§ Chuẩn hóa các phép đo: chuyển các phép đo ban đầu thành các đại lượng không đơn vị.
Trong phần trình bày này, xét một tập mẫu gồm n đối tượng, trong đó đối tượng thứ i biểu diễn
dưới dạng một vector m-chiều: xiº (xi1, xi2, .., xim), mỗi thành phần của xi mang 1 giá trị kiểu khoảng.
· Cách 1: Chuần hóa bằng cách chuyển giá trị thuộc tính về đoạn [0,1]:
n
xij  min( xij )
j 1
Thay giá xij bởi giá trị: zij  n n
max( xij )  min( xij )
j 1 j 1

· Cách 2: Chuẩn hóa z-core


Thực hiện theo các bước sau cho mỗi thành phần xi:

(1) Tính độ lệch tuyệt đối trung bình sj:

x
n

ij m j
sj  i1
n

Trong đó mj là giá trị trung bình của thành phần thứ j:

x
n

ij
mj  i1
n

(2) Thay giá xij bởi giá trị:

xij  m j
zij 
sj

Chú ý: Độ lệch tuyệt đối trung bình ít bị ảnh hưởng bởi nhiễu so với độ lệch chuẩn. Đối với các
giá trị ngoại lệ thì giá trị tuyệt đối của z-score không nhỏ, nhờ đó ta có thể phát hiện ra các giá trị ngoại
lệ.
Chuẩn hóa dữ liệu có thể không có lợi trong một số ứng dụng cụ thể. Do đó việc lựa chọn có chuẩn hóa
dữ liệu hay không tùy thuộc kinh nghiệm vào người sử dụng.

b. Các độ đo khoảng cách thông dụng cho đối tượng xi, xj có dữ liệu kiểu nguyên hoặc khoảng.

 (x
m
(1) Khoảng cách Euclide: d ( xi , x j )  ik  x jk )2 (4.1)
k 1

57
x
m
(2) Khoảng cách Manhattan: d ( xi , x j )  ik  x jk (4.2)
k 1

 m p
1/ p

(3) Khoảng cách Minkowski: d ( xi , x j )   x  x jk


 k 1 ik



(4.3)

Trong đó p là một số nguyên dương.

 m p
1/ p

(4) Khoảng cách có trọng số: d ( xi , x j )   w x  x jk


 k 1 k ik


(4.4)

Khoảng cách có trọng số là sự cải tiến của khoảng cách Minkowski, trong đó có tính đến ảnh
hưởng của từng thuộc tính đến khoảng cách giữa hai đối tượng. Việc chọn trọng số tùy thuộc vào ứng
dụng và mục tiêu cụ thể. Ví dụ, đối với các vận động viên bóng rổ thì chiều cao là quan trọng hơn cả. Do
đó, ta có thể chọn trọng số ứng với thuộc tính chiều cao lớn hơn các trọng số khác.

v Kiểu nhị phân

Một đại lượng kiểu nhị phân chỉ mang một trong hai giá trị/trạng thái. Kiểu nhị phân là đối xứng
nếu cả hai trạng thái tương ứng là tương đương (về mặt ý nghĩa của ứng dụng). Ví dụ thuộc tính giới tính
có hai trạng thái là nam hay nữ .

Một kiểu nhị phân là bất đối xứng nếu có một trạng thái có ý nghĩa quan trọng hơn (thường được
gán là 1). Lúc này thường có xu hướng thiên vị trạng thái ưu tiên đó. Ví dụ trong chuẩn đoán y khoa
người ta thường ưu tiên một hướng kết luận hơn hướng kia.

Xét hai đối tượng i và j, các thuộc tính của đối tượng được biểu diễn bằng các biến nhị phân. Giả
sử các biến nhị phân có cùng trọng số. Ta có bảng sự kiện như bảng H 4.4. Trong đó q là số các biến nhị
phân bằng 1 đối với cả 2 đối tượng i và j, s là số các biến nhị phân bằng 0 đối với i nhưng bằng 1 đối với
j, r là số các biến nhị phân bằng 1 đối với i nhưng bằng 0 đối với j, t là số các biến nhị phân bằng 0 đối
với cả hai i và j.

Đối tương j
1 0 Tổng
1 q r q+r
Đối tượng i
0 s t s+t
Tổng q+s r+t p
H 4.4 Bảng sự kiện cho biến nhị phân

58
Sự khác nhau của hai đối tượng dựa trên các biến nhị phân đối xứng (symmetric binary dissimilarity) là:

rs
d ( xi , x j )  (4.5)
qr  s t

Sự khác nhau của hai đối tượng dựa trên các biến nhị phân bất đối xứng (asymmetric binary dissimilarity)

rs
d ( xi , x j )  (4.6)
qrs

Chúng ta có thể đo khoảng cách giữa hai đối tượng kiểu nhị phân dựa trên khái niệm tương tự
nhau (similarity) thay vì khác nhau bởi hệ số Jaccard

sim( xi , x j )  1  d ( xi , x j ) (4.7)

Ví dụ 4.2: (Sự khác nhau giữa các đối tượng thuộc kiểu nhị phân) Xét một tập mẫu chứa thông
tin của các bệnh nhân (H 4.5) có các thuộc tính Tên, Giới tính, Sốt, Ho, Test-1, Tes t-2, Test-3, Test-4
trong đó Tên là thuộc tính định danh, giới tính là một thuộc tính nhị phân đối xứng, và các thuộc tính còn
lại là các thuộc tính nhị phân bất đối xứng.

Đối với các giá trị của các thuộc tính bất đối xứng, các giá trị Y (yes) và P (positive) gán bằng 1,
các giá trị N (negative) gán bằng 0. Giả sử rằng khoảng cách giữa các đối tượng (bệnh nhân) được tính
dựa trên các thuộc tính không đối xứng.

Tên Giới tính Sốt Ho Test-1 Test-2 Test-3 Test-4


Nam Nam Y N P N N N
Lan Nữ Y N P N P N
Khanh Nam Y Y N N N N
. . . . . . . .
. . . . . . . .
H 4.5 Thông tin các bệnh nhân được biểu diễn bằng các biến nhị phân

Theo công thức (4.6) khoảng cách giữa các cặp đối tượng là:

0 1
d ( Nam, Lan)   0.33 ,
2 0 1
11 1 2
d ( Nam, Khanh)   0.67 , d ( Lan, Khanh)   0.75
111 11 2

Các khoảng cách chỉ ra rằng Lan và Khanh có bệnh khác nhau nhất bởi vì d(Lan, Khanh) là lớn nhất.

59
v Kiểu Định danh, Thứ tự, Tỉ lệ - khoảng

a. Kiểu Định danh có thể nhận nhiều hơn hai trạng thái.
Ví dụ 4.3: thuộc tính Xe_máy thuộc kiểu Định danh có thể có các giá trị Honda, Yamaha, Suzuki.

Hàm khoảng cách giữa hai đối tượng có thuộc tính thuộc kiểu Định danh:

Giả sử số thuộc tính kiểu Định danh của các đối tượng là p.

Khoảng cách giữa 2 đối tượng xi và xj theo các thuộc tính kiểu Đinh danh được tính theo công
thức:

pm
d ( xi , x j )  (4.8)
p

Trong đó m là số thuộc tính kiểu Định danh có giá trị trùng khớp giữa hai đối tượng xi và xj ; p là
số thuộc tính kiểu Định danh của hai đối tượng xi và xj.

b. Kiểu thứ tự:


Chuyển đổi kiểu Thứ tự thành kiểu Khoảng bằng các bước:
- Giả sử kiểu Thứ tự có Mf giá trị, thay các giá trị này tương ứng là số thứ tự của giá trị trong
quan hệ thứ tự giữa các giá trị của kiểu dữ liệu.
Ví dụ 4.4:

Giá trị kiểu Yếu Trung bình Khá Giỏi


Giá trị thay thế 1 2 3 4
Phạm vi giá trị: r 1 . . Mf
r 1
- Chuẩn hóa các giá trị này thành giá trị số thuộc đoạn [0,1] theo công thức:
M f 1

Theo công thức này giá trị số tương ứng với các giá trị thứ tự là:

Yếu Trung bình Khá Giỏi


Giá trị số 0 1/3 2/3 1
Hàm khoảng cách giữa hai đối tượng có các thuộc tính là kiểu thứ tự lúc này sẽ là một trong các
hàm khoảng cách giữa hai đối tượng có các thuộc tính là kiểu khoảng.
c. Kiểu Tỉ lệ - khoảng

Nếu các giá trị của kiểu này được biểu diễn bởi các hàm phi tuyến (Ví dụ: Các đại lượng được biểu
diễn theo hàm mũ chẳng hạn: AeBt. Trong đó A, B là các hằng số dương và t là biến biểu diễn thời gian)
phải tiền xử lý dữ liệu bằng cách chuyển sang logarit: yi = log(xi) sau đó mới áp dụng các khoảng cách
ứng với các biến kiểu khoảng hoặc thứ tự. Ngược lại, có thể xem là các giá trị thuộc khoảng hoặc thứ tự.

60
v Kiểu hỗn hợp:

Một đối tượng các thuộc tính thành phần có thể mang cả 6 loại kiểu dữ liệu trên. Ta có thể dùng
công thức được gán trọng số để kết hợp các hiệu quả của các biến thành phần.

åd
f =1
ij ( f )dij ( f )
d ( xi , x j ) = p
(4.9)
å d ij ( f )
f =1

Trong đó d ij (f) được tính như sau:

- d ij (f) =0 khi: xjf hay xif không tồn tại hoặc xif = xjf = 0 và f là biến nhị phân bất đối xứng

- d ij (f) = 1 trong các trường hợp khác.

d ij ( f ) được tính như sau:

| x if - x jf |
- Nếu f là biến trị khoảng: d ij ( f ) = m m
m a x x h f - m in x h f
h =1 h =1

- Nếu f là biến nhị phân hay định danh:

d ij ( f ) = 0 khi xif = xjf ;

d ij ( f ) = 1 trong các trường hợp khác

- Nếu f là biến kiểu Thứ tự, Tỉ lệ- khoảng chuyển đổi thành kiểu khoảng như phần trình bày trên.

4.3 PHÂN LỚP LÁNG GIỀNG GẦN NHẤT

Phân lớp láng giềng gần nhất (Nearest Neighbour Classification):


Ý tưởng của thuật toán phân lớp này sẽ quyết định gán nhãn lớp cho phần tử mới (chưa biết lớp)
ứng với lớp của phần đông trong số các phần tử lân cận gần nó nhất. Nếu chọn số phần tử lân cận gần
nhất là một số nguyên dương k, kỹ thuật phân lớp láng giềng gần nhất trong trường hợp này gọi là
thuật toán phân lớp k- láng giềng gần nhất (k-NN).

Thuật toán phân lớp K-láng giềng gần nhất

Đầu vào:
- Tập mẫu huấn luyện,
- Chỉ số k

61
- Phần tử mới: X.
Đầu ra:
- Nhãn lớp của X
Phương pháp:
- Chọn k phần tử của tập mẫu huấn luyện gần phần tử mới X
- Xác định nhãn của số đông của k phần tử này: L
- Gán nhãn L là nhãn của lớp phần tử mới.

X1 X2 Y Khoảng cách
4 3 + 3.605 Ví dụ: Giả sử rằng trong ứng dụng thực tế, thuộc tính X1:
3 7 + 4.472 huyết áp, thuộc tính X2: nồng độ Cholesterol trong máu và Y thể hiện
7 4 + 1
4 1 + 5 tình trạng bệnh tim của bệnh nhân. Y có hai giá trị là + (có bệnh) và -
6 5 + 1
6 6 + 2.236
(không có bệnh).
3 7 + 4.472 Cơ sở dữ liệu 20 người đã khám bệnh có kết quả như bảng H 4.6: Bây
6 2 + 3.162
4 6 - 3.162 giờ có một người bệnh đến khám bệnh (chưa biết có bị bệnh tim hay
4 4 - 3.162 không), sau khi đo huyết áp và nồng độ Cholesterol có giá trị lần lượt
5 8 - 3.605
7 8 - 3 là X1= 7 và X2= 5. Ta sử dụng thuật toán K-NN để dự đoán (xếp lớp)
7 6 - 1
bệnh nhân này có mắc bệnh tim hay không. Trong ví dụ trên tham số
4 10 - 5.830
9 7 - 2.828 k =5 có nghĩa là lấy 5 bệnh nhân có huyết áp và nồng độ Cholesterol
5 4 - 2.236
8 5 - 1 gần giống nhất với bệnh cần chuẩn đoán và ta thấy rằng trong 5 bệnh
6 6 - 1.414 nhân gần nhất đó có 3 người không mắc bệnh tim (giá trị Y là -) và 2
7 4 - 1
8 8 - 3.162 người mắc bệnh tim (giá trị Y là +). Vì vậy theo K-NN ta xếp bệnh
7 5 ? nhân cần chuẩn đoán bệnh vào lớp – (không có bệnh)

H 4.6 CSDL khám bệnh

Chú ý: Thuật toán K-NN có ưu điểm là đơn giản, dễ hiểu, dễ cài đặt. Tuy nhiên, kết quả bài toán
phụ thuộc rất lớn vào việc chọn tham số K (số láng giềng gần nhất).

Câu hỏi và bài tập

1. Sử dụng kỹ thuật phân lớp bằng Naïve Bayes cho tập dữ liệu huấn luyện ở bài tập 4 chương 3.
2. Cho hai đối tượng được biểu diễn bởi các bộ (22, 1, 42, 10) và (20, 0, 36, 8)
a. Tính khoảng cách Euclide giữa hai đối tượng.
b. Tính khoảng cách Manhattan giữa hai đối tượng.
c. Tính khoảng cách Minkowski giữa hai đối tượng với q=3.
3. Cho các số đo sau của biến Age: 18, 22, 25, 42, 28, 43, 33, 35, 56, 28
a. Tính sai số tuyệt đối trung bình.

62
b. Tính Z-score cho 4 số đo đầu tiên.
4. Có dữ liệu huấn luyện gồm 20 thể hiện như sau:

day season wind rain class


weekday spring none none on time
weekday winter none slight on time
weekday winter none slight on time
weekday winter high heavy late
saturday summer normal none on time
weekday autumn normal none very late
holiday summer high slight on time
sunday summer normal none on time
weekday winter high heavy very late
weekday summer none slight on time
saturday spring high heavy cancelled
weekday summer high slight on time
saturday winter normal none late
weekday summer high none on time
weekday winter normal heavy very late
saturday autumn high slight on time
weekday autumn none heavy on time
holiday spring normal slight on time
weekday spring normal none on time
weekday spring normal slight on time

Sử dụng Naïve Bayes Classifier để xác định lớp của một thể hiện mới sau:

weekday winter high heavy ???

5. Giả sử có mẫu dữ liệu chưa được phân lớp và tập dữ liệu huấn luyện và sau:

Age Income Student Credit_rating Buy_computer


<=30 medium yes fair ???

Age Income Student Credit_rating Buy_computer


<=30 high no fair no
<=30 high no excellent no
31..40 high no fair yes
>40 medium no fair yes
>40 low yes fair yes
>40 low yes excellent no

63
31..40 low yes excellent yes
<=30 medium no fair no
>=40 low yes fair yes
<=30 medium yes fair yes
31..40 medium no excellent yes
31..40 high yes fair yes
>40 medium no excellent no

Sử dụng phương pháp Naïve Bayes Classifier để xác định lớp của mẫu dữ liệu chưa được phân
lớp.

6. Hãy sử dụng thuật toán k-NN để xác định lớp của Vĩnh với k=3, k=5, k=7. So sánh các kết
quả thu được.

Customer Age Income (K) No.Card Response


Hà 35 35 3 Yes
Thủy 22 50 2 No
Dung 28 40 1 Yes
Thảo 45 100 2 No
Anh 20 30 3 Yes
Dũng 34 55 2 No
Minh 63 200 1 No
Sơn 55 140 2 No
Khôi 59 170 1 No
Huy 25 40 4 Yes
Vĩnh 25 30 1 ???

“The secret of success is to know something that nobody else knows”

Aristotle Onassis

64
Chương 5

PHÂN LỚP DỰA VÀO LÝ THUYẾT TẬP THÔ


Lý thuyết tập thô (Rough set theory) do Zdizislaw Pawlak (1926-2006) đề xuất vào năm 1982. Ngay từ khi
mới ra đời, lý thuyết tập thô đã thu hút được nhiều sự quan tâm và ngày càng được áp dụng rộng rãi trong nhiều
lĩnh vực khác nhau của khoa học máy tính. Lý thuyết này được phát triển trên một nền tảng toán học vững chắc,
cung cấp những công cụ hữu ích để giải quyết các bài toán phân tích dữ liệu, phát hiện luật v.v… và đặc biệt thích
hợp đối những bài toán chứa đựng thông tin mơ hồ, không chắc chắn.

5.1 LÝ THUYẾT TẬP THÔ

a. Hệ thống thông tin

Một tập dữ liệu có thể biểu diễn dưới dạng một bảng, trên đó mỗi hàng biểu diễn thông tin ứng với một
đối tượng, mỗi cột biểu diễn một thuộc tính có thể đo được của mỗi đối tượng (do các chuyên gia hay người sử
dụng cung cấp). Bảng này được gọi là một hệ thống thông tin.

Hình thức hơn, hệ thống thông tin là một cặp S = (U, A), U là một tập hữu hạn khác rỗng các đối tượng

gọi là tập vũ trụ hay là tập phổ dụng, A là một tập hữu hạn khác rỗng các thuộc tính. Với mỗi uÎU và aÎA, ta
ký hiệu u(a) là giá trị của đối tượng u tại thuộc tính a. Nếu gọi Ia là tập tất cả giá trị của thuộc tính a, thì u(a) Î Ia
với mọi uÎU. Bây giờ, nếu B = {b1, b2, ..,bk} Í A, ta ký hiệu bộ các giá trị u(bi) bởi u(B). Như vậy, nếu u và v là
hai đối tượng, thì ta sẽ viết u(B) = v(B) nếu u(bi) = v(bi), với mọi i =1, 2, .., k.

b. Quan hệ không phân biệt được

Xét hệ thống thông tin S = (U, A), với mỗi tập thuộc tính B Í A tạo ra một quan hệ hai ngôi
trên U, ký hiệu IND(B) , IND(B) = {(u , v) ÎU ´ U | u (a) = v(a ), "a Î B}

IND(B) được gọi là quan hệ B_không phân biệt được. Dễ kiểm chứng đây là một quan hệ tương
đương trên U. Với mọi đối tượng uÎU, lớp tương đương của u trong quan hệ IND(B) được kí hiệu bởi
[u]B. Tập thương xác định bởi quan hệ IND(B) được ký hiệu U/IND(B) hay U/B, tức là U/IND(B) = U/B
= {[u]B | uÎU}

Ví dụ 5.1: Tập mẫu ở ví dụ 3.1 là một hệ thống thông tin, với

IND(Quang cảnh) = {{D1, D2, D8, D9, D11}, {D3, D7, D12}, {D4, D5, D6, D10, D13, D14}}

IND(Nhiệt độ) = {{D1, D2, D3, D13}, {D4, D8, D10, D11, D12, D14}, {D5, D6, D7, D9}}

IND(Độ ẩm) = {{D1, D2, D4, D8, D12, D14}, {D5, D6, D7, D9, D10, D11, D13}}

65
IND(Gió) = {{D1, D2, D4, D5, D8, D9, D10, D13}, {D2, D6, D7, D11, D12, D14}}

IND(Chơi Tennis) = {{D1, D2, D6, D8, D14}, {D3, D4, D5, D7, D9, D10, D11, D12, D13}}

Xét hệ thống thông tin S = (U, A), một quan hệ bộ phận p xác định trên họ {U/B | B Í A} được định

nghĩa: U/P p U/Q nếu và chỉ nếu "Pi ÎU / P, $Q j ÎU / Q : Pi Í Q j . Khi đó ta nói Q là thô hơn P hay P là mịn

hơn Q.

c. Tập thô

Trong lý thuyết tập thô, để biểu diễn một tập hợp bằng tri thức được cho xác định bởi một tập
thuộc tính, người ta định nghĩa hai phép xấp xỉ:
Cho một hệ thống thông tin S = (U, A), với mỗi tập

con X Í U và B Í A, ký hiệu R = IND(B), ta có 2 tập con sau

R ( X ) = {u Î U | [ u ]B Í X }
R ( X ) = {u ÎU | [u ]B Ç X ¹ Æ}

R ( X ), R ( X ) lần lượt gọi là R-xấp xỉ dưới và R- xấp


xỉ trên của tập X. H 5.1 Tập thô
Tập R ( X ) bao gồm tất cả các phần tử của U chắc chắn thuộc vào X.

Tập R( X ) bao gồm các phần tử của U có khả năng được phân loại vào những phần tử thuộc X
ứng với quan hệ R.
Từ hai tập xấp xỉ người ta định nghĩa các tập:

BNB(X) = R ( X ) - R( X ) : B- miền biên của X.


POSB(X) = R ( X ) : B-vùng dương của X.

NEGB(X) = U - R ( X ) : B-vùng âm của X.


Ký hiệu tập thương của IND(B) trên U là U/B, các xấp xỉ trên và dưới của X có thể viết lại:
R ( X ) = È{WÎ U/B | WÍ X}

R( X ) = È{ WÎ U/B | WÇX ≠ Æ }

Trong trường hợp BNB(X) ¹ Æ, X được gọi là tập thô, ngược lại X được gọi là tập rõ.
Đối với một hệ thống thông tin S = (U, A), B, D Í A, ký hiệu R = IND(B), người ta gọi B-miền khẳng
định dương của D là tập được xác định như sau

66
POS B ( D ) = U
V ÎU / D
( R (V ))

Rõ ràng POS B ( D ) là tập tất cả các đối tượng u sao cho với mọi v Î U mà u ( B) = v( B) ta đều có
u ( D) = v( D) . Nói cách khác, POS B ( D ) = {u Î U | [u ]B Í [u ]D } .

Ví dụ 5.2: Với Hệ thống thông tin là tập mẫu dữ liệu cho ở ví dụ 3.1, ta có:

POS Quang cảnh (Chơi Tennis) = {D3, D7, D12}

POS Nhiệt độ (Chơi Tennis) = POS Độ ẩm (Chơi Tennis) = POS Gió (Chơi Tennis) = Æ

d. Độ chính xác của xấp xỉ

Cho một hệ thống thông tin S = (U, A), với mỗi tập con X Í U và B Í A, đặt R = IND(B), đại
lượng đo sự chính xác của tập xấp xỉ X đối với phân hoạch trên B là giá trị

Card ( R ( X )) R ( X )
aR (X ) = =
Card ( R ( X )) R ( X )

Trong đó card(X) = |X| là lực lượng (số phần tử) của tập X. Rõ ràng 0 £ a R ( X ) £ 1 . Nếu

a R ( X ) = 1 , ta nói X là chính xác đối với R, còn a R ( X ) < 1 , X được gọi là thô đối với R.

e. Bảng quyết định

Bảng quyết định là một hệ thống thông tin có dạng T = (U, A), trong đó tập thuộc tính A được

chia thành hai tập thuộc tính rời nhau C và D, C được gọi là tập thuộc tính điều kiện, còn D là tập thuộc tính
quyết định. Tức là T = (U, CÈD), với CÇD = Æ. Trong trường hợp không sợ bị nhầm lẫn người ta còn ký

hiệu T = (U,C, D).

Ví dụ 5.3: Tập mẫu cho ở ví dụ 3.1 là một bảng quyết định với:
U = {D1, D2, ..,D14}, C = {Quang cảnh, Nhiệt độ, Độ ẩm, Gió}, D= {Chơi Tennis}
Di: là định danh của đối tượng thứ i." i=1..n.
Cho một bảng quyết định T = (U, CÈD), giả sử U/C = {X1, X2,.., Xm} và U/D = {Y1, Y2,.., Yn}. Một lớp
XiÎU/C được gọi là nhất quán nếu u(d) = v(d), "u,vÎXi, "dÎD, lúc này cũng có thể viết u(D) = v(D) = Xi(D);
một lớp YjÎU/D được gọi là nhất quán ngược nếu u(a) = v(a), "u,vÎYj, "aÎC.
Một bảng quyết định T = (U, CÈD) là nhất quán nếu mọi lớp XiÎU/C là nhất quán, ngược lại T được

gọi là không nhất quán. Dễ thấy nếu U/C p U/D thì T = (U, CÈD) là nhất quán. Trong trường hợp |U/D|=1 thì

T được gọi là hệ quyết định thuần khiết (pure decision system).

67
Trong lý thuyết tập thô, tính chất nhất quán của bảng quyết định được thể hiện qua định lý:
Định lý 5.1: Cho bảng quyết định T = (U, CÈD), các mệnh đề sau đây là tương đương:

(i) T = (U, CÈD) là nhất quán


(ii) U/C p U/D
(iii) POSC(D)= U.

f. Ma trận phân biệt (Discernibility Matrix) (Skowron & Rauszer, 1992):


Ma trận phân biệt của một Bảng quyết định T = (U, CÈD) là một trận vuông

C|U|x|U|={cij |1£ i,j £ |U|}


Với cij= {aÎC| nếu a(ui)=a(uj)} ; Æ trong trường hợp ngược lại.

5.2 BẢNG QUYẾT ĐỊNH VÀ CÂY QUYẾT ĐỊNH

Thuật toán phân lớp, xây dựng cây quyết định dựa vào lý thuyết tập thô RDT:

Đầu vào: Bảng quyết định T = (U, CÈD)

Đầu ra: Một cây quyết định của T (mỗi nút lá là một hệ quyết định thuần khiết)

Phương pháp: Xây dựng cây_RDT (T)

Nếu T không là hệ quyết định thuần khiết thì

{ - Chọn thuộc tính điều kiện AÎC làm thuộc tính chia thỏa

|POSA(D)| = Max (| POSB(D)| , "BÎC)

- Ghi nhận U/A = {UA1, UA2, .., UAk}


§ Với mỗi UAi (i=1..k) ứng với bảng quyết định T Ai= (UAi , C-{A}ÈD)

§ Xây dựng cây_RDT(T Ai ) }

Ví dụ 5.4 Xây, dựng cây quyết định cho bảng quyết định nêu ở ví dụ 5.3

Bước 1: Từ POS Quang cảnh (Chơi Tennis) = {D3, D7, D12}

POS Nhiệt độ (Chơi Tennis) = POS Độ ẩm (Chơi Tennis) = POS Gió (Chơi Tennis) = Æ

Chọn thuộc tính chia là Quang cảnh xây dựng 3 bảng quyết định:

T0 = (U0, C1È D), U0= { Di | Di.[Quang cảnh] = ‘Nắng’}

T1= (U1, C1È D), U1= { Di | Di.[Quang cảnh] = ‘Âm u’}

T2= (U2, C1È D), U2= { Di | Di.[Quang cảnh] = ‘Mưa’}

68
Trong đó, C1 = {Nhiệt độ, Độ ẩm, Gió}
Chú ý T1= (U1, C1È D) là hệ quyết định thuần khiết, vì các phần tử thuộc bẳng đều mang giá
trị quyết định Chơi Tennis = ‘Có’ thể hiện bởi H 5.2
Nhiệt độ Độ ẩm Gió Chơi Tennis
D3 Nóng Cao Yếu Có
D7 Mát Bình thường Mạnh Có
D12 Ấm áp Cao Mạnh Có
H 5.2 Bảng T1

Các bảng T0, T2 được thể hiện lần lượt ở H 5.3, H 5.6 :

Nhiệt độ Độ ẩm Gió Chơi Tennis


D1 Nóng Cao Yếu Không
D2 Nóng Cao Mạnh Không
D8 Ấm áp Cao Yếu Không
D9 Mát Bình thường Yếu Có
D11 Ấm áp Bình thường Mạnh Có
H 5.3 Bảng T0
Nhiệt độ Độ ẩm Gió Chơi Tennis
D4 Ấm áp Cao Yếu Có
D5 Mát Bình thường Yếu Có
D6 Mát Bình thường Mạnh Không
D10 Ấm áp Bình thường Yếu Có
D13 Nóng Bình thường Yếu Có
D14 Ấm áp Cao Mạnh Không
H 5.4 Bảng T2

Từ bảng T0 ta có: POS Nhiệt độ (Chơi Tennis) = {D1, D2, D9}

POS Độ ẩm(Chơi Tennis) = {D1, D2, D8, D9, D11}


POS Gió (Chơi Tennis) = Æ

Áp dụng thuật toán Xây dựng cây_RDT cho T0, chọn thuộc tính chia là Độ ẩm, từ T0 xây

dựng được 2 bảng quyết định T00, T01 (H 5.5, H 5.6) là các hệ quyết định thuần khiết:

Nhiệt độ Độ ẩm Gió Chơi Tennis


D1 Nóng Cao Yếu Không
D2 Nóng Cao Mạnh Không
D8 Ấm áp Cao Yếu Không
H 5.5 Bảng T00
Nhiệt độ Độ ẩm Gió Chơi Tennis
D9 Mát Bình thường Yếu Có
D11 Ấm áp Bình thường Mạnh Có
H 5.6 Bảng T01

69
Tương tự, từ bảng T2, ta có:

POS Nhiệt độ (Chơi Tennis) = {D13 }


POS Độ ẩm(Chơi Tennis) = Æ
POS Gió (Chơi Tennis) = {D4, D5, D10, D13, D6, D14}

Áp dụng thuật toán Xây dựng cây_RDT cho T2, chọn thuộc tính chia là Gió, từ T2 xây dựng

được 2 bảng quyết định T20, T21 (H 5.7, H 5.8) là các hệ quyết định thuần khiết:

Nhiệt độ Độ ẩm Gió Chơi Tennis


D4 Ấm áp Cao Yếu Có
D5 Mát Bình thường Yếu Có
D10 Ấm áp Bình thường Yếu Có
D13 Nóng Bình thường Yếu Có
H 5.7 Bảng T20
Nhiệt độ Độ ẩm Gió Chơi Tennis
D6 Mát Bình thường Mạnh Không
D14 Ấm áp Cao Mạnh Không
H 5.4 Bảng T21

Thuật toán Xây dựng cây_RDT (T) dừng do các hệ quyết định cuối cùng đề là các hệ thuần khiết. Nói

khác hơn ta có cây quyết định xây dựng theo thuật toán như H 3.4.

5.3 PHÂN LỚP DỰA VÀO LUẬT QUYẾT ĐỊNH

Việc phân lớp dựa vào lý thuyết tập thô có thể thực hiện theo mô hình sau:

Tìm các Rút gọn


a1 a2 a3 a.. an D
u1 Tập các Rút gọn
u2
u3 Sinh Luật
..
um Tập luật

Bảng quyết định


Phân lớp

H 5.5 Mô hình phân lớp dựa vào lý thuyết tập thô

Mô hình này được minh họa qua ví dụ sau:

70
Ví dụ 5.5:

a1 a2 a3 a4 a5 D Rút gọn
Bảng DS a1(2)&a4(2)®D(1)
u1 2 1 3 2 1 1
{a1,a4} a3(2)® D(2)
u2 1 1 2 3 2 2
{a3} a1(3)® D(1)
u3 3 1 3 2 1 1
{a1} a1(1)& a3(3)® D(2)
u4 1 1 3 3 2 2
{a1, a3} a2(3) ® D(2)
u5 2 3 3 3 2 2
{a2}
Bảng quyết định (DS) Tập luật quyết định
(Phân lớp)

u1 u2 u3 u4 u5
u1 - {a1, a3, a4, a5} {a1} {a1, a4, a5} {a2, a4, a5}
u2 {a1, a2, a4, a5} - {a1, a3, a4, a5} {a3, a5} {a1, a2, a3, a5}
u3 {a1} {a1, a3, a4, a5} - {a1, a4, a5} {a1, a2, a4, a5}
u4 {a1, a4, a5} {a3, a5} {a1, a4, a5} - {a1, a2}
u5 {a2, a4, a5} {a1, a2, a3, a5} {a1, a2, a4, a5} {a1, a2} -
H 5.6 Ví dụ minh họa cách sinh tập luật quyết định

- Rút gọn tập thuộc tính bảng quyết định:

Xét một bảng quyết định T = (U, CÈD). Tập thuộc tính R Í C được gọi là một rút gọn của C
nếu POSR(D)=POSC(D). Nhân của tập thuộc tính điều kiện C ký hiệu CORE (C) được định nghĩa
CORE(C) = ÇRED(C)
Ở đây, RED(C) là tập hợp tất cả rút gọn của C.
Ngoài ra, người ta cũng định nghĩa rút gọn C-miền khẳng định dương của D:
Nếu B Í C thỏa

1.POS B ( D ) = POSC ( D )
2."a Î B, POSC ( D) ¹ POSC -{a} ( D )

B được gọi là rút gọn C-miền khẳng định dương của D.

Có nhiều thuật toán tìm rút gọn tối thiểu tập thuộc tính điều kiện của một bảng quyết định. Tuy
nhiên, độ phức tạp của các thuật toán này là NP-khó. Vì vậy, người ta thường sử dụng các thuật toán rút
gọn xấp xỉ. Trong tài liệu này, chúng tôi trình bày thuật toán xấp xỉ rút gọn Johnson phục vụ cho việc xây
dựng tập luật quyết định phục vụ cho việc phân lớp.

71
Thuật toán xấp xỉ rút gọn Johnson

Đầu vào: Ma trận quyết định C|U|x|U|={cij |1£ i,j £ |U|} của bảng quyết định T = (U, CÈD)

Đầu ra: Tập các thuộc tính phục vụ phân lớp

Phương pháp:
Duyệt từng hàng hi (i=1..|U|) của ma trận phân biệt
{ Tại hàng hi: Khởi tạo Ri= Æ // Ri tập các thuộc tính để phân biệt đối tượng thứ i
Trong khi hi <>Æ thực hiện
{- Tìm tần suất xuất hiện các thuộc tính xuất hiện trong các cij.
- Chọn thuộc tính a là thuộc tính có tần suất lớn nhất.
- Ri =Ri È{a}
- Loại các cij chứa a }}

Ví dụ 5.6:

Xét bảng quyết định có ma trận phân biệt thể hiện trong H 5.6.

Ở hàng 1:
Lần 1: Tìm tần suất xuất hiện các thuộc tính
a1 = 3, a2 = 0, a3 = 1, a4 = 3, a5 = 3;
Các thuộc tính có tần suất cao nhất { a1,a4,a5}
Nếu nhiều hơn một phần tử , chọn ngẫu nhiên 1 phần tử { Chọn a4}
R1 = R1 È {a4}
Xóa các c1j chứa a4.
Lần 2: Tìm tần suất xuất hiện các thuộc tính
a1 = 1, a2 = 0, a3 = 0, a4 = 0, a5 = 0;
Thuộc tính có tần suất cao nhất { a1 }
Chọn a1.
R1 = R1 È {a1} = {a1,a4}
Xóa các c1j chứa a1.

Ở hàng 2: R2 = {a3}
Ở hàng 3: R3= {a1}
Ở hàng 4: R4 = {a1,a3} hay {a1,a5}
Ở hàng 5: R5 = {a2}
Kết quả được thể hiện ở H 5.7

72
u1 u2 u3 u4 u5 Rút gọn
u1 - {a1, a3, a4, a5} {a1} {a1, a4, a5} {a2, a4, a5} {a4, a1}
u2 {a1, a2, a4, a5} - {a1, a3, a4, a5} {a3, a5} {a1, a2, a3, a5} {a3}
u3 {a1} {a1, a3, a4, a5} - {a1, a4, a5} {a1, a2, a4, a5} {a1}
u4 {a1, a4, a5} {a3, a5} {a1, a4, a5} - {a1, a2} {a1,a3}
u5 {a2, a4, a5} {a1, a2, a3, a5} {a1, a2, a4, a5} {a1, a2} - {a2}
H 5.7 Kết quả xấp xỉ rút gọn theo thuật toán Johnson

Tập luật phân lớp:

a1(2)&a4(2)®D(1)
a3(2)® D(2)
a1(3)® D(1)
a1(1)& a3(3)® D(2)
a2(3) ® D(2)

Chú ý: - Thuật toán xấp xỉ rút gọn Johnson đã được cải tiến bằng cách bổ sung heuristic: chọn các
thuộc tính có trọng số lớn để giữ lại, cho hiệu suất cao hơn.

- Rút gọn thuộc tính là bài toán được nhiều người nghiên cứu tập thô quan tâm, bởi nó có thể rút gọn hệ
thống thông tin, nâng cao tốc độ xử lý nhằm phát hiện các luật (phụ thuộc) trong khai phá dữ liệu. Có
rất nhiều thuật toán cho bài toán này, tham khảo [6][8][19][31][38][40]

Câu hỏi và bài tập

1. Cho một bảng quyết định có dữ liệu như sau:

U a b c d e
1 1 0 2 1 0
2 0 0 1 2 1
5 2 0 2 1 0
4 0 0 2 2 2
5 1 2 2 1 1
a. Tìm ma trận phân biệt
b. Tìm rút gọn xấp xỉ theo thuật toán Johnson.
c. Tìm tập luật phân lớp
2. Thử đề xuất heuristic để xác định trọng số các thuộc tính để phục cho việc tìm một rút gọn xấp xỉ
tập thuộc tính.
3. Tìm hiểu các thuật toán rút gọn tập thuộc tính trong lý thuyết tập thô.

73
Chương 6

ĐÁNH GIÁ HIỆU NĂNG MỘT PHÂN LỚP

6.1 LƯỢNG GIÁ ĐỘ CHÍNH XÁC DỰ ĐOÁN CỦA MỘT PHÂN LỚP

Tiêu chí quan trọng nhất để đánh giá hiệu năng một phân lớp là độ chính xác dự đoán (predicative
accuracy) (Độ chính xác dự đoán của mô hình phân lớp trên một tập dữ liệu là tỉ lệ của số đối tượng chưa
nhận biệt được phân lớp đúng bởi mô hình). Ngoài ra còn có nhiều tiêu chí khác cũng rất quan trọng như độ
phức tạp thuật toán, sử dụng hiệu quả tài nguyên (máy tính), tính linh hoạt và toàn năng. Một số phương pháp
thường được sử dụng cho việc lượng giá này là: Chia dữ liệu thành tập dữ liệu huấn luyện (training set) và tập
dữ liệu kiểm thử (test set), kiểm tra chéo (Cross-validation).

a. Phương pháp 1: Phân chia dữ liệu thành các tập dữ liệu huấn luyện và kiểm thử

Tập dữ liệu đã cho được chia ngẫu nhiên thành 2 tập: tập huấn luyện và tập kiểm thử, thông
thường 2/3 số bộ của tập dữ liệu được chia vào tập huấn luyện, phần còn lại được chia vào tập kiểm thử.
Sử dụng kỹ thuật phân lớp để phân lớp tập huấn luyện, sau đó dự đoán phân lớp cho tập dữ liệu kiểm thử. Độ
chính xác dự đoán được xác định theo công thức: p = C/N, với C là số đối tượng (bộ) dữ liệu được phân lớp
đúng, N số lượng bộ của tập kiểm thử.
Tập dữ liệu
huấn luyện

Thuật toán học

Phân lớp

Tập dữ liệu Tập dữ liệu kiểm thử Lượng giá

H 6.1 Tập huấn luyện và kiểm thử

- Sai số chuẩn (Standard Error)

74
Lưu ý rằng một bộ kiểm thử sẽ cho một độ chính xác dự đoán khác nhau. Vì vậy, cần có một
phương pháp lượng giá tổng thể dựa trên lượng giá với nhiều tập kiểm thử khác nhau. Điều đó rất khó
thực hiện, thay vào đó người ta sử dụng các phương pháp thống kê để tìm ra phạm vi (range) chứa độ
chính xác dự đoán với một xác xuất hay độ tin cậy (confidence level) cho trước.

Thực hiện điều này người ta sử dụng sai số chuẩn kết hợp với giá trị p. Nếu bộ kiểm thử có N đối
tượng, p đối tượng dược dự đoán đúng, sai số chuẩn là p (1  p ) / N (xem các tài liệu thống kê).

Ý nghĩa quan trọng của sai số chuẩn là cho phép nói độ chính xác dự đoán là thuộc phạm vi ứng
với xác xuất chỉ định là bao nhiêu. Xác suất hay còn gọi là độ tin cậy ký hiệu CL và giá trị số ứng với sai
số chuẩn được ký hiệu ZCL. Mối l;iên hệ giữa các giá trị CL và ZCL thể hiện ở H 6.2

Độ tin cậy (CL) 0.9 0.95 0.99


ZCL 1.64 1.96 2.58

H 6.2 Mối quan hệ giữa Độ tin cậy và ZCL

Nếu độ chính xác dự đoán của một kiểm thử là p, với sai số chuẩn là S. Sử dụng bảng này có thể
nói rằng: Với xác suất CL (hay độ tin cậy CL) độ chính xác dự đoán đúng thuộc khoảng p ± ZCL ´ S.

Ví dụ 6.1: Với tập dữ liệu kiểm thử có 100 đối tượng, một phân lớp dùng để dự đoán có 80 đối
tượng dự đoán đúng. Độ chính xác dự đoán ứng với tập kiểm thử này là 80/100=0.8. Sai số chuẩn sẽ là

0.8 * 0.2 / 100  0.0016  0.04 . Chúng ta nói rằng, với xác suất 0.95, độ chính xác dự đoán đúng nằm
trong khoảng 0.8 ± 1.96 ´ 0.04 (có nghĩa là khoảng (0.7216, 0.8784)).

Thay cho độ chính xác dự đoán là 0.8, người ta thường tham chiếu đến tỉ lệ sai sót (error rate) là
0.2.

Giá trị CL được sử dụng để lượng giá độ chính xác dự đoán, là một vấn đề cần lưu ý, giá trị
thường được chọn là giá trị tối thiểu 0.9. Tuy nhiên trong các bài báo kỹ thuật, người ta thường sử dụng
công thức p  p (1  p ) / N , mà không sử dụng đại lượng ZCL.

- Huấn luyện và kiểm thử lặp

Trong trường hợp này, phân lớp được thử nghiệm với k (k>1) bộ kiểm thử. Nếu bộ kiểm thử thứ
i có kích thước Ni, độ chính xác dự đoán pi (1£ i £ k). Sai số chuẩn ứng với k bộ kiểm thử này sẽ tính theo

công thức: p (1  p ) / T . Trong đó

p   pi Ni / T ; T   N i
k k

i 1 i 1

75
b. Phương pháp 2: Kiểm tra chéo k-tập mẫu con (k-fold Cross-validation)
Một phương pháp lượng giá độ chính xác dự đoán của một phân lớp khi số lượng các đối
tượng tập mẫu nhỏ là kiểm tra chéo k-tập mẫu con (H 6.3).

Nếu tập mẫu chứa N đối tượng, chia tập mẫu thành k phần bằng nhau, k là một số nguyên khá
nhỏ như 5 hay 10. (Nếu N không chia hết cho k, thì phần cuối cùng chứa ít đối tượng hơn k-1 phần còn
lại). Mỗi phần lần lượt là một bộ dữ liệu kiểm thử, k-1 phần còn lại là tập huận luyện- điều này có nghĩa
là quá trình huấn luyện và kiểm thử được thưc hiện k lần, độ chính xác dự đoán p là tổng số bộ dự đoán
đúng trong k bước lặp chia cho N. Sai số chuẩn được tính theo công thức: p (1  p ) / N

Thuật toán học

Phân lớp

Tập dữ liệu LƯỢNG GIÁ

H 6.3 Kiểm tra chéo k- tập mẫu con

c. Phương pháp 3: Kiểm tra chéo N-tập mẫu con (N-fold Cross-validation)

Đây là một trường hợp đặc biệt của kiểm tra chéo k- tập mẫu con với k= N.

6.2 MA TRẬN NHẦM LẪN (CONFUSION MATRIX)

Nếu một phân lớp phân tập mẫu thành m lớp. Ma trận nhầm lẫn của phân lớp này là ma trận :
Cmxm = {cij | 1 £ i,j £ m }, với cij là số đối tượng chính xác thuộc lớp i, nhưng được dự đoán theo phân lớp
vào lớp j. Trong trường hợp m=2, phân lớp phân tập đối tượng thành hai lớp “khẳng định”(positive) và
“phủ định” (negative)

Phân lớp dự đoán Tổng số các


Phân lớp đúng
+ - đối tượng
+ TP FN P
- FP TN N
H 6.4 Ma trận nhầm lẫn ứng phân lớp hai lớp

76
TP : số lượng đối tượng chính xác thuộc lớp + được phân đúng vào lớp +
FP: số lượng đối tượng không thuộc lớp + nhưng được phân vào lớp +
FN: số lượng tượng chính xác thuộc lớp + được phân vào lớp –
TN: số lượng đối tượng chính xác thuộc lớp - được phân đúng vào lớp –
P= TP + FN; N = FN + TN

6.3 CÁC ĐỘ ĐO HIỆU NĂNG (PERFORMANCE MEASURES)

Tỉ số các đối tượng thuộc lớp + được phân chính xác vào lớp +
TP rate TP/P
với số đối tượng chính xác thuộc lớp +
Tỉ số các đối tượng thuộc lớp - được phân +
FP rate FP/N
với số đối tượng chính xác thuộc lớp -
Tỉ số các đối tượng thuộc lớp + được phân vào lớp -
FN rate FN/P
với số đối tượng chính xác thuộc lớp +
Tỉ số các đối tượng thuộc lớp - được phân chính xác vào lớp -
TN rate TN/N
với số đối tượng chính xác thuộc lớp -
Pre
Tỉ số các đối tượng thuộc lớp + được phân chính xác vào lớp +
Giá trị dự đoán TP/(TP+FP)
với số đối tượng được phân lớp dự đoán vào lớp +
Khẳng định
(2.Pre.TP rate)
Tỷ số F1 Độ đo tổ hợp của TP rate và Pre
/(Pre+TP rate)
Độ chính xác Tỷ số số lượng các đối tượng phân lớp đúng
(TP+TN)/(P+N)
dự đoán với tổng số các đối tượng
Tỷ số số lượng các đối tượng phân lớp sai
Tỷ lệ lỗi (FP+FN)/(P+N)
với tổng số các đối tượng
H 6.5 Một số độ đo hiệu năng phân lớp

6.4 SO SÁNH TP RATE, FP RATE VỚI ĐỘ CHÍNH XÁC DỰ ĐOÁN

Một trong những điểm mạnh đặc trưng cho một phân lớp của các giá trị TP rate và FP rate là
chúng không phụ thuộc vào mối liên quan kích thước của P và N. Ngược lại, độ chính xác dự đoán và các
độ đo khác được suy dẫn từ các giá trị của cả hai hàng của bảng H 6.4 nên phụ thuộc vào mối liên quan
của P và N, đó là một nhược điểm.
Để minh họa cho điều nhận định này, xét ma trận nhầm lẫn của một phân lớp thể hiện ở H 6.6.
Từ các giá trị của bảng, ta có TP rate = 0.89, FP rate = 0.2.

77
Bây giờ, giả định rằng số lượng các đối tượng tăng lên theo thời gian, và do huấn luyện được cải
thiện, do đó có một tỷ số cao hơn. Với giả định này ta có ma trận nhầm lẫn thể hiện ở H 6.7

Phân lớp dự đoán Tổng số các


Phân lớp đúng
+ - đối tượng
+ 8000 1000 9000
- 2000 8000 10.000
H 6.6 Ma trận nhầm lẫn ứng với tập mẫu lần đầu

Phân lớp dự đoán Tổng số các


Phân lớp đúng
+ - đối tượng
+ 80000 10000 90000
- 2000 8000 10000
H 6.7 Ma trận nhầm lẫn ứng với tập mẫu lần hai (1)

Với hai ma trận nhầm lẫn này, TP rate và FP rate là không đổi (tương ứng là 0.89 và 0.2). Tuy
nhiên giá trị độ chính xác lại thay đổi, cụ thể độ chính xác dự đoán ứng với H 6.6 là 16000/19000 = 0.842
và ứng với H 6.7 là 88000/100000 = 0.88.

Một khả năng có thể xảy ra là sau thử nghiệm lần đầu, làm gia tăng tỷ lệ lỗi, ma trận nhầm lẫn thể
hiện ở H 6.8

Phân lớp dự đoán Tổng số các


Phân lớp đúng
+ - đối tượng
+ 8000 1000 9000
- 20000 80000 100000
H 6.8 Ma trận nhầm lẫn ứng với tập mẫu lần hai (2)

Với ma trận nhần lẫn này, độ đo độ chính xác là 88000/109000 = 0.807. Cho dù các bộ dữ liệu
thử nghiệm cho các tỷ lệ FP rate, FP rate là như nhau, nhưng 3 giá trị độ chính xác dự đoán là thay đổi
nằm trong khoảng 81% đến 88% phản ảnh sự thay đổi các giá trị trong các phân lớp chứ không phản ảnh
chất lượng của phép phân lớp.

6.5 TÌM PHÂN LỚP TỐT NHẤT

Không có cách nào là không có nhược điểm khi chọn một phân lớp tốt nhất ứng với một ứng
dụng đã cho, ngoại trừ khi chúng ta tìm hiệu năng thỏa một điều kiện nào đó. Ta thấy rằng khi FP rate
càng gần 0, TP rate càng gần 1, thì phép phân lớp ứng với lớp + càng tốt. Vì vậy, người ta đi xác định
khoảng cách Euclide:

78
Euc  ( FP _ rate 2  (1  TP _ rate)2 .

Phép phân lớp nào có Euc bé hơn thì phân lớp ứng với lớp + là tốt hơn.

Có thể thấy rằng, giá trị Euc không quan tâm đến tính chất lớp + và lớp -, lớp nào quan trọng hơn
nên vẫn chưa có lời cho bài toán tìm phân lớp tốt nhất.

Câu hỏi và bài tập

1. Hai ma trận nhầm lẫn (confusion matrix) trong H 6.9, H 6.10 là kết quả của mô hình “huấn luyện
và kiểm thử” theo thuật toán TDIDT:

Phân lớp dự đoán


Phân lớp đúng
democrat republican
democrat 81 (97%) 2 (2.4%)
republican 6 (11.5%) 46 (88.5%)

H 6.9 Ma trận nhầm lẫn (1)

Phân lớp Phân lớp dự đoán


đúng 1 2 3 5 6 7
1 52 10 7 0 0 1
2 15 50 6 2 1 2
3 5 6 6 0 0 0
5 0 2 0 10 0 1
6 0 1 0 0 7 1
7 1 3 0 1 0 24

H 6.10 Ma trận nhầm lẫn (2)

a. Hãy tính sai số chuẩn (standard error), độ chính xác dự đoán (predictive accuracy) ứng với
mỗi bảng.

b. Đối với mỗi bảng dữ liệu, với các xác suất thể hiện độ tin cậy (confidence level) lần lượt là
0.9, 0.95 và 0.99. Hãy chỉ ra độ chính xác dự đoán đúng nằm trong các khoảng nào?

2. Thử đề xuất một số giải pháp làm giảm giá trị các đại lượng FT, FN trong ma trận nhầm lẫn.

“The secret of success is to know something that nobodyelse knows.”


Aristotle Onassis

79
Chương 7

KHAI PHÁ LUẬT KẾT HỢP


Các luật phân lớp dùng để dự đoán các phần tử chưa được nhận biết có một ý nghĩa rất lớn
trong thực tế. Trong chương này trình bày một loại luật khác đó là luật kết hợp (association rule).
Các luật kết hợp chỉ ra mối quan hệ tương quan phổ biến hay mối kết hợp giữa các hạng mục
(item) trong tập dữ liệu lớn. Ví dụ:
- Những sản phẩm nào thường được mua chung?
- Người ta thường mua sản phẩm gì sau khi mua máy PC?
- Dạng ADN nào có phản ứng với công thức thuốc mới?

Những tri thức này rất quan trọng, hỗ trợ phân tích dữ liệu trong nhiều lĩnh vực khác nhau. Ví dụ
trong lĩnh vực marketing, luật kết hợp dùng để phân tích chiến lược bán hàng, quản lý kho, quảng cáo, ..

Khai phá luật kết hợp được chia thành hai giai đoạn:

a. Khai phá tập phổ biến(FIs - Frequent Item Sets).


b. Khai phá luật từ các tập phổ biến(ARs -Association Rules).

7.1 MỘT SỐ KHÁI NIỆM CƠ BẢN

Trong phần trình bày này sẽ dụng một số thuật ngữ tiếng Anh thay cho thuật ngữ tiếng Việt để
phần trình bày được ngắn gọn

Item Mục, hạng mục Association rule Luật kết hợp


Itemset Tập (hạng) mục Support Độ hỗ trợ
Transaction Giao dịch Confidence Độ tin cậy
Association Kết hợp Frequent itemset Tập hạng mục phổ biến
a. Tập hạng mục (Item Set)

Giả sử I là một tập hữu hạn; mỗi phần tử của I gọi là một hạng mục (Item).
Một Itemset X là một tập con của I, Itemset X được gọi là k_itemset nếu X chứa k hạng mục.

b. Giao dịch (Transaction)

Một tập các giao dịch xác định trên I là một ánh xạ T: {1,2,..,n} ® P(I). Tập T(k) là giao dịch
thứ k của T. Các số 1,..,n là các định danh giao dịch (tids).

Ví dụ 7.1: Bảng sau mô tả một tập giao dịch trên tập dược phẩm trong một cửa hàng thuốc:

80
Tids Dược phẩm
1 {Aspirin, Vitamin C}
2 {Aspirin, Sudafed}
3 {Tylenon}
4 {Aspirin, Vitamin C, Sudafed}
5 {Tylenon, Cepacol}
6 {Aspirin, Cepacol}
7 {Aspirin, Vitamin C}

Tập dữ liệu tương ứng biễu diễn dưới dạng bảng 0/1:

Tids Aspirin VitaminC Sudafed Tylenol Cepacol


1 1 1 0 0 0
2 1 0 1 0 0
3 0 0 0 1 0
4 1 1 1 0 0
5 1 0 0 0 1
6 1 0 0 0 1
7 1 1 0 0 0
H 7.1 Tập giao dịch trên tập dược phẩm trong một cửa hàng thuốc

c. Độ hỗ trợ (Support)

Cho T: {1,2,..,n} ® P(I) là một tập các giao dịch xác định trên tập hạng mục I. Độ hỗ trợ của một
itemset X ký hiệu là sup(X) được xác định bởi công thức:

λ( X ) χ( X )
sup( X )  
n T

Trong đó: l(X) = {k | X Í T(k)}; c(X) = |l(X)|

Ví dụ 7.2: Với tập các giao dịch T được cho ở ví dụ 7.1, ta có:

l({Aspirin, Vitamin C}) = {1, 4, 3}Þc({Aspirin, Vitamin C})=3, sup({Aspirin, Vitamin C})= 3/7.

d. Tập phổ biến (Large itemset/ frequent itemset), tập không phổ biến (small itemset)

Một itemset X được gọi là tập phổ biến (large itemset hay frequent itemset) trong T nếu support
của X lớn hơn hoặc bằng ngưỡng support tối thiểu -gọi là minsup (được định nghĩa trước bởi người
dùng) ngược lại thì X được gọi là tập không phổ biến (small itemset).

81
Các tính chất của large itemset:
· Nếu AÍB và A, B là các Itemset thì sup(A) ³ sup(B) (vì tất cả các giao dịch của T chứa B thì
cũng chứa A)
· Tính chất Apriori:
o Mọi tập con của một tập phổ biến đều phổ biến, nghĩa là:
§ "YÍX, nếu sup(X) ³ minsup Þsup(Y) ³ minsup.
o Mọi tập mẹ của tập không phổ biến đều không phổ biến, nghĩa là:
§ "YÊX, nếu sup(X) £ minsup Þ sup(Y) £ minsup
Trong các trình bày sau, ta luôn xét các khái niệm trên tập giao dịch T: {1,2,..,n} ® P(I).
e. Luật kết hợp (Association rule)
Một luật kết hợp là một công thức có dạng X Þ Y trong đó X,Y là hai itemset (XÌ I, YÌ I) thỏa
XÇY=f, X được gọi là tiền đề và Y được gọi là hệ quả của luật.

f. Độ hỗ trợ của luật kết hợp


Độ hỗ trợ của một luật X Þ Y xác định trên tập giao tác T, ký hiệu sup(X Þ Y) là khả năng mà
tập giao dịch T hỗ trợ cho các thuộc tính trong cả X và Y.

sup(X Þ Y) = |l (XÈY)| / |T| (= P(XÈY))

g. Độ tin cậy của luật kết hợp

Độ tin cậy của một luật X Þ Y, ký hiệu conf(X Þ Y) là xác suất có điều kiện P(Y|X)

χ( X  Y )
conf ( X  Y ) 
χ( X )

h. Luật kết hợp hợp lệ

Một luật kết hợp hợp lệ là một luật kết hợp mà với cặp hệ số minsup, minconf do người dùng
chọn trước: 0 £ minsup £ 1 và 0 £ minconf £ 1 thì luật phải thoả các điều kiện sau:

sup(X Þ Y) ³ minsup và conf(X Þ Y) ³ minconf

7.2 KHAI PHÁ TẬP PHỔ BIẾN

Trong phần trình bày từ đây về sau sử dụng một số ký hiệu qui ước:

I: Tập các hạng mục; T là tập các giao dịch xác định trên I.
K (KÍI): K được gọi là tập các hạng mục m_phổ biến nếu sup(K) ³ m
Tμ : Tμ  {K  I | sup( K )  μ}

82
Tμ ,k  { K | K là k_itemset  sup( K )  μ} (Tập tất cả các k_itemset có độ hỗ trợ lớn hơn

hoặc bằng (³) m; do đó Tμ  U Tμ ,k )


k 1

C Tμ,k = tập các ứng viên k_itemset có độ hỗ trợ lớn hơn hoặc bằng (³) m.

A. Thuật toán tìm tập phổ biến Apriori:


Thuật toán do Agrawal đề nghị năm 1994, ý tưởng của thuật toán dựa vào tính chất Apriori 7.1
d: các ứng viên k+1_itemset có độ hỗ trợ ³ m, phải được sinh ra từ các k_itemset có độ hỗ trợ ³ m
a. Thuật toán tìm tập các ứng viên k+1_itemset có độ hỗ trợ lớn hơn hoặc bằng (³) m.

Thuật toán Function apriori-gen


Đầu vào: giá trị minsup m; Tμ ,k

Đầu ra: tập các ứng viên C Tμ,k 1

Phương pháp:
C Tμ,k 1  ;

For each L, M  Tμ ,k

For each L, M  Tμ ,k If (L¹M and LÇM  Tμ , k 1 ) then

Đưa LÈM vào C Tμ,k 1

Xóa tất cả các tập K thuộc C Tμ,k 1 mà

K có một tập con chứa k_itemset không thuộc Tμ ,k

b. Thuật toán tìm tập Tμ chứa các tập itemset m_phổ biến:

Thuật toán Apriori


Đầu vào: tập các giao dịch T và minsup m
Đầu ra: tập Tμ chứa các tập itemset m_phổ biến

Phương pháp: C Tμ,1  {{i}| i  I };

Gán i=1;
While ( C Tμ,i ¹Æ) do

/ * pha lượng giá */

Tμ ,i  {L  C Tμ,i | sup( L)  μ}

/* sinh các ứng viên */

83
C Tμ,i 1  apriori _ gen(Tμ ,i )

i++;

end while;

output Tμ  U Tμ , j


j i

Ví dụ 7.2: Xét T là tập dữ liệu đã cho:

a b c d e
T(1) 1 1 0 0 0
T(2) 0 1 1 0 0
T(3) 1 0 0 0 1
T(4) 1 0 0 0 1
T(5) 0 1 1 0 1
T(6) 1 1 1 1 1
T(7) 1 1 1 0 0
T(8) 0 1 1 1 1
H 7.2 Tập các giao dịch

Tập các độ hỗ trợ của các tập con của tập các hạng mục I={a,b,c,d,e}

a b c d e
5 6 5 2 5
ab ac ad ae bc bd be cd ce de
3 2 1 3 5 2 3 2 3 2
abc abd abe acd ace ade bcd bce bde cde
2 1 1 1 1 1 2 3 2 2
abcd abce abde acde bcde
1 1 1 1 2
abcde
0
H 7.3 Lượng hỗ trợ của các itemset
Bắt đàu với m=0.25 và Tμ ,0   , thuật toán Apriori tính các tập lần lượt như sau:

C Tμ,1 ={a, b, c, d, e}

Tμ ,1 = {a, b, c, d, e}

C Tμ,2 = {ab, ac, ad, ae, bc, bd, be, cd, ce, de}

Tμ ,2 = {ab, ac, ae, bc, bd, be, cd, ce, de}

C Tμ,3 = {abc, abe, ace, bcd, bce, bde, cde}

84
Tμ ,3 = {abc, bcd, bce, bde, cde}

C Tμ,4 = {bcde}

Tμ ,4 = {bcde}

C Tμ,5 = Æ;

Do đó, kết quả tập Tμ cần tìm là:


4
Tμ  U Tμ ,i = { a, b, c, d, e, ab, ac, ae, bc, bd, be, cd, ce, de, abc, bcd, bce, bde, cde, bcde}
i 1

c. Nhận xét: Số lượng các phép tính để sinh các tập hạng mục có độ hỗ trợ thỏa yêu cầu rất
lớn do phải xét tổ hợp các thuộc tính. Trong quá trình xử lý còn phải tổ chức lưu trữ các tập ứng viên
trung gian.
B. Thuật toán tìm tập phổ biến FP-Tree
Để khắc phục những chi phí lớn của thuật toán Apriori, Jiawei Han, Jian pei và Yiwen Yin (2000)
đã đưa ra thuật toán FP_growth để tìm tập mục phổ biến không sinh các tập mục ứng viên từ các tập mục
phổ biến trước (chú ý J. Han sử dụng khái niệm mẫu (pattern) thay vì khái niệm tập hạng mục (itemset))
bằng cách sử dụng ba kỹ thuật:
Thứ nhất, thuật toán sử dụng cấu trúc cây mẫu phổ biến FP_Tree để nén dữ liệu. Những nút trong
cây là các mục có độ dài là 1, được gán nhãn bởi tên mục và được sắp xếp theo tần suất xuất hiện của các
mục.
Thứ hai, khai phá từng đoạn mẫu dựa trên FP_Tree, bắt đầu từ mẫu phổ biến có kích thước 1 và
chỉ kiểm tra trên cơ sở mẫu phụ thuộc (conditional pattern base), khởi tạo FP_Tree của mẫu phụ thuộc,
thực hiện khai thác đệ quy trên cây này. Mẫu kết quả nhận được qua việc kết nối mẫu hậu tố với mẫu mới
được sinh ra từ FP_Tree phụ thuộc.
Thứ ba, dùng kỹ thuật tìm kiếm phân hoạch không gian tìm kiếm và chia để trị để chia nhiệm vụ
khai thác thành những nhiệm vụ nhỏ hơn và giới hạn lại các mẫu làm giảm không gian tìm kiếm.

a. Thuật toán xây dựng FP-Tree:

Định nghĩa FP_Tree: là một cấu trúc gồm 2 thành phần:

1. Cây bậc n: bao gồm nút gốc có nhãn “Null”, mỗi nút của cây có 4 trường: Item_name, count,
node link, parent; với item_name là nhãn của nút, count là số giao dịch mà mục này xuất hiện,
node_link chứa liên kết với nút (tiếp theo) trong cây nếu có cùng Item_name hay Null (nếu không
có), parent: chứa địa chỉ của nút mẹ.
2. Bảng tiêu đề: (Header Table) gồm 3 cột Item_name, Count và Node_link: trỏ tới nút cuối chứa
nhãn Item_name được tạo trong FP_Tree.

85
Thuật toán xây dựng FP-Tree:

Đầu vào: Tập các giao dịch T của CSDL D, minsup (ngưỡng độ hỗ trợ) hay min (count)

Đầu ra: Cây mẫu phổ biến FP_Tree

Phương pháp:

Bước 1: Duyệt T, đếm số lần xuất hiện của các mục và xác định tập mục phổ biến F . Sắp xếp các
mục phổ biến giảm dần theo độ hỗ trợ lưu thành danh sách L.
Bước 2: (tạo cây P) Đầu tiên tạo nút gốc R có nhãn Null;
Khởi tạo bảng tiêu đề có |F| dòngchứa các mục thuộc L, các node-link = null.
Duyệt tập giao dịch T
Mỗi giao dịch t Î T
/* Các mục của một giao dịch được sắp theo giảm dần */
Đưa các mục phổ biến của t vào cây: Insert_tree(t, R)
/* Các giao dịch có chung items tạo thành các nhánh có tiền tố (prefix) chung */
- Thủ tục procedure Insert_tree(t, R) {
Đặt P=[p|t-p] , với p là phần tử đầu tiên của t và t-p là phần còn lại của danh sách giao dịch t
if R có một con N sao cho N.item-name = p then N.count ++
else {
Tạo nút mới N;
N.count = 1;
N.item-name = p
N. parent = R
// Tạo node-link chỉ đến item, H là bảng Header
N.node-link = H[p].head
H[p].head = N
}
// Tăng biến count của p trong bảng header thêm 1
H[p].count ++;
If (t-p) != null then
Call Insert_Tree (t-p, N) ;
}

Ví dụ 7.3: Xét một CSDL có tập giao dịch được thể hiện ở H 7.4.

Xây dựng FP-tree với minsup = 0.6 lần lượt các bước ta có kết quả H 7.5

86
item count item count item count
Tid Danh sách các item
a 3 i 1 f 4
1 f, a, c, d, g, i, m,p b 3 k 2 c 4
c 4 l 1 a 3
2 a, b, c, f, l, m, o
d 1 m 3 b 3
3 b, f, h, j, o e 1 n 1 m 3
f 4 o 2 p 3
4 b, c, k, s, p
g 1 p 3
5 a, f, c, e, l, p, m, n h 1 s 1

H 7.4 Tập giao dịch và danh sách các mục phổ biến

Tid Danh sách Danh sách item phổ biến


item (đã sắp theo thứ tự)

1 f, a, c, d, g, i, m,p f, c, a, m, p

2 a, b, c, f, l, m, o f, c, a, b, m

3 b, f, h, j, o f, b

4 b, c, k, s, p c, b, p

5 a, f, c, e, l, p, m, n f, c, a, m, p

Null Null Null

f:1 f:2 f:3

T(1) c:1 T(2) c:2 T(3) c:2 b:1

fcamp fcabm fb a:2


a:1 a:2

m:l m:l b:1 m:l b:1

p:1 p:1 m:1 p:1 m:1

87
Null Null

f:3 c:1 f:4 c:1

T(4) c:2 b:1 b:1 T(5) c:3 b:1 b:1

cbp fcamp a:3


a:2
p:1 p:1

m:l b:1 m:2 b:1

p:1 m:1 p:2 m:1

Kết quả thu được cây FP-tree đầy đủ:

Null

Header Table
item count Node-link f:4 c:1

f 4
c 4 c:3 b:1 b:1
a 3
b 3
a:3
p:1
m 3
p 3
m:2 b:1

H 7.5 Quá trình xây dựng FP-tree


p:2 m:1

b. Khai thác các mẫu phổ biến từ FP-tree

Tính chất: Bất kỳ mẫu phổ biến nào có chứa mục Ii đều được chứa trên các nhánh (đường dẫn) của
cây FP-tree chứa Ii, số lần xuất hiện của mẫu chứa các nút trong đường dẫn tiền tố bằng số lần xuất hiện
của nút Ii.

Từ tính chất này các mẫu các phổ biến chứa mục Ii được phát hiện thông qua hai bước:

88
1. Xác định các cơ sở mẫu điều kiện (conditional pattern base) của Ii: là các đường dẫn tiền tố của Ii
trong cây FP-tree.
2. Từ các cơ sở mẫu điều kiện xác định được, xác định các FP-Tree điều kiện (conditional FP-Tree)
là các mẫu phổ biến thu được bằng cách xây dựng cây FP-tree cho các các cơ sở mẫu điều kiện.
Kết nối Ii với các FP-tree thu được các mẫu phổ biến cần tìm.

Ví dụ 7.4: Từ FP-Tree đã được dựng ở ví dụ 7.3, với hạng mục p, ta có hai mẫu phổ biến (frequent
pattern) ứng với hai dường dẫn (path) chứa p trong FP-Tree là: (f:4, c:3, a:3, m:2, p:2) và (c:1, b:1, p:1).
Đường dẫn tiền tố của p:2 được xác định là : (f:2, c:2, a:2, m:2) và đường dẫn tiền tố p:1 là (c:1,b:1). Hai
đường dẫn tiền tố của p (f:2, c:2, a:2, m:2) và (c:1,p:1) được gọi là cơ sở mẫu điều kiện của p. Từ cơ sở
mẫu điều kiện của p, tạo một FP-Tree thu được FP-Tree điều kiện của p. FP-Tree này chỉ có duy nhất một
nhanh (c:3).

Item Cơ sở mẫu điều kiện FP-tree điều kiện

p {(f:2, c:2, a:2, m:2), (c:1, b:1)} {(c:3}|p


m {(f:2, c:2, a:2), (f:1, c:1, a:1, b:1)} {(f:3, c:3, a:3)}|m
b {(f:1, c:1, a:1), (f:1), (c:1)} Æ
a {(f:3, c:3)} {(f:3, c:3)}|a
c {(f:3)} Æ
f Æ Æ
H 7.6 Bảng kết quả cơ sở mẫu điều kiện, FT-tree điều kiện cho tất cả hạng mục

Các mẫu phổ biến có thể thu được bởi phương pháp tăng trưởng mẫu dựa trên các bổ đề và hệ quả:
Bổ đề: (Tăng trưởng đoạn) Gọi a là một itemset trong CSDL D, B là một cơ sở mẫu điều kiện của a
và b là một itemset trong B. Độ hỗ trợ (Support) của a È b trong D là tương đương với support của b
trong B.
Hệ quả: (Tăng trưởng mẫu) Gọi a là một mẫu phổ biến trong D, B là một cơ sở mẫu điều kiện của a
và b là một itemset trong B. a È b là phổ biến trong DB nếu và chỉ nếu b là phổ biến trong B.
Bổ đề: (Sinh đường dẫn mẫu FP-Tree) Giả sử FP-Tree T có một đường dẫn P. Tập đầy đủ các mẫu
phổ biến của T có thể được tạo ra bởi liệt kê tất cả tổ hợp của các đường dẫn con của P với độ hỗ trợ là
giá trị minsupport của các hạng mục chứa trong đường dẫn con.

c. Thuật toán FP-Growth

Đầu vào: Cây FP-Tree của CSDL D, ngưỡng min_sup

Đầu ra: Một tập đầy đủ các mẫu phổ biến F

89
Phương pháp:
Procedure FP-Growth(FP-tree,a){
F = Æ;
If Tree chỉ chứa một đường dẫn đơn P then {
for each tổ hợp b của các nút trong P do {
phát sinh mẫu p = aÈb;
support_count(p) = min_sup các nút trong b;
F= FÈb;
}
}
else
for each ai thuộc bảng tiêu đề (header table of ) của FP-tree {
Phát sinh mẫu b = aiÈa ;
support_count (b)=ai.support_count;
F= FÈb ;
Xây dựng cơ sở mẫu điều kiện của b;
Xây dựng FP-tree có điều kiện treeb của b;
if treeb != Æ then
call FP_growth(treeb ,b);
}
}

Item FP-tree điều kiện Các mẫu phổ biến

p {(c:3}|p p, cp
m, fm, cm, am, cam, fam, fcm,
m {(f:3, c:3, a:3)}|m
fcam
b Æ b
a {(f:3, c:3)}|a a, fa, ca, fca
c Æ c
f Æ f
H 7.7 Các tập mẫu phổ biến

d. Ưu điểm của thuật toán FP-Growth:

Với việc sử dụng cấu trúc FP-Tree, thuật toán FP-Growth hiệu quả nhờ ba điểm mấu chốt sau:

90
1. Một CSDL lớn đã được nén lại với độ tập trung cao, với cấu trúc dữ liệu nhỏ hơn sẽ tránh
được chi phí cao do các lần duyệt CSDL.
2. Phương pháp khai phá dựa trên FP-Tree sử dụng phương pháp tăng trưởng đoạn mẫu để tránh
chi phí trong việc sinh một lượng lớn tập các ứng viên.
3. Phương pháp dựa trên kỹ thuật phân đoạn, chia để trị. Việc khai phá các mẫu phổ biến đã
được giới hạn trong cơ sở mẫu điều kiện, điều này giúp giảm không gian tìm kiếm.

FP-Growth hoạt động hiệu quả và linh hoạt khi khai phá được cả pattern ngắn và pattern dài.
Thuật toán có tốc độ thực hiện nhanh hơn thuật toán Apriori và một số thuật toán khai phá tập phổ biến
khác. So sánh trực quan giữa FPGrowth và Apriori, ta có hình H 7.8, khi kích thước tập giao dịch tăng
lên, thời gian thực hiện của FPGrowth so với Apriori được cải thiện đáng kể.

H 7.8 So sánh thuật toán FT-Growth và Apriori


7.3 KHAI PHÁ LUẬT KẾT HỢP TỪ TẬP PHỔ BIẾN:

Luật kết hợp có thể sinh ra từ các tập hạng mục X, Y thuộc tập (hạng mục) phổ biến, mỗi luật có
dạng XÞ (Y\X), trong đó XÌY. Trong thực tế, người ta chỉ quan tâm đến các luật kết hợp hợp lệ, nghĩa
là: conf(X Þ Y) ³ minconf. (giá trị minconf do người sử dụng cung cấp).

Một kết quả đáng lưu ý phục vụ cho việc xây dựng các luật kết hợp hợp lệ:

Định lý: Khi chuyển đổi một số tập hạng mục (itemset) từ vế trái sang vế phải của một luật kết
hợp thì không thể làm tăng thêm độ tin cậy của luật. (Độ tin cậy của luật mới bé hơn hoặc bằng độ tin
cậy luật cũ).

Việc chứng minh định khá dễ dàng dựa vào định nghĩa và tính chất của độ tin cậy, và độ hỗ trợ
xem như bài tập.

Thuật toán khai thác luật kết hợp truyền thống:

91
(MINING TRADITION ASSOCIATION RULES)

Đầu vào: Tập phổ biến FI, độ tin cậy tối thiểu minConf

Đầu ra: Tập luật kết hợp hợp lệ

Phương pháp:

Procedure EXTRACT_AR ( FI, minConf)


Sắp xếp tập FI tăng dần theo chiều dài các tập hạng mục
AR = Æ;
For each Y ÎFI do
For each X ÎFI (với Y đứng sau X) do
If XÌY then
conf = sup(Y)/sup(X)
If conf ³ minConf then
AR = AR È {X ÞY\X} (sup(Y), conf)}
Return AR

7.4 CÁC ĐỘ ĐO HỖ TRỢ ĐỘ QUAN TÂM CỦA LUẬT KẾT HỢP: L IFT , L EVERAGE

Hai độ đo: Độ hỗ trợ và độ tin cậy chưa phản ảnh được tính đúng đắn mối quan hệ giữa các hạng
mục (item). Ta có thể thấy qua ví dụ sau:

Ví dụ 7.5: Giả sử chúng ta quan tâm đến việc phân tích các giao dịch tại một cửa hàng điện máy,
với sự chú ý đến việc mua các computer game và video. Trong 10000 giao dịch được phân tích có 6000
giao dịch chứa computer game, 7500 giao dịch chứa video, 4000 giao dịch chứa cả hai computer game và
video. Khai phá dữ liệu được áp dụng cho dữ liệu trên với min_sup=30% và min_conf=60%. Luật kết
hợp sau đây được khai phá:

“computer games" Þ "videos" [support=40%, confidence=66%]

Luật trên là luật kết hợp mạnh bởi vì nó thỏa mãn ngưỡng min_sup (support
count=4000/10000=40%) và min_conf (confidence=4000/6000=66%). Tuy nhiên luật này dường như
không đúng vì xác suất mua video là 75% lớn hơn 66% (nếu khách hàng có xu hướng mua video khi đã
mua computer game thì độ tin cậy của luật chính là xác suất có điều kiện P(video|computer game), phải
lớn hơn xác suất mua video trong toàn bộ các giao tác). Thực tế computer game và video liên quan với
nhau một cách trái ngược bởi vì việc mua mặt hàng này có thể làm giảm việc mua mặt hàng kia.

92
Hai độ đo Lift và Leverage được bổ sung nhằm thể hiện thêm tính quan trọng của các luật kết
hợp. Các độ đo này giúp rút gọn bớt tập luật kết hợp và sắp xếp thứ tự theo tính quan trọng của luật.

a. Độ đo Lift:
Độ đo Lift của một luật L ÞR chỉ ra sự tương quan giữa số lần các hạng mục L, R đồng
thời xuất hiện trong các giao dịch, so với số lần thống kê L, R xuất hiện độc lập.

count ( L  R )
Lift ( L  R) 
count ( L)  count ( R ) / N

Trong đó, N là số lượng giao dịch.


Các dạng khác của công thức:

count ( L  R) sup( L  R ) conf ( L  R ) conf ( R  L) P ( R | L)


Lift ( L  R)     
count ( L)  sup( R ) sup( L)  sup( R ) sup( R ) sup( L) P( R)

Ý nghĩa của độ đo:

a. Lift(L ÞR)<1 : L và R tương quan âm (L tăng dẫn đến R giảm);


b. Lift(L ÞR)=1: L, R không tương quan;
c. Lift(L ÞR)>1: L, R tương quan dương (L tăng dẫn đến R tăng).

Chú ý: 1. Lift(LÞR) = Lift(RÞL).

Ví dụ 7.6: Xét giả thiết của ví dụ 7.5

Ta có: P({Computer game}) = 0.6 P({video}) = 0.75

P({Computer game, video})= 0.4

ÞLift(Computer game Þ video) = P({Computer game, video})/(P({Computer game}) x


P({video})) = 0.89 <1

ÞComputer game và video tương quan âm. Do đó việc mua nhiều Computer game có thể làm
giảm việc mua video.

H 7.9 Số liệu thống kê phục vụ điều tra tương quan.

93
b. Độ đo Leverage:

Độ đo Lift là độ đo được sử dụng khá phổ biến, tuy nhiên nó không phải là một độ đo sự
quan tâm tốt nhất trong thực tế. Trong một số trường hợp, một luật kết hợp có độ hỗ trợ cao, độ đo Lift
thấp có thể được quan tâm hơn một luật độ hỗ trợ thấp và độ đo Lift cao vì được ứng dụng cho một số
trường hợp cá biệt. Piatetsky-Shapiro (1991) đề xuất độ đo mới Leverage, độ đo này chỉ ra sự khác biệt
giữa độ hỗ trợ khi các tập hạng mục L, R xảy ra đồng thời trong CSDL với độ hỗ trợ khi L, R xuất hiện
độc lập.

Độ đo Leverage của một luật kết hợp (LÞR) được xác định bởi công thức:

Leverage (LÞR) = sup(LÈR) – sup (L).sup(R)

Giá trị Leverage của một luật luôn bé hơn độ hỗ trợ của nó. Số lượng luật thỏa độ hỗ trợ ³
minsup và độ tin cậy ³ minconf có thể giảm bằng cách sử dụng độ đo Leverage.

Ví dụ 7.7: Xem lại giả thiết của ví dụ 7.5, ta có thêm thông tin được phân tích có 4500 giao dịch
chứa CD Music, 3000 giao dịch chứa cả hai CD Musicvà videos.

Ta thấy luật kết hợp sau được khai phá

“Music CD" Þ"videos" [support=30%, confidence=66%]

Lift (Music CD Þ video ) = 0.89. Như vậy, cả hai luật:

Computer game Þ video, Music CD Þ video đề có cùng giá trị ứng với các độ đo:

Confidence =66%, Lift = 0.89. Tuy nhiên, giá trị độ đo

Leverage(Computer game Þ video) = 0.4 – 0.6*0.75 = - 0.05

Leverage(Music CD Þ video) = 0.3- 0.45*0.75 = - 0.0375

Giá trị tuyệt đối Leverage của câu lệnh trước lớn hơn câu lệnh sau, luật kết hợp trước đáng quan
tâm hơn câu lệnh sau.

Các độ đo Lift, Leverage được sử dụng tùy theo sự quan tâm khác nhau, nhằm tăng thêm ràng
buộc thu hẹp các luật kết hợp.

Câu hỏi và bài tập

1. Chứng minh mọi tập con khác rỗng của một tập phổ biến là phổ biến.

94
2. Cho tập phổ biến L, SÌL, chứng minh độ tin cậy của luật S’®(L-S’) không thể lớn hơn độ tin
cậy của luật S®(L-S), với S’Ì S.

3. Hãy xác định tập luật kết hợp với độ hỗ trợ >= 0.2, độ tin cậy >= 0.7 ứng với tập giao dịch sau:

Giới tính Tuổi Xe


1 Nam 20 Dream Khoảng tuổi Độ tuổi Ký hiệu
2 Nam 21 Dream [15,20] Thanh niên TN
3 Nam 15 Dream [21,26] Trẻ T
4 Nam 17 Click [27,35] Trung niên TR
5 Nam 22 Click [36,50] Tráng niên TRA
6 Nam 21 Dream
7 Nam 22 Dream
a. Sử dụng thuật toán Apriori
8 Nữ 21 Click
b. Sử dụng thuật toán FP-Tree
9 Nữ 17 Dream
10 Nữ 16 Click
11 Nữ 16 Click
12 Nữ 28 Click

4. Xét cơ sở dữ liệu (CSDL) khảo sát tiện nghi sử dụng của các hộ gia đình như sau:

Hộ Tiện nghi sử dụng


1 Ti vi, Máy vi tính
2 Tủ lạnh, Máy giặt
3 Ti vi, Máy giặt, Máy lạnh
4 Ti vi, Tủ lạnh, Máy giặt
5 Ti vi, Máy giặt, Máy vi tính
6 Ti vi, Tủ lạnh, Máy giặt
7 Ti vi, Tủ lạnh, Máy vi tính
8 Ti vi, Máy giặt, Máy vi tính, Máy lạnh

Sử dụng các thuật toán: a.Apriori b. FP-Tree

xác định tập luật kết với các ngưỡng: minsup >= 0.5, độ tin cậy >=0.7.

5. Giả sử chúng ta có một CSDL với 5000 giao dịch, và luật L ®R. Số liệu thống kê trong CSDL:

Count(L) = 3400; Count(R) = 4000; Count(LÈR) = 3000.


Hãy tính độ hỗ trợ (support), độ tin cậy (confidence), lift và leverage cho luật này.

95
Chương 8

KHAI PHÁ LUẬT KẾT HỢP DỰA VÀO LÝ THUYẾT TẬP THÔ

Các thuật toán khai phá luật kết hợp thường tạo ra một số lượng lớn các luật, trong đó có nhiều
luật là không cần thiết phục vụ cho việc xử lý thông tin cho một mục đích, yêu cầu nào đó. Khai phá luật
kết hợp bằng lý thuyết tập thô được nhiều tác giả quan tâm và ứng dụng thành công thường để phát hiện
tập luật phù hợp với mục tiêu khai thác nhất định (Ví dụ: Khai phá luật kết hợp lớn nhất, khai phá luật
kết hợp đa chiều, luật kết hợp xấp xỉ ..). Trong tài liệu này trình bày Khai phá luật kết hợp lớn nhất
(maximal association rules) [2] như một minh họa ứng dụng của tập thô trong khai phá luật kết hợp.

7.1 CẤU TRÚC DỮ LIỆU “BITMAP”

Một CSDL là tập các giao dịch có thể biểu diễn dưới dạng một hệ thống thông tin. Phép chuyển
đổi này khá đơn giản, có thể thấy trực quan ở ví dụ 7.1. Trình bày phép chuyển đổi một cách hình thức:
Cho T: {1,2,..,n} ® P(I) là một tập các giao dịch xác định trên tập hạng mục I, hệ thống thông tin tương
ứng S = (U, A), có U={T(i) | i=1..n}, A=I. Với mỗi aÎA, a(T(i))=1 nếu aÎ T(i), và a(T(i))=0 nếu aÏT(i).

Ví dụ 8.1: Xét một tập CSDL các giao dịch D:

T(1)=T(2)={Canada, Iran, USA, crude, ship}; T(3)={USA, earn}; T(4)=T(5)={USA, jobs, cpi}
T(6)={USA, earn, cpi}; T(7)={Canada, sugar, tea}; T(8)=T(9)={Canada, USA, trade, acq}
T(10)={Canada, USA, earn}

Tids Canada Iran USA acp cpi crude earn jobs ship sugar tea trade
1 1 1 1 0 0 1 0 0 1 0 0 0
2 1 1 1 0 0 1 0 0 1 0 0 0
3 0 0 1 0 0 0 1 0 0 0 0 0
4 0 0 1 0 1 0 0 1 0 0 0 0
5 0 0 1 0 1 0 0 1 0 0 0 0
6 0 0 1 0 1 0 1 0 0 0 0 0
7 1 0 0 0 0 0 0 0 0 1 1 0
8 1 0 1 1 0 0 0 0 0 0 0 1
9 1 0 1 1 0 0 0 0 0 0 0 1
10 1 0 1 0 0 0 1 0 0 0 0 0
H 8.1 Biểu diễn Bitmap (0/1) của tập giao dịch

96
7.2 KHAI PHÁ LUẬT KẾT HỢP CỰC ĐẠI

a. Một số độ đo liên quan sự kết hợp:

Xét một hệ thống thông tin S = (U, A), X Í U ký hiệu:

- XD={d | XÍT(d)},

- Độ mạnh (strength) của X : stg(X) = | XD|

- Một kết hợp (association) giữa X và Y (X,Y ÍA) là một biểu thức có dạng X ƒ Y,

§ độ mạnh của kết hợp là stg(X ƒ Y) = stg(XÈY) = stg(|XÈY|D),

§ độ tin cậy của kết hợp là

stg ( X  Y ) ( X  Y )D
cfi(X ƒ Y)= 
max( stg ( X ), stg (Y )) max( X D , Y D )

- Một luật kết hợp là một luật có dạng X®Y ((X,Y ÍA)

§ Độ mạnh của luật kết hợp là stg(X ®Y) = stg(XÈY) = stg(|XÈY|D),

§ Độ tin cậy của luật kết hợp là cfi(X ®Y)

( X  Y )D
stg(XÈY)/stg(X) =
XD

Ví dụ 8.2: Với dữ liệu đã cho ở ví dụ 8.1 ta có

{USA, Canada} ƒ {earn} {USA, Canada} ®{earn}

cfi({USA, Canada} ƒ {earn})= cfi({USA, Canada} ®{earn})=

({USA, Canada}  {earn}) D 1 ({USA, Canada}  {earn}) D 1


D D
 
max( {USA, Canada} , {earn} ) max(5, 3) {USA, Canada}D
5

H 8.2 Một kết quả độ đo kết hợp

b. Phân hoạch tập thuộc tính

Xét một phân hoạch của tập thuộc tính A là tập các lớp T1, T2,.. Tk thỏa:

97
k
"i,j= 1..k, i¹j:ƹ TiÎP(A); TiÇTj=Æ,; A= UT
i 1
i

Ký hiệu A/t= {T1, T2,.. Tk}, lúc này t tương ứng một quan hệ tương đương xác định trên A:
"a,bÎA: atb Û $i: (aÎTi)Ù(bÎTi).

Ví dụ 8.3: Với dữ liệu đã cho ở ví dụ 8.1, A có thể phân hoạch thành: A/t={T1, T2}, với
T1=countries={Canada, Iran, USA}, T2=topics={acp, cpi, crude, earn, jobs, ship, sugar, tea, trade}

c. Định nghĩa lớn nhất

Tập hỗ trợ lớn nhất các hạng mục (thuộc tính) của một phân lớp

Xét một phân hoạch tập thuộc tính A/t= {T1, T2,.. Tk}. Với mỗi XÍA (X¹Æ), chúng ta có một phân rã
k
X= U X i , trong đó XiÍTi, "i=1..k. Ti được gọi là lớp tương thích (corresponding category) với Xi.
i 1

Đối với mỗi lớp Ti đã cho, xét Xi Í Ti (Xi¹Æ), giao dịch d (dÎTids) gọi là d hỗ trợ Xi hay Xi xảy ra
trong d nếu Xi ÍT(i)ÇTk. Ký hiệu tập các hỗ trợ của Xi thuộc CSDL D là (Xi)D ta có:

( X i ) D  {d | X i  T (i )  Ti }

Xi ứng với lớp Ti được ký hiệu bởi cặp {Xi:Ti}. Theo định nghĩa, độ mạnh của Xi là số giao địch hỗ trợ
Xi: stg(Xi) = ( X i ) D  {d | X i  T (i )  Ti } . Vì vậy, Xi cũng được ký hiệu: {Xi:Ti}(Xi)D và được gọi là một

mệnh đề (clause) đồng xuất hiện (co-occurring) trong (Xi)D

Một giao dịch d được gọi là hỗ trợ lớn nhất Xi (Xi¹Æ) nếu Xi=T(d)ÇTi. Tập các hỗ trợ lớn nhất của
Xi thuộc CSDL D ký hiệu (Xi)D,max:

( X i ) D ,max  {d | X i  T (d )  Ti }

Tập thuộc tính Xi này có thể được ký hiệu bởi cặp phân hoạch {Xi:Ti} với độ mạnh lớn nhất (max-
strength) msg(Xi) là số giao dịch hỗ trợ lớn nhất Xi:

msg ( X i )  {d | X i  T (d )  X i }  ( X k ) D ,max

Lúc này Xi còn được ký hiệu: {Xi:Ti}max(Xi)D,max và được gọi là một câu đồng xuất hiện trong (Xi)D,max

Ví dụ 8.4: Với dữ liệu đã cho ở ví dụ 8.1 ta có

Với T1 = countries= { Canada, Iran, USA}, ta có:

{{Canada, Iran, USA}:countries} {(T(1), T(2)}

98
{{Canada, Iran}:countries} {(T(1), T(2)}
{{ Iran, USA}:countries} {(T(1), T(2)}
{{ USA}:countries} {(T(1), T(2), T(3), T(4), T(5), T(6), T(8), T(9), T(10)}
{{ Canada}:countries} {(T(1), T(2), T(7), T(8), T(9), T(10)}
{{ Canada, USA}:countries} {(T(1), T(2), T(8), T(9), T(10)}

{{ USA}:countries}max {T(3), T(4), T(5), T(6)}


{{Canada, Iran, USA}:countries}max{(T(1), T(2)}
{{ Canada}:countries}max {T(7)}
{{ Canada, USA}:countries}max {T(8), T(9), T(10)}

Với T2 = topics= { acq, cpi, crude, earn, jobs, ship, sugar, tea, trade}, ta có:

{{crude, ship}:topics}{T(1), T(2)}


{{crude}:topics}{T(1), T(2)}
{{ship}:topics}{T(1), T(2)}
{{earn}:topics}{T(3), T(6), T(10)}
{{jobs,cpi}:topics}{T(4), T(5)}
{{jobs }:topics}{T(4), T(5)}
{{cpi}:topics}{T(4), T(5), T(6)}
{{earn, cpi}:topics}{T(6)}
{{sugar, tea}:topics}{T(7)}
{{sugar}:topics}{T(7)}
{{tea}:topics}{T(7)}
{{trade, acq}:topics}{T(8), T(9)}
{{trade}:topics}{T(8), T(9)}
{{acq}:topics}{T(8), T(9)}

{{crude, ship}:topics}max{T(1), T(2)}
{{earn}:topics}max{T(3), T(10)}
{{jobs,cpi}:topics}max{T(4), T(5)}
{{earn, cpi}:topics}max{T(6)}
{{sugar, tea}:topics}max{T(7)}
{{trade, acq}:topics}max{T(8), T(9)}

99
Tổng quát hơn ta có định nghĩa:

Tập hỗ trợ lớn nhất các hạng mục (thuộc tính) của một phân hoạch

k
Cho một phân hoạch t, X= U X i , trong đó Xi Í Ti, "i=1..k; tồn tại ít nhất i sao cho Xi¹Æ. Giao dịch d
i 1

được gọi là hỗ trợ X nếu Xi Í T(d)ÇTi, "i.

Tập hỗ trợ X thuộc CSDL D, ký hiệu XD là tập các giao dịch hỗ trợ X thuộc D:

X D  {d | X i  T (d )  Ti , k  1, 2,.., k}

Tập thuộc tính X này có thể biểu diễn bằng một vector của các cặp {Xi:Ti} thuộc không gian tích
Descaster 2T1  2T2 .. 2Tk . Độ mạnh stg(X) là số các giao dịch hỗ trợ X:

stg ( X )  {d | X i  T (d )  Ti , i  1, 2,.., k  X D

Vector biểu diễn X có thể ký hiệu: ({X1:T1}, {X2:T2},..,{Xi:Ti}) XD và được gọi là một mệnh đề
(clause) đồng xuất hiện (co-occurring) trong (X)D

Với giả thiết trên, nếu quan hệ Í được thay bằng quan hệ = thì:

Giao dịch d được gọi là hỗ trợ lớn nhất X nếu Xi = T(d)ÇTi, "i.

Tập hỗ trợ lớn nhất của X thuộc CSDL D, ký hiệu XD,max là tập:

X D ,max  {d | X i  T (d )  Ti , k  1, 2,.., k}

Độ đo max-strength, ký hiệu msg(X): msg(X) = |X D,max|, và vector biểu diễn X là:

({X1:T1}, {X2:T2},..,{Xi:Ti})max XD,max và được gọi là một câu (sentence) đồng xuất hiện (co-occurring)
trong (X)D

Ví dụ 8.5 Với giả thiết CSDL D như trong ví dụ 1, ta có:

{{Canada, Iran, USA}:countries, {crude, ship}:topics}max{(T(1), T(2)}


{{ USA}:countries, {earn}:topics}max {T(3)}
{{ USA}:countries, {jobs, cpi}:topics}max {T(4), T(5)}
{{ USA}:countries, {earn, cpi}:topics}max {T(6)}
{{ Canada}:countries, {sugar, tea }:topics}max {T(7)}
{{ Canada, USA}:countries, {trade, acq}:topics}max {T(8), T(9)}
{{ Canada, USA}:countries, {earn}:topics}max {T(10)}

d. Kết hợp lớn nhất và luật kết hợp lớn nhất

100
Kết hợp lớn nhất (Maximal Associations)

Một kết hợp lớn nhất giữa V và W là một biểu thức có dạng V ƒ W, với V, W là các câu của hai
phân lớp khác nhau. Độ mạnh của kết hợp này là msg(VÈW), và độ tin cậy (confidence) là
msg(VÈW)/max(msg(V),msg(W))

Ví dụ 8.6: Với giả thiết trong ví dụ 8.1, các kết hợp lớn nhất được tìm thấy:

{Canada, Iran, USA}:countries ƒ {crude, ship}:topics

Độ mạnh msg(|{T(1), T(2)}|=2 Độ tin cậy 2/max(2,2)=1

{ USA}:countries ƒ {earn}:topics

Độ mạnh msg(|{T(3)}|=1 Độ tin cậy 1/max(4,2)=1/4

{ USA}:countries ƒ {jobs, cpi}:topics

Độ mạnh msg(|{T(4),T(5)}|=2 Độ tin cậy 2/max(4,2)=1/2

{ USA}:countries ƒ {earn, cpi}:topics

Độ mạnh msg(|{T(6)}|=1 Độ tin cậy 1/max(4,1)=1/4

{ Canada}:countries ƒ {sugar, tea }:topics

Độ mạnh msg(|{T(7)}|=1 Độ tin cậy 1/max(1,1)=1

{ Canada, USA}:countries ƒ {trade, acq}:topics

Độ mạnh msg(|{T(8), d(9)}|=2 Độ tin cậy 2/max(3,2)=2/3

{ Canada, USA}:countries ƒ {earn}:topics

Độ mạnh msg(|{T(10)}|=1 Độ tin cậy 1/max(3,2)=1/3

H 8.3 Kết hợp lớn nhất và các độ đo: độ mạnh và độ tin cậy

Luật kết hợp lớn nhất (Maximal Association Rules)

Một luật kết hợp lớn nhất là một biểu thức có dạng V® W, với V, W là các câu của hai phân lớp
khác nhau. Độ mạnh của kết hợp này là msg(VÈW), và độ tin cậy (confidence) là msg(VÈW)/msg(V)

Ví dụ 8.7 Với giả thiết trong ví dụ 8.1, các luật kết hợp lớn nhất được tìm thấy:

{Canada, Iran, USA}:countries ® {crude, ship}:topics

Độ mạnh msg(|{T(1), T(2)}|=2 Độ tin cậy 2/2=1

101
{crude, ship}:topics®{Canada, Iran, USA}:countries

Độ mạnh msg(|{T(1), T(2)}|=2 Độ tin cậy 2/2=1

{ USA}:countries ®{earn}:topics

Độ mạnh msg(|{T(3)}|=1 Độ tin cậy 1/4

{earn}:topics}®{ USA}:countries

Độ mạnh msg(|{T(3)}|=1 Độ tin cậy 1/2

{ USA}:countries ®{jobs, cpi}:topics

Độ mạnh msg(|{T(4),T(5)}|=2 Độ tin cậy 2/4=1/2

{jobs, cpi}:topics ®{ USA}:countries

Độ mạnh msg(|{T(4),T(5)}|=2 Độ tin cậy 2/2=1

{ USA}:countries ƒ {earn, cpi}:topics

Độ mạnh msg(|{T(6)}|=1 Độ tin cậy 1/4

{earn, cpi}:topics ®{ USA}:countries

Độ mạnh msg(|{T(6)}|=1 Độ tin cậy 1/1

{ Canada}:countries ® {sugar, tea }:topics

Độ mạnh msg(|{T(7)}|=1 Độ tin cậy 1/1

{sugar, tea }:topics}®{ Canada}:countries

Độ mạnh msg(|{T(7)}|=1 Độ tin cậy 1/1

{ Canada, USA}:countries ®{trade, acq}:topics

Độ mạnh msg(|{T(8), d(9)}|=2 Độ tin cậy 2/3

{trade, acq}:topics ®{ Canada, USA}:countries

Độ mạnh msg(|{T(8), d(9)}|=2 Độ tin cậy 2/2= 1

{ Canada, USA}:countries ®{earn}:topics

Độ mạnh msg(|{T(10)}|=1 Độ tin cậy 1/3

{earn}:topics}®{ Canada, USA}:countries

102
Độ mạnh msg(|{T(10)}|=1 Độ tin cậy 1/2

H 8.4 Luật kết hợp lớn nhất và các độ đo: độ mạnh và độ tin cậy

e. Tập phổ biến và tập phổ biến lớn nhất

Phát hiện các kết hợp thường phải thỏa:

- Độ mạnh lớn hơn một ngưỡng (do người sử dụng xác định) gọi là độ mạnh tối thiểu (minimal
strength), ký hiệu là a (là một số tự nhiên)

- Độ tin cậy lớn hơn một ngưỡng (do người sử dụng xác định) gọi là độ tin cậy tối thiểu (minimal
confidence), ký hiệu b (là một số thực)

Một tập thuộc tính có độ mạnh ³a gọi là tập phổ biến (frequent set). Một tập thuộc tính ứng với một
phân hoạch với độ mạnh lớn nhất ³a được gọi là tập phổ biến lớn nhất (maximal frequent set)

f. Tiếp cận tập thô khai phá luật kết hợp

Sử dụng lý thuyết tập thô (Pawlak 1991, Bell Guan 1998, Guan Bell 1998) có thể phát hiện tri
thức tương tự như các luật kết hợp lớn nhất rất đơn giản. Một hệ thống thông tin S = (U, A) có thể biểu
diễn dưới dạng:

D\ 2Ti T1 T2 .. Tj .. TK

d1 T1ÇT(d1) T2ÇT(d1) .. TjÇT(d1) .. TKÇT(d1)


d2 T1ÇT(d2) T2ÇT(d2) .. TjÇT(d2) .. TKÇT(d2)
.. .. .. .. .. .. ..
di T1ÇT(di) T2ÇT(di) .. TjÇT(di) .. TKÇT(di)
.. .. .. .. .. .. ..
dN T1ÇT(dN) T2ÇT(dN) .. TjÇT(dN) .. TKÇT(dN)

H 8.5 Biểu diễn dạng bảng một hệ thống thông tin

Với giả thiết ở ví dụ 1, ta có biểu diễn dạng bảng tương ứng ở H 8.6.

Từ bảng này dễ dàng thu được các kết quả:

D/countries là
{Canada, Iran, USA}D11, {USA}D12, {Canada}D13, {Canada, USA}D14
Trong đó: D11={d1, d2}, D12={d3:d6}, D13= {d7}, D14= {d8, d9, d10}

103
D/topics là:{crude, ship}D21, {earn}D22, {jobs, cpi}D23, {earn, cpi}D24, {suga, tea}D25, {trade, acq}D26
Trong đó: D21={d1, d2}, D22={d3, d10}, D23={d4, d5}, D24={d6}, D25={d7}, D26={d8, d9}

D\ 2Ti T1= countries T2= topics

d1 {Canada, Iran, USA} {crude, ship}


d2 {Canada, Iran, USA} {crude, ship}
d3 {USA} {earn}
d4 {USA} {jobs, cpi}
d5 {USA} {jobs, cpi}
d6 {USA} {earn, cpi}
d7 {Canada } {sugar, tea}
d8 {Canada, USA} {trade, ac}
d9 {Canada, USA} {trade, ac}
d10 {Canada, USA} {earn}

H 8.6 Biểu diễn dạng bảng một hệ thống thông tin

và D/countriesÇtopics là
({Canada, Iran, USA}:countries, {crude, ship}:topics) {d1, d2}
({ USA}:countries, {earn}:topics) {d3}
({ USA}:countries, {jobs, cpi}:topics) {d4, d5}
({ USA}:countries, {earn, cpi}:topics) {d6}
({ Canada}:countries, {sugar, tea }:topics) {d7}
({ Canada, USA}:countries, {trade, acq}:topics) {d8, d9}
({ Canada, USA}:countries, {earn}:topics) {d10}
Từ đó, ta có thể xác định được các kết hợp như H 8.3.

Nhận xét: Những kết hợp này tương tự như kết hợp lớn nhất đã khai phá trong ví dụ 8.6, 8.7. Tuy
nhiên, ví dụ này cũng chỉ ra rằng cách khai phá dùng lý thuyết tập thô đơn giản hơn cách khai phá trước.

Câu hỏi và bài tập

1. Cho một bộ sưu tập các tài liệu D = {d1, d2, .., d30}. Trong đó:
T(di) ={USA, Canada, corn}, i=1,2,..,10
T(dj)={USA, Canada, France, fish}, j=11,12,..,30
a. Phát hiện các kết hợp lớn nhất và tập luật kết hợp lớn nhất của cơ sở dữ liệu D.
b. Sử dụng tập thô để phát hiện tập luật lớn nhất từ cơ sở dữ liệu D.

104
Chương 9

PHÂN CỤM

Phân cụm dữ liệu là hình thức học không giám sát (unsupervised learning) trong đó các mẫu học
chưa được gán nhãn. Mục đích của phân cụm dữ liệu là tìm những mẫu đại diện hoặc gom dữ liệu tương
tự nhau (theo một chuẩn đánh giá nào đó) thành những cụm. Các điểm dữ liệu nằm trong các cụm khác
nhau có độ tương tự thấp hơn các điểm dữ liệu nằm trong một cụm.

Phân cụm có nhiều ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau:

§ Trong ứng dụng thuộc lĩnh vực kinh tế, người ta thường tìm các quốc giá có nền kinh tế tương
đồng hay các công ty có tiềm lực kinh tế như nhau. Phân tích cụm có thể giúp các nhà marketing
khám phá nhóm khách hàng có cùng thói quen mua sắm.

§ Trong sinh học, nó có thể được sử dụng để phân loại thực vật, động vật, các mẫu gen với các
chức năng tương tự nhau.

§ Trong y học, phát hiện các nhóm bệnh nhân có cùng triệu chứng lâm sàng

§ Gom cụm phân loại các tài liệu trên Web.

§ ..

9.1 CÁC YÊU CẦU CỦA PHÂN CỤM TRONG KHAI PHÁ DỮ LIỆU

v Có khả năng tương tích, hiệu quả với CSDL dung lượng lớn, số chiều lớn:

Phân cụm trên một mẫu của dữ liệu lớn có thể dẫn đến các kết quả thiên lệch. Cần phải có các
thuật toán gom cụm phù hợp trên CSDL lớn. Phân cụm gặp rất nhiều thách thức đối với dữ
liệu có số chiều lớn (vì trong không gian có số chiều lớn, các đối tượng có thể rất thưa và bố
trí với cấu trúc phức tạp)

v Có khả năng xử lý các kiểu dữ liệu khác nhau:

Nhiều thuật toán được thiết kế để xử lý dữ liệu bằng số. Tuy nhiên, các ứng dụng có thể yêu
cầu phân cụm các dạng dữ liệu khác như dữ liệu kiểu nhị phân, phân loại, trật tự hay sự trộn
lẫn của các kiểu dữ liệu.

v Có khả năng khám phá ra các cụm với các dạng bất kỳ:

105
Nhiều thuật toán phân cụm dựa trên các số đo khoảng cách Euclide hay Manhattan. Các thuật
toán dựa trên các số đo khoảng cách có xu hướng tìm các cụm hình cầu với kích thước và mật
độ tương tự nhau. Tuy nhiên, một cụm (cluster) có thể có hình dạng bất kỳ. Do đó cần phát
triển các thuật toán để tìm các cluster hình dạng bất kỳ.

v Tối thiểu lượng tri thức cần cho xác định các tham số đầu vào:

Nhiều thuật toán phân cụm yêu cầu người dùng đưa vào những tham số nhất định trong phân
tích phân cụm (như số lượng các cụm mong muốn). Kết quả của phân cụm thường khá nhạy
cảm với các tham số đầu vào. Nhiều tham số rất khó để xác định, nhất là với các tập dữ liệu
có lượng các đối tượng lớn. Điều này không những gây trở ngại cho người dùng mà còn làm
cho khó có thể điều chỉnh được chất lượng của phân cụm.

v Khả năng thích nghi với dữ liệu nhiễu:

Hầu hết những cơ sở dữ liệu thực đều chứa đựng dữ liệu ngoại lai, dữ liệu lỗi, dữ liệu chưa
biết hoặc dữ liệu sai. Một số thuật toán phân cụm nhạy cảm với dữ liệu như vậy và có thể dẫn
đến chất lượng phân cụm thấp.

v Ít nhạy cảm với thứ tự của các dữ liệu vào:

Một số thuật toán phân cụm nhạy cảm với thứ tự của dữ liệu vào, ví dụ như với cùng một tập
dữ liệu, khi được đưa ra với các thứ tự khác nhau thì với cùng một thuật toán có thể sinh ra
các cụm rất khác nhau. Do đó, việc quan trọng là phát triển các thuật toán mà ít nhạy cảm với
thứ tự vào của dữ liệu.

v Phân cụm ràng buộc:

Một nhiệm vụ đặt ra là đi tìm những thuật toán phân cụm thỏa mãn các ràng buộc khác nhau.

v Dễ hiểu và dễ sử dụng:

Phân cụm phải thể hiện được ý nghĩa tường minh và ứng dụng rõ ràng.

9.2 PHÂN LOẠI CÁC KỸ THUẬT PHÂN CỤM TRONG KHAI PHÁ DỮ LIỆU

Hiện nay, các kỹ thuật phân cụm có thể phân loại theo các cách tiếp cận chính sau :
a. Kỹ thuật phân cụm phân hoạch
Kỹ thuật này phân hoạch một tập hợp dữ liệu n phần tử thành k cụm (k£n, k là số do người sử dụng
ấn định). Các cụm phải thỏa:
1. Mỗi cụm chứa ít nhất một đối tượng
2. Mỗi đối tượng thuộc về một cụm duy nhất.

106
Tuy nhiên, khi các cụm có hình dạng phức tạp hoặc các cụm có mật độ các điểm dầy đặc thì kỹ thuật
này không được hữu hiệu. Các thuật toán phân cụm dựa trên kỹ thuật phân hoạch có độ phức tạp rất lớn.
Để giảm bớt độ phức tạp, heuristic được thường sử dụng là chiến lược ăn tham (Greedy) và hàm tiêu
chuẩn để đánh giá chất lượng của các cụm. Hai thuật toán phổ biến sử dụng kỹ thuật này là:
· K-Means (1967): mỗi cụm được đại diện bởi giá trị trung bình của các phần tử thuộc cụm.
· K-Medoids (1987): mỗi cụm được đại diện bởi một số phần tử nằm gần tâm của cụm.

H 9.1 Một số cụm có hình dạng phức tạp

b. Kỹ thuật phân cụm phân cấp

Kỹ thuật này xây dựng một phân cấp các phân cụm trên cơ sở các đối tượng dữ liệu đang xem xét.
Nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu trúc có dạng hình cây, cây phân cấp phân cụm này
được xây dựng theo kỹ thuật đệ quy. Có hai cách tiếp cận phổ biến của kỹ thuật này đó là:

· Hòa nhập nhóm, thường được gọi là tiếp cận Bottom-Up


· Phân chia nhóm, thường được gọi là tiếp cận Top-Down

H 9.2 Các chiến lược phân cụm phân cấp

Phân cụm phân hoạch và phân cụm phân cấp là hai phương pháp phân cụm dữ liệu cổ điển, hiện
đã có rất nhiều thuật toán cải tiến dựa trên hai phương pháp này đã được áp dụng phổ biến trong khai
thác dữ liệu.

107
c. Kỹ thuật phân cụm dựa trên mật độ

Kỹ thuật này nhóm các đối tượng dữ liệu dựa trên hàm mật độ (mật độ là số các đối tượng lân cận
của một đối tượng dữ liệu theo một nghĩa nào đó). Ý tưởng chung đó là tiếp tục phát triển cụm cho trước
với điều kiện là mật độ trong lân cận vượ quá ngưỡng, tức là đối với mỗi điểm dữ liệu trong phạm vi một
cụm cho trước thì lân cận trong vòng bán kính đã cho chứa ít nhất một lượng tối thiểu.
Phương pháp phân cụm dựa trên mật độ của các đối tượng để xác định các cụm dữ liệu có thể
phát hiện ra các cụm dữ liệu với hình thù phức tạp. Kỹ thuật này có thể khắc phục được các phần tử ngoại
lai hoặc giá trị nhiễu rất tốt, tuy nhiên việc xác định các tham số mật độ của thuật toán là rất khó khăn,
trong khi các tham số này lại có tác động rất lớn đến kết quả phân cụm.

DBSCAN, OPTICS DENCLUE (DENsity- based CLUstEring) CLIQUE (Clustering In QUEst)


là các thuật toán phân cụm điển hình dựa trên phương pháp phân cụm dựa trên mật độ.

d. Kỹ thuật phân cụm dựa trên lưới

Kỹ thuật phân cụm dựa trên lưới thích hợp với dữ liệu nhiều chiều, phương pháp này chủ yếu tập
trung áp dụng cho lớp dữ liệu không gian. Mục tiêu của phương pháp này là lượng hóa dữ liệu thành các
ô tạo thành cấu trúc dữ liệu lưới. Sau đó, các thao tác phân cụm chỉ cần làm việc với các đối tượng trong
từng ô trên lưới chứ không phải các đối tượng dữ liệu. Cách tiếp cận dựa trên lưới này không di chuyển
các đối tượng trong các ô mà xây dựng nhiều mức phân cấp của nhóm các đối tượng trong một ô.
Ưu điểm của phương pháp phân cụm dựa trên lưới là thời gian xử lí nhanh và độc lập với số đối
tượng dữ liệu trong tập dữ liệu ban đầu, thay vào đó là chúng phụ thuộc vào số ô trong mỗi chiều của
không gian lưới.

e. Kỹ thuật phân cụm dựa trên mô hình

Kỹ thuật phân cụm dựa trên mô hình cố gắng khớp dữ liệu với các mô hình toán học. Phương
pháp này gần giống với kỹ thuật phân cụm dựa trên mật độ, chúng phát triển các cụm riêng biệt nhằm cải
tiến các mô hình đã được xác định trước đó, nhưng đôi khi phương pháp này không bắt đầu với một số
cụm cố định và không sử dụng cùng một khái niệm mật độ cho các cụm.
Hiện nay, các kỹ thuật phân cụm trên đã và đang được phát triển và áp dụng nhiều trong các lĩnh
vực khác nhau:
Phân cụm thống kê: Dựa trên các khái niệm phân tích hệ thống, nhánh nghiên cứu này sử dụng
các độ đo tương tự để phân hoạch các đối tượng, nhưng chúng chỉ áp dụng cho các dữ liệu có thuộc tính
số.
Phân cụm khái niệm: Kỹ thuật này được phát triển áp dụng cho dữ liệu hạng mục, chúng phân
cụm các đối tượng theo các khái niệm mà chúng xử lí.

108
Phân cụm mờ, thô: Sử dụng lý thuyết tập mờ, tập thô để phân cụm dữ liệu. Các thuật toán thuộc
loại này xử lí các dữ liệu thực không chắc chắn.
Phân cụm mạng Kohonen: Loại phân cụm này dựa trên khái niệm của các mạng nơron. Mạng
Kohonen có tầng nơron vào và các tầng nơron ra. Mỗi nơron của tầng vào tương ứng với mỗi thuộc tính
của bản ghi, mỗi một nơron vào kết nối với tất cả các nơron của tầng ra. Mỗi liên kết được gắn liền với
một trọng số nhằm xác định vị trí của nơron ra tương ứng.

9.3 MỘT SỐ THUẬT TOÁN PHÂN CỤM KINH ĐIỂN

a. Thuật toán K- Means (Mac Queen -1967)

Ý tưởng: Thuật toán k-means phân hoạch một tập n đối tượng thành k cụm sao cho các đối tượng
trong cùng một cụm có độ tương tự cao và các đối tượng trong các cụm khác nhau có độ tương tự thấp
hơn. Mỗi cụm được đại diện bởi trọng tâm (cluster mean) của nó. Một đối tượng được phân vào một cụm
nếu khoảng cách từ đối tượng đó đến trọng tậm của cụm đang xét là nhỏ nhất (so với các trọng tâm của
các cụm còn lại). Sau đó trọng tâm của các cụm được cập nhật lại (trung bình cọng các phần tử thuộc
cụm). Quá trình lặp đi lặp lại cho đến hàm mục tiêu bé hơn một ngưỡng cho phép (một hàm mục tiêu
(square-error) thường được được sử dụng:

k
E = å å | p - mi |2
i =1 pÏCi

Trong đó, p là đối tượng thuộc cụm Ci, mi là trọng tâm của cụm Ci).

Thuật toán K-Means:


Đầu vào:
+ k: Số lượng cụm.
+ D: Một tập dữ liệu chứa n đối tượng
Đẩu ra: Một tập k cụm.
Phương pháp:
Bước 1: Khởi tạo
Chọn ngẫu nhiên k đối tượng thuộc O làm k trọng tâm ban đầu.
(lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm).
repeat
Bước 2: Gán các đối tượng vào cụm
Đối với mỗi đối tượng Oi, tính khoảng cách của nó tới mỗi trọng tâm mj. Sau đó tìm trọng tâm
gần nhất đối với mỗi đối tượng.
Bước 3: Cập nhật lại trọng tâm

109
Cập nhật trọng tâm mỗi cụm (trung bình cộng các vector đối lượng dữ liệu thuộc cụm)
Until hàm mục tiêu bé hơn ngưỡng (hay các cụm không thay đổi).

Bước lặp 1 Bước lặp 2

Bước lặp 3 Bước lặp 4 và phân nhóm

Trọng tâm nhóm 1 Trọng tâm nhóm 2 Nhóm dữ liệu Nhóm dữ liệu

H 9.3 Minh họa thuật toán K-Means

Ví dụ 9.1: Cho tập điểm


x1= {1, 3} = {x11, x12}
x2 = {1.5, 3.2} = {x21, x22}
x3 = {1.3, 2.8} = {x31, x32}
x4 = {3, 1} = {x41, x42}
Dùng thuật toán K-Means để gom cụm với k = 2.

Bước khởi tạo:

- Khởi tạo ma trận phân hoạch M có 4 cột tương ứng với 4 điểm và 2 dòng tương ứng với 2

cluster. Các phần tử trong ma trận ( m ij với i = 1, 2 ; j= 1, 4 ) được gán giá trị khởi tạo 0.

x1 x2 x3 x4
c1 0 0 0 0
c2 0 0 0 0

- Chọn x1, x2 lần lượt làm trọng tâm ban đầu cho 2 cluster c1, c2. Trọng tâm của 2 cluster lần lượt là:

v1 = {1, 3} = {v11, v12}; v2 = {1.5, 3.2} = {v21, v22}.

110
- Cập nhật ma trận phân hoạch M:

x1 x2 x3 x4
c1 1 0 0 0
c2 0 1 0 0

Bước 1:

- Gán các đối tượng vào các cụm:

Tính các khoảng cách Euclide:

d(v1, x1) = ( x11 - v11 ) 2 + ( x12 - v12 )2 = (1 - 1) 2 + (3 - 3) 2 = 0

d(v2, x1) = ( x11 - v21 )2 + ( x12 - v22 ) 2 = (1 - 1.5) 2 + (3 - 3.2) 2 = 0.538

Xếp x1 vào cụm c1.

d(v1, x2) = ( x21 - v11 )2 + ( x22 - v12 ) 2 = (1.5 -1) 2 + (3.2 - 3) 2 = 0.538

d(v2, x2) = ( x21 - v21 )2 + ( x22 - v22 )2 = (1.5 -1.5) 2 + (3.2 - 3.2) 2 =0

Xếp x2 vào cụm c2.

d(v1, x3) = ( x31 - v11 ) 2 + ( x32 - v12 ) 2 = (1.3 -1) 2 + (2.8 - 3) 2 = 0.360

2 2
d(v2, x3) = ( x31 - v21 ) 2 + ( x32 - v22 )2 = (1.3 -1.5) + (2.8 - 3.2) = 0.447

Xếp x3 vào cụm c1.

d(v1, x4)= ( x41 - v11 )2 + ( x42 - v12 ) 2 = (3 -1) 2 + (1 - 3) 2 = 2,828

d(v2, x4)= ( x41 - v21 )2 + ( x42 - v22 )2 = (3 -1.5) 2 + (1 - 3.2) 2 = 2,663

Xếp x4 vào cụm c2.

- Cập nhật lại ma trận phân hoạch ta được:

x1 x2 x3 x4
c1 1 0 1 0
c2 0 1 0 1

Bước 2: Cập nhật lại trọng tâm các cụm:

111
m11 x11 + m12 x21 + m13 x31 + m14 x41 1*1 + 0 *1.5 + 1*1.3 + 0 *3
v11 = = = 1.15
m11 + m12 + m13 + m14 1+ 0 +1+ 0

m11 x12 + m12 x22 + m13 x32 + m14 x42 1*3 + 0 *3.2 + 1* 2.8 + 0 *1
v12 = = = 2.9
m11 + m12 + m13 + m14 1+ 0 +1+ 0

m21 x11 + m22 x21 + m23 x31 + m24 x41 0 *1 + 1*1.5 + 0 *1.3 + 1*3
v21 = = = 2.25
m11 + m12 + m13 + m14 0 +1+ 0 +1

m11 x12 + m12 x22 + m13 x32 + m14 x42 0 * 3 + 1*3.2 + 0 * 2.8 + 1*1
v22 = = = 2.1
m11 + m12 + m13 + m14 0 +1+ 0 +1

Quay lại bước 1:


- Gán các đối tượng vào các cụm:
Tính các khoảng cách Euclide:

d(v1, x1) = ( x11 - v11 ) 2 + ( x12 - v12 )2 = (1 - 1.15) 2 + (3 - 2.9) 2 = 0.180

d(v2, x1) = ( x11 - v21 )2 + ( x12 - v22 ) 2 = (1 - 2.25) 2 + (3 - 2.1) 2 = 1.54

Xếp x1 vào cụm c1.

d(v1, x2) = ( x21 - v11 )2 + ( x22 - v12 ) 2 = (1.5 -1.15) 2 + (3.2 - 2.9) 2 = 0.461

d(v2, x2) = ( x21 - v21 )2 + ( x22 - v22 )2 = (1.5 - 2.25) 2 + (3.2 - 2.1) 2 = 1.415

Xếp x2 vào cụm c1.

d(v1, x3) = ( x31 - v11 ) 2 + ( x32 - v12 ) 2 = (1.3 -1.15) 2 + (2.8 - 2.9) 2 = 0.180

d(v2, x3) = ( x31 - v21 ) 2 + ( x32 - v22 )2 = (1.3 - 2.25) 2 + (2.8 - 2.1) 2 = 1.18

Xếp x3 vào cụm c1.

d(v1, x4)= ( x41 - v11 )2 + ( x42 - v12 ) 2 = (3 -1.15) 2 + (1 - 2.9) 2 = 2,652

d(v2, x4)= ( x41 - v21 )2 + ( x42 - v22 )2 = (3 - 2.25) 2 + (1 - 2.1) 2 = 1.331

Xếp x4 vào cụm c2.

- Cập nhật lại ma trận phân hoạch:

112
x1 x2 x3 x4
c1 1 1 1 0
c2 0 0 0 1

Bước 2: Cập nhật lại trọng tâm cho các cụm

m11 x11 + m12 x21 + m13 x31 + m14 x41 1*1 + 1*1.5 + 1*1.3 + 0 *3
v11 = = = 1.27
m11 + m12 + m13 + m14 1+1+1+ 0

m11 x12 + m12 x22 + m13 x32 + m14 x42 1*3 + 1*3.2 + 1* 2.8 + 0 *1
v12 = = =3
m11 + m12 + m13 + m14 1+1+1+ 0

m21 x11 + m22 x21 + m23 x31 + m24 x41 0 *1 + 0 *1.5 + 0 *1.3 + 1*3
v21 = = =3
m11 + m12 + m13 + m14 0 + 0 + 0 +1

m11 x12 + m12 x22 + m13 x32 + m14 x42 0 *3 + 0 *3.2 + 0 * 2.8 + 1*1
v22 = = =1
m11 + m12 + m13 + m14 0 + 0 + 0 +1

Ma trận phân hoạch thay đổi do đó ta quay lại bước 2 và tiếp tục cho đến khi ma trận phân hoạch không
thay đổi.

Ưu và nhược điểm của thuật toán:


1. Ưu điểm:
+ Tương đối nhanh. Độ phức tạp của thuật toán là O(tkn), trong đó:
- n: Số đối tượng trong không gian dữ liệu.
- k: Số cụm cần phân hoạch.
- t: Số lần lặp (t thường khá nhỏ so với n).
+ K-Means phù hợp với các cụm có dạng hình cầu.
2. Khuyết điểm:
+ Không đảm bảo đạt được độ tối ưu toàn cục và kết quả đầu ra phụ thuộc nhiều vào việc chọn k
điểm khởi đầu. Do đó phải chạy lại thuật toán với nhiệu bộ khởi đầu khác nhau để có được kết quả đủ tốt.
+ Cần phải xác định trước số cụm.
+ Khó xác định số cụm thực sự không gian dữ liệu có. Do đó phải thử với các giá trị k khác nhau.
+ Khó phát hiện các loại cụm hình dạng phức tạp khác nhau và nhất là các dạng cụm không lồi.
+ Không thể xử lý nhiễu và các phần tử ngoại lệ.
+ Chỉ có thể áp dụng khi tính được trọng tâm.
Một số biến thể của K-Means:
§ K-Modes (Huang 1998):

113
Thay đặc trưng của mỗi cụm là trọng tâm (cluster mean) bởi hình mẫu (mode). Phương pháp sử
dụng các độ đo không tương đồng, dựa trên tần số để xác định và cập nhật các hình mẫu đặc trưng của
các cụm. Phương pháp K-Means và K-Modes có thể được tích hợp để phân cụm các đối tượng có cấu trúc
dữ liệu đa kiểu. Phương pháp tích hợp này có tên K-Prototypes.
§ EM ExpectationMaximization) (Lauritzen 1995)
Thay vì xác định mỗi đối tượng thuộc một cụm nhất định, mỗi đối tượng được xác định mối quan
hệ định vị với mỗi cụm bởi một trọng số đại diện. Hay nói khác hơn, các cụm không có ranh giới tuyệt
đối. Trọng tâm các cụm sẽ được cập nhật theo các phép đo có trọng số.

b. Thuật toán K- Medoid (Kaufman và Rousseeuw 1987)

Ý tưởng: Ý tưởng của K-Medoids cũng khá giống với K-means, điểm khác biệt là trong thuật toán K-
Means, mỗi đối tượng đại diện bằng trọng tâm của cụm (được tính bằng giá trị trung bình của các đối
tượng trong cụm), K-Medoids chọn trọng tâm của mỗi cụm là một điểm thuộc cụm sao cho tổng khoảng
cách từ các điểm còn lại thuộc cụm tới trọng tâm là nhỏ nhất. Nghĩa là hàm mục tiêu (absolute-error)

k
E = å å | p - oi |
i =1 pÏCi

Trong đó, p là đối tượng thuộc cụm Ci, oi là trọng tâm của cụm Ci đạt giá trị bé nhất.

Thuật toán K-Medoids

Đầu vào:
+ k: Số lượng cụm.
+ D: Một tập dữ liệu chứa n đối tượng
Đầu ra: Một tập k cụm.
Phương pháp:
Bước 1: Khởi tạo
Chọn k trọng tâm ban đầu.
(Việc lựa chọn này có thể là ngẫu nhiên hoặc theo kinh nghiệm)
repeat
Bước 2: Gán các đối tượng vào cụm
Gán các đối tượng vào cụm mà nó gần nhất.
Bước 3: Cập nhật lại trọng tâm
Đối với mỗi cụm, trọng tâm của cụm chính là đối tượng mà có tổng khoảng cách tới các
đối tượng còn lại trong cụm là nhỏ nhất (Emin).
Until trọng tâm mỗi cụm không thay đổi.

114
H 9.4 Sự khác biệt giữa phân cụm bằng K-Means và K-Medoids

Trong tâm của mỗi cụm đối với K-Means là + và K-Medoids là

Ưu và nhược điểm của thuật toán:


1. Ưu điểm: K-Medoids làm việc được với nhiễu và các phần tử ngoại lệ.
2. Khuyết điểm: K-Medoids chỉ hiệu quả khi tập dữ liệu không quá lớn vì có độ phức tạp là
O(k(n-k)2t).
Trong đó:
n: Số điểm trong không gian dữ liệu.
k: Số cụm cần phân hoạch.
t: Số lần lặp, t khá nhỏ so với n.
Một số biến thể của K-Medoids:
PAM (Partition Around Medoids), CLARA (Clustering Large Application-Kaufman & Rousseuw, 1990),
CALARANS (Clustering Large Application RANdomized Search- Ng and Han, 1994)

c. Thuật toán Phân cụm tích đống phân cấp (Agglomerative Hierachical Clustering)

Ý tưởng: Đây là một thuật toán có ý tưởng rất đơn giản. Xuất phát, mỗi cụm là một đối tượng (nếu có
N các đối tượng, ta có N cụm, mỗi cụm chứa một đối tượng). Sau đó, tiến hành ghép các cụm hai cặp có
khoảng cách bé nhất. Quá trình ghép cụm này được tiến hành lặp cho đến khi các cụm được ghép thành
một cụm duy nhất.

Thuật toán Phân cụm tích đống phân cấp

Đầu vào:
+ D: Một tập dữ liệu chứa n đối tượng
Đầu ra: Một cấu trúc phân cấp các phân cụm.
Phương pháp:
Bước 1: Khởi tạo

115
v Mỗi đối tượng là một phân cụm. Tính khoảng cách giữa các phân cụm
repeat
Bước 2: Tìm cặp cụm có khoảng cách nhỏ nhất và kết hợp chúng thành một cụm mới.
Bước 3: Tính toán lại khoảng cách giữa cụm mới và mỗi cụm cũ.
Until Tập N đối tượng được gom thành 1 cụm.
Trong thuật toán này khoảng cách giữa hai cụm có thể là một trong ba loại sau:
Single-linkage clustering, Complete-linkage clustering, Average-linkage clustering.
Ø Single-linkage clustering (còn gọi là connectedness hoặc minimum method): khoảng cách
giữa hai cụm là khoảng cách ngắn nhất giữa hai đối tượng của hai cụm.
Ø Complete-linkage clustering (còn gọi là phương thức diameter hoặc maximum), khoảng
cách giữa hai cụm là khoảng cách lớn nhất giữa hai đối tượng của hai cụm.
Ø Avgage-linkage clustering: khoảng cách giữa hai cụm là khoảng cách trung bình giữa
hai đối tượng của hai cụm.

H 9.5 Các phương pháp xác định khoảng cách giữa hai cụm

a b c d e f
a 0 12 6 3 25 4
b 12 0 19 8 14 15
c 6 19 0 12 5 18
d 3 8 12 0 11 9
e 25 14 5 11 0 7
f 4 15 18 9 7 0

H 9.10 Ma trận khoảng cách giữa 6 đối tượng

Ví dụ 9.2: Xét một tập 6 đối tượng: a, b, c, d, e, f. Ma trận thể hiện khoảng cách giữa các đối
tượng biểu diễn ở H 9.10. Khoảng cách bé nhất giữa hai đối tượng là khoảng cách giữa a và d. Theo thuật
toán a và d được gom thành một cụm. Sau bước này, ma trận khoảng cách là (H 9.11):

116
ad b c e f
ad 0 ? ? ? ?
b ? 0 19 14 15
c ? 19 0 5 18
e ? 14 5 0 7
f ? 15 18 7 0

H 9.11 Khoảng cách giữa các phân cụm sau bước gom cụm lần 1 (chưa đầy đủ)
Nếu sử dụng khoảng cách giữa 2 phân cụm là single-link, ma trận khoảng cách sẽ là:
ad b c e f
ad 0 8 6 11 4
b 8 0 19 14 15
c 6 19 0 5 18
e 11 14 5 0 7
f 4 15 18 7 0

H 9.11 Khoảng cách giữa các phân cụm sau bước gom cụm lần 1
Tương tự, như hai bước trên, việc gom cụm lần lượt có các ma trận khoảng cách tương ứng:
adf b c e adf b ce adfce b
adf 0 8 6 7 adf 0 8 6 adfce 0 8
b 8 0 19 14 b 8 0 14 b 8 0
c 6 19 0 5 ce 6 14 0
e 7 14 5 0

H 9.12 Ma trận khoảng cách sau 4 lần gom cụm

H 9.13 Kết quả phân cụm tích đống phân cấp

117
Ví dụ 9.3 Xét một tập 6 điểm p1, p2, p3, p4, p5, p6 cần cụm. Ma trận thể hiện khoảng cách
Euclide giữa các đối tượng biểu diễn ở H 9.14.

a. Kết quả phân cụm tích đống phân cấp dựa vào khoảng cách ngắn nhất

(khoảng cách giữa 2 cụm {3,6} và {2, 5} được xác định bởi công thức:

dist({3, 6}, {2, 5}) = min(dist(3, 2), dist(6, 2), dist(3, 5), dist(6, 5))
= min(0.15, 0.25, 0.28, 0.39)

118
= 0.15)

b. Kết quả phân cụm tích đống phân cấp dựa vào khoảng cách lớn nhất

c. Kết quả phân cụm tích đống phân cấp dựa vào khoảng cách trung bình

(Cách tính khoảng cách giữa các phân cụm:

dist({3, 6, 4}, {1}) = (0.22 + 0.37 + 0.23)/(3*1)

= 0.28

dist({2, 5}, {1}) = (0.2357 + 0.3421)/(2*1)

= 0.2889

dist({3, 6, 4}, {2, 5}) = (0.15 + 0.28 + 0.25 + 0.39 + 0.20 + 0.29)/(6 * 2)

= 0.26)

119
Một số biến thể của thuật toán phân cụm tích đống phân cấp:

AGENES (Agglomerative Nesting - Kaufman & Rousseuw, 1990), DIANA (DIvisia ANAlysis-
Kaufman & Rousseuw, 1990), BRICH (Balance Iterative Reducing and Clustering using Hierachies-
Zhang, Ramakrishman, Livny,1996), CURE (Clustering Using Representatives-Guha, Rastogi &Shim,
1998), CHAMELEON (Karypis, Han & Kumar, 1999).

9.4 THUẬT TOÁN PHÂN CỤM DỰA VÀO LÝ THUYẾT TẬP THÔ

a. Thuật toán Rough K-Means

Trong phần trình bày nay, sử dụng một số ký hiệu qui ước sau:

Ký hiệu Ý nghĩa

Ck , C k , C k , Ckb Ck : cụm thứ k, C k : xấp xỉ trên của cụm k , C k : xấp xỉ dưới của cụm
mk mk trọng tâm của cụm k.
M Tập các trọng tâm M = (m1,..,mk) với k=1..K
d(On,mk) Khoảng cách giửa trọng tâm mk và đối tượng On

Thuật toán Rough K-Means sử dụng ba tính chất cơ bản sau :

v Tính chất 1 : Mỗi đối tượng chỉ thuộc duy nhất 1 xấp xỉ dưới.

v Tính chất 2 : Nếu đối tượng thuộc 1 xấp xỉ dưới thì nó cũng thuộc vào xấp xỉ trên tương ứng.

v Tính chất 3 : Một đối tượng thuộc ít nhất 2 xấp xỉ trên nếu nó không thuộc bất kì xấp xỉ dưới
nào.

120
H 9.14 Minh họa các tính chất của các xấp xỉ

Thuật toán Rough K-Means

Đầu vào: O = {O1,O2,…,On} : Tập các đối tượng cần phân cụm

Tham số Wlower, Wupper, ngưỡng e

k : số cụm.
Đầu ra: k cụm của tập đối tượng O

Phương pháp:

Bước 1 : Khởi tạo

Chọn ngẫu nhiên k đối tượng của O làm trọng tâm xuất phát : m1,m2,…,mk

M={ m1,m2,…,mk}

Repeat

Bước 2: Gán các đối tượng vào các xấp xỉ trên và xấp xỉ dưới của các cụm

For i = 1 to k do // Gán giá trị xấp xỉ dưới, xấp xỉ trên mỗi cụm là Æ
Ci   ; Ci  

End for
For each Oe Î O do
/* Khởi tạo tập hợp T = rỗng */

121
T= Æ
/*Tính khoảng cách giữa đối tượng Oe với trọng tâm mỗi cụm d(Oe,mk) ; k=1..n. */

Min = min{d(Oe,mk) | mkÎM} = d(Oe,mq)

Gán Oe thuộc Cq

For j = 1 to k do
min
if 1 - £ e then T = T È {j} End if
d (Oe , m j )
End for

If T ¹Æ then Oe Î C j ; /* "jÎT

else Oe Î Cq

End for each

Bước 3: Cập nhật lại trọng tâm

For i = 1 to k do

 O j Ci
Oj  O j Ci
Oj
mi  wlower   wupper * ;
Ci Ci

/* Với wupper + wlower =1 */

End for
Until trọng tâm các không thay đổi;

b. Thuật toán Rough K-Medoids

Ký hiệu Ý nghĩa

Ck , C k , C k , Ckb Ck : cụm thứ k, C k : xấp xỉ trên của cụm k , C k : xấp xỉ dưới của cụm
mk mk trọng tâm của cụm k.
M Tập các trọng tâm M = (m1,..,mk) với k=1..k
d(On,mk) Khoảng cách giửa trọng tâm mk và đối tượng On
ROF Hàm đối tượng thô (Rough objective function)

122
Thuật toán Rough K-Medoids

Đầu vào: O = {O1,O2,…,On} : Tập các đối tượng cần phân cụm

Tham số Wlower, Wupper, ngưỡng e

k : số cụm.
Đầu ra: k cụm của tập đối tượng O

Phương pháp:

Bước 1 : Khởi tạo

Chọn ngẫu nhiên k đối tượng của O làm trọng tâm xuất phát : m1,m2,…,mk

M={ m1,m2,…,mk}

Repeat

Bước 2: Gán các đối tượng vào các xấp xỉ trên và xấp xỉ dưới của các cụm

For i = 1 to k do // Gán giá trị xấp xỉ dưới, xấp xỉ trên mỗi cụm là Æ
Ci   ; Ci  

End for
For each Oe Î O do
/* Khởi tạo tập hợp T = rỗng */
T= Æ
/*Tính khoảng cách giữa đối tượng Oe với trọng tâm mỗi cụm d(Oe,mk) ; k=1..n. */

Min = min{d(Oe,mk) | mkÎM} = d(Oe,mq)

Gán Oe thuộc Cq

For j = 1 to k do
min
if 1 - £ e then T = T È {j} End if
d (Oe , m j )
End for

If T ¹Æ then Oe Î C j ; /* "jÎT

else Oe Î Cq

End for each

123
Bước 3: Tính ROF theo công thức:

ROF   RCPC (Ck , mk )   ( wl  d (O , m )  w  d (O , m ));


K K

n k u n k
k 1 k 1 On  Ak On  Ak

Với wl = Wlower, wu = Wupper; wl +wu = 1

Bước 4: Điều kiện dừng

For i=1 to k do

Tìm min(RCPC(Ck,Oz)); Với Oz Î Ck

ROF_Tam += min(RCPC(Ck,Oz))
End for

if ROF_Tam < ROF then


begin mk =Oz ; ROF=ROF_Tam; Lặp lại bước 2; end;
else Dừng.

Nhận xét

a. Thuật toán Rough K-Means


Ø Ưu điểm:
· Đơn giản, dễ cài đặt.
· Độ chính xác cao hơn K-Means
· Có thể phân cụm với dữ liệu lớn
Ø Nhược điểm
· Độ phức tạp cao
· Việc tính toán trọng tâm phức tạp và lâu hơn so với K-Means
· Phụ thuộc vào tham số đầu vào :
o Số cụm k và k trọng tâm khởi tạo ban đầu. Nếu như các trọng tâm khởi tạo ban đầu
mà quá lệch so với trọng tâm tự nhiên thì sẽ cho kết quả rất thấp.
o Ngưỡng và Wlower : một số trường hợp chọn ngưỡng và Wlower đầu vào không phù
hợp sẽ dẫn đến thiếu cụm.

b. Thuật toán Rough K-Medoids


Ø Ưu điểm:
· Đơn giản, dễ cài đặt.
· Độ chính xác cao hơn Rough K-Means
· Có thể phân cụm với dữ liệu lớn
· Số lần lặp nhỏ.
Ø Nhược điểm

124
· Độ phức tạp cao
· Việc tính toán trọng tâm phức tạp và lâu hơn so với Rough K-Means
· Phụ thuộc vào các tham số đầu vào : số cụm k, ngưỡng, Wlower.

Nhận xét chung

Các thuật toán nêu trên dễ cài đặt, kết quả đạt được khá chính xác, ít phụ thuộc vào các trọng tâm
khởi tạo ban đầu. Với số cụm biết trước nên 2 thuật toán trên phụ thuộc một phần vào việc khởi tạo trọng
tâm. Thay đổi thông số ngưỡng và thông số Wlower sẽ cho các kết quả khác nhau.

Câu hỏi và bài tập

1. Xét một tập gồm 6 điểm trong không gian hai chiều. Ma trận khoảng cách giữa các điểm được
cho như sau:

P1 P2 P3 P4 P5 P6
P1 0.00 0.23 0.22 0.37 0.34 0.24
P2 0.23 0.00 0.15 0.19 0.14 0.24
P3 0.22 0.15 0.00 0.16 0.29 0.10
P4 0.37 0.19 0.16 0.00 0.28 0.22
P5 0.34 0.14 0.29 0.28 0.00 0.39
P6 0.24 0.24 0.10 0.22 0.39 0.00
a. Hãy tiến hành phân cụm tích đống phân cấp: Khoảng cách bé nhất, Khoảng cách lớn nhất.
b. Vẽ cây phân cấp ứng với cách phân cụm ở câu a.
c. Xác định 3 cụm được tạo bởi hai thuật toán phân cụm ở câu a.

2. Cho một CSDL biểu diễn bởi bảng

Customer Age Income (K) No. card


Anh 35 37 3
Khôi 25 51 3
Văn 29 44 1
Sơn 45 100 3
Cường 20 30 4
Thể 33 57 2
Ngà 65 200 1
Thúy 54 142 2
Nam 58 175 1
Công 25 40 5

a. Sử dụng thuật toán K-Means để phân cụm, k=3. Tính giá trị hàm mục tiêu E.

125
b. Sử dụng thuật toán K-Medoids để phân cụm, k=3. Tính giá trị hàm mục tiêu E.
c. So sánh các kết quả đạt được ở câu a,b.

3. Với dữ liệu đã cho ở bài tập 2. Hãy tiến hành phân cụm bằng thuật toán Rough-Means với k=3,
Wlower=0.2, Wupper= 0.8.

4. Viết thuật toán K-Center với ý tưởng của thuật toán như sau:

Đầu tiên chọn bất kỳ đối tượng như là trọng tâm cụm đầu tiên và gán tất cả các đối tượng cho
cụm đầu tiên. Tiếp đó chọn trọng tâm cụm thứ hai là đối tượng xa trọng tâm đầu tiên nhất và tạo
ra cụm thứ hai bằng cách giao lại cho nó những đối tượng gần trọng tâm cụm thứ hai nhất, và
sau đó chọn trọng tâm cụm thứ ba đó là đối tượng xa trọng tâm của cụm mà nó thuộc nhất và tạo
ra cụm thứ ba như cụm thứ hai,tiếp tục cho đến khi tìm được trọng tâm cụm thứ k và cuối cùng ta
thu đươc k cụm. Những lựa chọn k điểm thường được gọi là điểm mốc.

H 9.15 Minh họa các bước thực hiện của thuật toán K-Center

5. Phân cụm phân cấp một đôi khi được sử dụng để tạo ra K cụm, K>1 bằng cách chọn các phân
cụm ở múc thứ K của biểu đồ phân cấp. (Gốc là ở mức 1). Với cách tạo các phân cụm bằng cách
này, chúng ta có thể đánh giá cách xử lý của phân cụm phân cấp đối với các kiểu dữ liệu khác
nhau, và cũng có thể so sánh với cách tiếp cận phân cấp K-Means.

Cho tập các điểm 1 chiều {6, 12, 18, 24, 30, 42, 48}

a. Với mỗi tập sau khởi tạo các trọng tâm, tạo lập 2 cụm bằng cách đưa các điểm của tập đã
cho gần trọng tâm nhất vào cụm được xác định bởi trọng tâm đó. Thể hiện hai phân cụm
thiết lập được.
i. {18, 45}
ii. {15, 40}
b. Nếu sử dụng thuật toán K-Means để phân thành 2 cụm ứng với các trọng tâm xuất phát
như a. , các phâm cụm được sinh ra có gì khác biệt so với cách phân cụm nêu ở bước a.
c. Hãy chỉ ra 2 phân cụm bằng thuật toán phân cụm phân cấp tích đống khoảng cách nhỏ
nhất.

126
d. Với kỹ thuật nào: K-Means hay phân cụm phân cấp tích đống khoảng cách nhỏ nhất sinh
ra các phân cụm “tự nhiên nhất” trong ngữ cảnh này.

6. Thuật toán phân cụm phân cấp có độ phức tạp là O(m2log(m)), chính điều đó làm hạn chế việc
ứng dụng trong thực tế khi tập dữ liệu có dung lượng lớn. Một kỹ thuật làm giảm độ phức tạp

bằng cách xử lý phân cụm với tập mẫu m điểm (của tập m điểm cần phân cụm). Với thuật toán
phân cụm phân cấp ta thu được K cụm với độ phức tạp là O(m). K cum nhận được bằng cách
chọn các phân cụm ở múc thứ K của biểu đồ phân cấp. Sau đó, các điểm còn lại được gán vào các
phân cụm với thời gian tuyến tính (bằng nhiều phương pháp). Với ý tưởng giảm độ phức tạp của
phân cụm như đã nêu, hãy đề xuất các giải pháp làm giảm độ phức tạp trong các trường hợp:

a. Dữ liệu với nhiều phân cụm có kích thước khác nhau.


b. Dữ liệu nhiều chiều.
c. Dữ liệu không Euclide (Non-Euclidean)
d. Dữ liệu có nhiều thuộc tính có kiểu dữ liệu khác nhau.
e. Dữ liệu có hình dạng các miền không bình thường.

7. Tìm hiểu thuật toán phân cụm dựa vào mật độ DBSCAN.

8. Xem xét hình bốn khuôn mặt sau (H 9.16), Các vùng sẩm màu biểu diễn sự trù mật các điểm, các
đườngchỉ sử dụng để phân biệt các vùng không biểu diễn các điểm.

a. Với mỗi hình, có thể sử dụng thuật toán phân cụm phân cấp tích đống khoảng cách bé
nhất để phát hiện mũi, mắt, miệng không? Tại sao?
b. Với mỗi hình, có thể sử dụng thuật toán phân cụm K-Means để phát hiện mũi, mắt, miệng
không? Tại sao?
c. Hạn chế của các thuật toán phân cụm để phát hiện các mẫu trong hình H 9.16 c.

H 9.16 Dữ liệu cho bài tập 8

9. Tìm hiểu các phương pháp đánh giá chất lượng phân cụm.

127
Chương 10

KHAI PHÁ VĂN BẢN

Khai phá văn bản (Text Mining) là một ứng dụng thực tế của Khai phá dữ liệu. Ở đây, các đối
tượng của khai phá văn bản là các tài liệu văn bản (văn bản: đó là các tài liệu ở dạng không có cấu trúc
hoặc bán cấu trúc), ví dụ như: các bài viết trên báo chí, các bài báo khoa học hoặc có thể là các tóm tắt,
thậm chí là các tiêu đề của các bài báo. Đây là bài toán ngày càng trở nên quan trọng trong thực tế do
lượng tài liệu in ấn ở mọi lĩnh vực tăng lên rất nhiều, ngay các chuyên gia cũng khó lòng phân loại và
xác định các tài liệu liên quan với nhau.

Về nguyên tắc chúng ta có thể sử dụng bất kỳ phương pháp chuẩn để phân loại (Naïve
Bayes, Láng giềng gần nhất, Cây quyết định ..) cho bài toán này. Tuy nhiên, dữ liệu của văn bản
có một số tính năng đặc trưng vì vậy cần có một số kỹ thuật riêng để xử lý.Trong chương này giới thiệu
một số mô hình biểu diễn văn bản do một số tác giả Việt nam đề xuất sử dụng công cụ tập mờ, tập thô.

10.1 KHAI PHÁ DỮ LIỆU VĂN BẢN

- Khai phá dữ liệu văn bản là việc rút trích các thông tin có ích, chưa được biết đến còn tiềm ẩn
trong các kho dữ liệu văn bản lớn.
- Khai phá dữ liệu văn bản là việc thu thập và phân tích dữ liệu bằng các công cụ tự động hoặc
bán tự động từ các nguồn tài liệu khác nhau để có được các tri thức mới, chưa được biết đến trước đó.
- Khai phá dữ liệu văn bản là phát hiện ra các mô tả chung của các lớp đối tượng, các từ khoá, các
mối liên quan về mặt nội dung, sự phân loại của các đối tượng văn bản.
- Dữ liệu văn bản thường là dữ liệu phi cấu trúc hoặc bán cấu trúc.

a. Đặc trưng của khai phá văn bản

Đối tượng của khai thác dữ liệu văn bản là văn bản, vì vậy có một số điểm đặc trưng so với khai
phá dữ liệu thông thường. Có thể thấy sự đối sánh sự khác biệt này qua H 10.1

Tiêu chí phân biệt Khai phá dữ liệu Khai phá văn bản
Loại dữ liệu Dữ liệu số/ phân loại Văn bản
Cấu trúc đối tượng CSDL quan hệ Phi cấu trúc/ bán cấu trúc
Tìm kiếm, phân tích ngữ nghĩa, phân
Mục tiêu Dự báo, đoán nhận
lớp, trích chọn đặc trưng,..
Phương pháp Học máy Mạng Neuron, tập mờ, tập thô, ngôn ngữ
Quảng bá Từ 1994 Từ 2000
H 10.1 So sánh đặc điểm Khai phá dữ liệu thông thường và Khai phá văn bản

128
b. Các bài toán đang được quan tâm trong lĩnh vực khai phá văn bản:

v Phân loại văn bản (Text Categorization - Text Classification): Phân loại văn bản là ứng dụng khá
phổ biến. Các tài liệu văn bản được phân thành các thư mục theo các chủ đề khác nhau. Một văn
bản mới cần phải xác định thuộc thư mục nào đã được xác lập. Việc lựa các đặc trưng để phân
lớp văn bản tự động là bài toán khó và tính hữu ích cao. Một vài ví dụ ứng dụng thực tế có thể
liệt kê như: phân loại Email, Công văn, Hồ sơ bệnh án..

v Tìm kiếm văn bản (Text Retrieval): là quá trình truy tìm thông tin. Đây là vấn đề phổ biến và
quan trọng đối với các tài liệu trực tuyến. Chúng ta có thể thấy một số hệ thống điển hình và nổi
thực thi vấn đề này đó là Google. Các hệ thống này dựa vào các truy vấn sử dụng các phép toán
logic và các độ đo tương tự (similarity measure), đối sánh để kết xuất thông tin. Máy tìm kiếm
(search engine) sẽ biến đổi các hạng mục truy vấn thành một vector, sau đó so sánh với các tài
liệu lưu trữ. Kết quả trả về là danh sách các tài liệu được sắp xếp giảm dần theo mức độ phù hợp
với truy vấn đầu vào.

v Phát hiện xu hướng văn bản (Text Trend Detection): Đây là bài toán phát hiện các xu hướng, các
luật chưa được biết đến trong các CSDL văn bản lớn. Ví dụ điển hình nhất của bài toán này đó
là tìm ra các thông tin xác định khả năng bị ung thư của một bệnh nhân từ cơ sở dữ liệu bệnh án
về ung thư đã được thu thập, hay đưa ra được các xu hướng mua các mặt hàng của khách hàng
khi họ đi siêu thị,…Đây là bài toán hay, có ý nghĩa rất quan trọng và tất nhiên đó cũng là bài
toán khó nhất trong các bài toán thuộc về lĩnh vực khai thác dữ liệu văn bản.

v Phân tích ngữ nghĩa (Semantic analysis): là quá trình phát hiện mối liên quan ngữ nghĩa của văn
bản với tập khái niệm đã biết. Bài toán cơ sở của phân tích ngữ nghĩa là phát hiện mối quan hệ
ngữ nghĩa trong một văn bản.

v Phân cụm văn bản (Text Clustering): Phân cụm văn bản là bài toán tự động lập ra các nhóm văn
bản từ một tập các văn bản có sẵn căn cứ vào sự tương tự về mặt nội dung. Người sử dụng có thể
chỉ định số nhóm cần lập hoặc hệ thống tự động tính số nhóm sao cho phù hợp nhất. Nhờ việc
phân cụm tự động, hệ thống sẽ gợi ý cho người dùng cách phân loại một tập các văn bản có sẵn
môt cách hợp lý. Tính chính xác và độ tin cậy của việc phân cụm phụ thuộc vào quá trình học
máy. Tuy nhiên, phân cụm đúng tuyệt đối là một việc phi thực tế.

v Tóm tắt văn bản (Text Summarization): Tóm tắt văn bản là bài toán tìm ra thể hiện nội dung của
một văn bản thông qua đoạn văn bản ngắn hơn nhưng vẫn giữ được ngữ nghĩa của văn bản gốc.
Có hai dạng xây dựng văn bản tóm tắt:

- Rút gọn văn bản gốc bằng cách loại bỏ một số câu, từ

129
- Kết hợp một số cụm từ thuộc văn bản gốc.

v Định tuyến văn bản (Text Routing): bài toán định tuyến văn bản là sự tổ hợp giữa bài toán tìm
kiếm văn bản và phân loại văn bản. Giống như phân loại văn bản, bài toán định tuyến đưa các
văn bản về các nhóm khác nhau. Tuy nhiên nó cũng giống bài toán tìm kiếm, mỗi nhóm văn bản
được gán với các thông tin cần thiết của một hay nhiều nhóm người dùng. Mỗi người dùng có
thể thay đổi thêm bớt các yêu cầu của mình, quá trình phản hồi có thể được sử dụng để nâng cao
chất lượng tìm kiếm. Ứng dụng dễ thấy nhất của bài toán định tuyến văn bản là trong các trang
tin điện tử, khi đọc một tin mới, hệ thống sẽ đưa ra danh sách các tin khác có liên quan hoặc
tương tự đến tin đang đọc.

v Phát hiện hướng văn bản (Trend Detection) là phát hiện chủ đề của văn bản đang được phát triển
hữu dụng theo thời gian. Ví dụ: Căn cứ vào các bài báo đã công bố, xác định những vấn đề đang
được nhiều tác giả quan tâm.

v Trích chọn từ khoá (Keyword Extraction): bài toán trích chọn từ khoá, thực hiện việc trích ra
được các từ khoá quan trọng nhất của văn bản, thể hiện đặc thù về chuyên môn của văn bản đó.

v Thể hiện trực quan văn bản (Text Visualization): tìm cách diễn đạt trực quan văn bản.

10.2 MỘT SỐ MÔ HÌNH BIỂU DIỄN VĂN BẢN

Hiện nay có nhiều phương pháp cũng như kỹ thuật để giải quyết các bài toán về xử lý văn bản.
Hiệu quả và hiệu suất xử lý của chúng phụ thuộc rất nhiều vào mô hình biểu diễn các văn bản. Dưới đây
là một số mô hình dùng để biểu diễn văn bản:

a. Mô hình không gian vectơ (Vector Space Model)

Mô hình này được đề xuất bởi Salton và cộng sự (1975). Bản chất của mô hình này là mỗi văn
bản được biểu diễn thành một vector. Mỗi thành phần của vector là một thuật ngữ riêng biệt trong tập văn
bản gốc và hàm trọng số f (đặc trưng cho độ quan trọng) của mỗi ký tự. Có nhiều biến thể của mô hình
không gian vector, dưới đây là một số dạng của mô hình không gian vector:

(i) Mô hình Boolean: là mô hình không gian vector có hàm trọng số f cho ra giá trị rời rạc với duy
nhất hai giá trị đúng và sai (true và false, hoặc 0 và 1). Hàm f tương ứng với thuật ngữ ti sẽ cho ra giá trị
đúng nếu và chỉ nếu thuật ngữ ti xuất hiện trong văn bản đó.

Giả sử có một cơ sở dữ liệu gồm m văn bản, D = {d1, d2,… dm}. Mỗi văn bản được biểu diễn dưới
dạng một vector gồm n thuật ngữ T = {t1, t2,…tn}. Gọi W = {wij} là ma trận trọng số, trong đó wij là giá
trị trọng số của thuật ngữ ti trong văn bản dj được xác định đơn giản như sau:

130
1 nếu ti Î dj
wij=
0 nếu t Ï dj
(1.1)i

(ii) Mô hình tần suất – TF (Term Frequency): Các giá trị trọng số wij được xác định dựa trên tần
số (hay số lần) xuất hiện của thuật ngữ trong văn bản. Gọi fij là số lần xuất hiện của thuật ngữ ti trong văn
bản dj, khi đó wij được tính bởi một trong ba công thức:

wij = fij hoặc wij = 1 + log(fij) hoặc wij = fij

Ký hiệu: log(X) - logarit cơ số 10 của X.

Trong phương pháp này, trọng số wij đồng biến với số lần xuất hiện của thuật ngữ ti trong văn bản
dj. Khi số lần xuất hiện thuật ngữ ti trong văn bản dj càng lớn thì điều đó có nghĩa là văn bản dj càng phụ
thuộc vào thuật ngữ ti, hay nói cách khác thuật ngữ ti mang nhiều thông tin trong văn bản dj.

(iii) Mô hình nghịch đảo tần số văn bản – IDF (Inverse Document Frequency):

Trong phương pháp này, giá trị wij được tính theo công thức:

ìlog m = log(m) - log(h ) nÕu t i xuÊt hiÖn trong tµi liÖu d j


ï i
w ij = í hi
ïî0 nÕu ng­îc l¹i

Với m là số lượng văn bản và hi là số văn bản mà thuật ngữ ti xuất hiện. Trọng số wij trong công
thức này được tính dựa trên độ quan trọng của thuật ngữ ti trong văn bản dj với lập luận: nếu ti xuất hiện
trong càng ít văn bản thì quan trọng hơn các từ xuất hiện trong nhiều văn bản.

(iv) Mô hình kết hợp TFxIDF:

Phương pháp này là kết hợp của hai phương pháp TF và IDF, giá trị của trọng số wij được tính
theo công thức:

ì æmö
ï[1 + log( f ij )].log ç h ÷ , ti Î d j
wij = í è iø
ï0 , ti Ï d j
î

Phương pháp này kết hợp được ưu điểm của cả hai phương pháp trên. Trọng số wij được tính
bằng tần số xuất hiện của thuật ngữ ti trong văn bản dj và độ hiếm của thuật ngữ ti trong toàn bộ cơ sở dữ

131
liệu.Tuỳ theo yêu cầu ràng buộc cụ thể của bài toán mà ta sử dụng các mô hình biểu diễn văn bản cho phù
hợp.

Trong mô hình không gian vector có sử dụng tới phép tính độ tương tự giữa 2 vector, vector trọng
tâm của một nhóm văn bản và phép tính độ tương tự giữa 2 nhóm văn bản. Đây là những công thức quan
trọng và xuyên suốt trong các bài toán có sử dụng mô hình không gian vector.

Ø Phép tính độ tương tự giữa hai vector:

Xét hai vector X = {x1, x2,…, xm} và Y = {y1, y2,…, ym} biểu diễn dưới dạng vector tần suất TF ×
IDF. Độ tương tự giữa hai vector được tính theo công thức cosine:

X .Y å x .y i i
sim( X , Y ) = cosine( X , Y ) = = i =1
m m
X Y
å xi 2 .
i =1
åy
i =1
i
2

Ø Vector trọng tâm của một nhóm văn bản:

Xét một nhóm văn bản c, khi đó vector trọng tâm C của nhóm c được tính thông qua vector tổng
D = å d , (d là vector văn bản thuộc nhóm c):
d Îc

D
C=
c

Trong đó, |c| là số phần tử thuộc tập văn bản c.

Trong các bài toán xử lý văn bản thì vector trọng tâm được dùng để làm đại diện cho cả nhóm
văn bản.

Ø Phép tính độ tương tự giữa hai nhóm văn bản:

Giả sử ta có hai nhóm vector c1, c2, khi đó độ tương tự giữa hai nhóm văn bản được tính bằng độ
gần nhau giữa hai vector trọng tâm C1, C2:

sim(c1, c2) = sim (C1, C2)

Ở đây ta hiểu rằng c1 và c2 có thể là một văn bản riêng lẻ vì khi đó có thể coi một nhóm chỉ gồm
một phần tử.

b. Mô hình dựa trên tập mờ (Fuzzy Set)

132
Trong ngôn ngữ tự nhiên thì một thuật ngữ, một từ có thể thuộc nhiều lĩnh vực khác nhau. Do đó,
giữa phạm vi của các khái niệm có sự giao nhau là một điều dễ hiểu. Đó cũng chính là vấn đề cần xem xét
và giải quyết trong các bài toán về xử lý văn bản.

Biểu diễn văn bản dựa trên khái niệm mờ

Giả sử có 1 tập các văn bản D = {d1, d2, ..., dM}. Khi đó ta có một tập các từ khóa T = {t1, t2,..,
tN}. Sự liên quan của các từ khoá tới một văn bản được xác định tương ứng bằng cách sử dụng một hàm
thuộc nào đó đã biết:

mr = {mr(t1), mr(t2), .., mr(tN)}

Để dễ trình bày, xét một chủ đề cụ thể, ví dụ chủ đề "bóng đá". Giả sử có một tập các khái niệm
liên quan tới chủ đề này, ký hiệu:

K = {k1, k2, ..., kn}

Trong đó các giá trị ki do người dùng xác định. Xét một khái niệm k nào đó trong tập các khái
niệm K, khi đó một khái niệm có thể bao gồm một số thuật ngữ và xác định như sau:

k = {ti} , i Î [1, m]

Từ đó có thể xây dựng một khái niệm mờ như sau: khái niệm mờ là tập mờ tương ứng với một
khái niệm trong đó hàm thuộc của nó được xác định bằng độ quan trọng của các từ có liên quan tới khái
niệm đó.
N
mT (ti )
Ký hiệu một khái niệm mờ của khái niệm k là k : k = å , trong đó:
i =1 ti

ì 0, t không thuộc k
ï
mT (t ) = í 1, t chắc chắn thuộc k
ï
î m (t), t chưa chắc thuộc k
T

Mức độ quan trọng của một khái niệm mờ khi đó được xác định bằng một hàm tích hợp mờ, ký
hiệu là m ( k ) .[5]

Khi đó một văn bản d có thể được biểu diễn dưới dạng:

d = {m ( k1 ), m ( k 2 ),..., m ( ki )}

Khái niệm mờ có thể giải quyết vấn đề từ đồng nghĩa trong xử lý văn bản. Bằng cách sử dụng
hàm tích hợp, chúng ta có thể giải quyết vấn đề từ đồng nghĩa. Các từ đồng nghĩa được xác định và tích

133
hợp vào cùng một khái niệm chung, việc xử lý văn bản sẽ thực hiện trên các khái niệm mờ đó thay cho
việc xử lý trực tiếp trên các từ.

Tóm lại, bài toán về biểu diễn văn bản dựa vào lý thuyết tập mờ trở thành bài toán tổ chức lưu
trữ và xử lý trên các khái niệm thay vì xử lý trực tiếp các thuật ngữ. Việc lưu trữ và xử lý trên các khái
niệm sẽ cho ra các kết quả tốt hơn và hiệu quả hơn. Tuy nhiên, việc xác định hàm thể hiện sự phụ thuộc
giữa các khái niệm và thuật ngữ là rất khó, vẫn còn là một vấn đề cần phải lưu tâm giải quyết.

Phần này chỉ giới thiệu cho người đọc một vài khái niệm về mô hình biểu diễn văn bản dựa trên
tập mờ không đi sâu vào chi tiết vào việc giải quyết bài toán xử lý văn bản.

c. Mô hình tập thô dung sai (TRSM -Tolerance Rough Set Model)

Mô hình tập thô dung sai được các tác giả Hồ Tú Bảo, Saori Kawasaki, Nguyễn Ngọc Bình đề
xuất ở hội nghị về các hệ thống thông minh tiên tiến tại Hàn Quốc, tháng 8 - 2001.

Như đã biết, phân cụm văn bản là một công cụ hữu hiệu để phân tích và tìm kiếm thông tin trên
các tập dữ liệu văn bản. Khó khăn chính của bài toán phân cụm văn bản là phải tiến hành xử lý dữ liệu
với định dạng không có cấu trúc và bán cấu trúc. Vì vậy, chất lượng của việc phân cụm phụ thuộc rất
nhiều vào mô hình biểu diễn. TRSM là một mô hình biểu diễn văn bản dựa trên lý thuyết về tập thô mở
rông, TRSM thay thế quan hệ tương đương (equivalence relations) trong mô hình tập thô kinh điển bằng
quan hệ dung sai (tolerance relations). TRSM biểu diễn dữ liệu dựa vào mối quan hệ ngữ nghĩa giữa các
văn bản.

Các tác giả Hồ Tú Bảo, Saori Kawasaki và Nguyễn Ngọc Bình đã đề xuất hai giải thuật phân cụm
văn bản: TRSM Hierachical Clustering và TRSM Non-Hierachical Clustering và ứng dụng các thuật toán
này để tìm kiếm thông tin. TRSM sẽ được xem xét chi tiết cụ thể vào chương sau.

10.3 CÁC PHƯƠNG PHÁP LỰA CHỌN CÁC TỪ TRONG BIỂU DIỄN VĂN BẢN

Việc rút trích các từ đặc trưng của văn bản phục vụ cho việc khai phá văn bản cũng là bài toán
khó. Khi xử lý văn bản, có thể có những từ tần số xuất hiện rất cao nhưng không phải là những từ quan
trọng nhất ví dụ các mạo từ, từ nối.... và có những từ xuất hiện với tần số thấp nhưng đó chính là các từ
đôi khi đóng một vai trò quan trọng trong nội dung văn bản. Một số phân loại và phương pháp lựa chọn
các từ trong biểu diễn văn bản:

Ø Loại bỏ các từ dừng (stop words) trong biểu diễn văn bản:

Trong văn bản, có những từ chỉ dùng phục vụ cho việc biểu diễn câu, chứ không diễn đạt nội
dung. Việc loại bỏ các từ này không ảnh hưởng đến phép phân loại văn bản. Các từ này được xem như
những từ dừng (stop words), ví dụ các mạo từ, từ nối..

134
Ø Chọn từ gốc (word stemming)

Trong tiếng Anh hay trong nhiều ngôn ngữ khác, có chung một từ gốc, hoặc biến thể của một từ
nào đó. Ví dụ: “Computing” và “Computation” hay “applied”, “applying”, “applies”, “apply”. Ý tưởng
chọn từ gốc để biểu diễn nhằm rút gọn kích thước văn bản. Các thuật toán rút trích từ gốc dựa trên hình
thái học (morphology) của ngôn ngữ cần xử lý, với ví dụ trên từ gốc của “Computing” , “Computation” là
“Comput” và các từ còn lại có từ gốc là “appli”

Ø Biễu diễn thông qua mô hình n-gram:

Đối với phương pháp này, các cụm từ có ý nghĩa được xem là một đơn vị từ (gram). Ví dụ, cụm
từ “personal computer”, “Vector space model” là 2-gram, 3-gram,..Việc sử dụng n-gram trong biểu diễn
là để làm giàu thêm tính chất ngữ nghĩa của văn bản, tăng độ chính xác trong biểu diễn.

Ø Chuẩn hóa trọng số (Normalising the weights)

Trước khi sử dụng các vector N-chiều, đầu tiên các vector phải được chuẩn hóa, với lý do tương
tự như việc chuẩn hóa giá trị các thuộc tính liên tục. Các vector sẽ được chuẩn hóa sao cho mỗi thành
phần có giá trị nằm trong khoảng [0,1]. Phương pháp chuẩn hóa rất đơn giản: Xét vector v=(t1, t2, .., tn)
1
được chuẩn hóa thành vector u= v.
N

åt
i =1
i
2

Ø Độ đo trong lựa chọn đặc trưng

Một trong những phương pháp lựa chọn từ để biểu diễn là dựa vào độ đo đặc trưng. Đặc trưng
(Feature) là khái niệm chung trong học máy và khai phá dữ liệu. Trong dữ liệu văn bản, có thể chia độ đo
lựa chọn đặc trưng thành hai loại: Độ đo dựa vào tần số và độ đo dựa vào lý thuyết thông tin (entropy).

Một số độ đo thường được sử dụng:

Giả sử tập các chủ đề là C= {ci }i =1 , ký hiệu f(tk, ci) là độ đo của từ tk trong chủ đề ci.
m

1. Độ đo DIA (Darmstadt Indexing Approach) (Fuhn và cộng sự)

f(tk, ci) = z(tk, ci) = p(ci |tk)

2. Độ đo IG (Information Gain)

p (t , c)
f(tk, ci) = IG(tk, ci) = å å p (t , c) log
p (t ). p (c)
cÎ{ci , ci } tÎ{tk , tk }

3. Độ đo thông tin tương hỗ (Mutual Information):

135
p (tk , ci )
f(tk, ci) = log
p (tk ) p(ci )

Các độ đo trên là tính cho từng lớp. Độ đo cho toàn bộ các lớp trong tập hợp có thể được tính
theo nhiều cách khác nhau:

C C C
f(tk)= å f (tk , ci ) hoặc f(tk)= å p (ci ) f (tk , ci ) hoặc f(tk)= max f (tk , ci )
i =1
i =1 i =1

10.4 THU GỌN ĐẶC TRƯNG BIỂU DIỄN

Khi biểu diễn một văn bản ứng với một vector, một từ khóa sẽ là một thành phần của vector. Do
đó, kích thước của không gian biểu diễn văn bản sẽ rất lớn. Một điểm đáng lưu ý là số lượng các thành
phần ứng với các từ không xuất hiện trong văn bản (mang giá tri 0) cũng có thể trù mật, điều này cũng là
một nguyên nhân làm việc phân lớp khó khăn và độ phức tạp cao. Một trong những giải pháp khắc phục
những vấn đề trên là rút gọn số lượng các đặc trưng (feature) bằng cách lựa chọn và chỉ giữ lại các đặc
trưng có ảnh hưởng hay mang tính chất quyết định cao, không làm giảm chất lượng phân lớp.

Bài toán lựa chọn (thu gọn) đặc trưng là một bài toán tối ưu chọn ra từ tập F các đặc trưng của
một tập con F*, sao cho đại diện tốt nhất cho F trong bài toán phân lớp. Các thuật toán này giải quyết bài
toán này có độ phức tạp là NP-khó. Một số chiến lược để tìm kiếm tập con F* điển hình:

· Lựa chọn “tiến”: Xuất phát từ tập con rỗng, bổ sung dần các đặc trưng tốt nhất vào.

· Loại bỏ “lùi”: Xuất phát từ tập F, loại bỏ dần các đặc trưng kém giá trị.

· Lựa chọn “tiến bậc thang”: Xuất phát từ tập con rỗng, trong mỗi bước dùng chiến thuật tham lam
bổ sung và loại bỏ đặc trưng.

· Loại bỏ “lùi bậc thang”: Xuất phát từ tập F, trong mỗi bước dùng chiến thuật tham lam bổ sung
và loại bỏ đặc trưng.

· Lựa chọn đặc trưng Khi-bình phương (c2): Dựa vào công cụ xác suất thống kê, xét mối quan hệ
ngẫu nhiên của từ khóa k và sự xuất hiện của lớp c. Tính (c2) là độ chênh lệch giá trị kỳ vọng và
giá trị quan sát. Nếu giá trị c2 cao, thì giả thuyết k thuộc lớp c là không hợp lý.

· Lựa chọn đặc trưng dựa trên tần suất: Sử dụng tần suất lựa chọn các từ khóa phổ biến trong lớp.

· Lựa chọn đặc trưng cho nhiều bộ phân lớp: Thay các bộ phân lớp riêng lẻ thành một bộ phân lớp
toàn cục, để tránh sự trùng lắp giảm thời gian truy xuất.

10.5 PHÂN LOẠI SIÊU VĂN BẢN

136
Một phân lớp văn bản đặc biệt quan trọng và khó khăn đó là phân loại các trang web. Việc phân
loại các trang web được gọi là phân loại siêu văn bản (Hypertext Categorisation).

Việc phân loại siêu văn bản có những điểm tương đồng như phân loại văn bản thông thường,
nhưng do khuôn dạng qui định của cấc trang web làm cho việc phân loại có nhiều đặc thù và khó khăn.

Một số đặc thù và khó khăn khi phân loại siêu văn bản:

§ Phần lớn các trang web chứa nhiều thông tin chuyên biệt, hình ảnh, kết nối…Vì thế chỉ một số ít
các trang web được phân lớp dựa vào kỹ thuật học có giám sát.

§ Nội dung các trang web được trình bày theo cấu trúc siêu văn bản làm nội dung bị phân thành
nhiều mảnh nhỏ. Các ký hiệu qui ước (các thẻ-tag) của siêu văn bản có thể trùng lắp với các từ khóa.

Có một số giải pháp để giải quyết các vấn đề trên:

· Loại bỏ các thẻ (tag) qui ước của siêu văn bản trước khi tiến hành phân lớp.
· Sử dụng các phân lớp “thô” của một số phần mềm duyệt web để trích lọc từ khóa đặc trưng.
· Sử dụng nội dung các trang web liên kết để mở rộng nội dung trang web hiện hành làm chính
xác thêm việc phân lớp.
· Sử dụng tính chất của các thẻ để xác định trọng số cho các từ khóa. Các từ khóa hoặc cụm từ
khóa đính kèm các thẻ sau thường được gán trọng số cao:
o Tiêu đề của trang (<title>..</title>)
o ‘metadata’ (các từ khóa mô tả trang web)
o Các thông tin đầu mục (header)
o Các từ khóa nằm giữa các thẻ định dạng chữ đậm (bold) hay in nghiêng (Italic).
o Các từ khóa chứa các kết nối với các trang web khác.
Việc phân lớp các trang web cần phải có nhiều nghiên cứu và kinh nghiệm để kết quả phân lớp
tốt.
Khai phá dữ liệu Web khá đầy đủ và chi tiết có thể tham khảo [4].

Câu hỏi và bài tập

1. Giả sử có 2 văn bản:

Văn bản 1: Computing is not about computers any more. It is about living

Văn bản 2: To live is to compute.

a. Hãy xác định tần số của các từ (không phân biệt chữ hoa, chữ thường) thông qua vector biểu
diễn hai văn bản

137
Từ khóa Vector cho văn bản 1 Vector cho văn bản 2
about
any
compute
computers
computing
live
living
more

b. Hãy rút gọn các vector bằng cách gộp các từ có chung từ gốc (word stemming).

c. Tính độ tương tự giữa hai vector có được từ b.

2. Cho Một văn bản, rút trích từ 1.000 văn bản có 4 từ khóa được thống kê theo bảng sau:

Tần suất xuất hiện của từ khóa


Từ khóa Số văn bản chứa từ khóa
trong văn bản đang xét
dog 2 800
cat 10 700
man 50 2
woman 6 30

hãy tính các giá trị TFIDF cho mỗi từ.

3. Phân biệt sự khác nhau giữa bài toán khai phá dữ liệu thông thường, bài toán khai phá dữ liệu văn
bản và khai phá dữ liệu Web.
4. Chỉ ra những khó khăn khi khai phá dữ liệu văn bản tiếng Việt.

138
Chương 11

KHAI PHÁ VĂN BẢN DỰA TRÊN MÔ HÌNH TẬP THÔ DUNG SAI

Tập thô ngày nay đã trở thành một công cụ toán học được sử dụng phổ biến trong khai phá dữ
liệu. Nội dung của chương này giới thiệu các kết quả phân cụm văn bản dựa mô hình tập thô dung sai
của ba tác giả Hồ Tú Bảo, Nguyễn Ngọc Bình và Saori Kawwasaki được công bố trong
[10][11][32][35]. Việc giới thiệu các kết quả này nhằm thể hiện tập thô là công cụ toán học mạnh trong
khai phá dữ liệu.

11.1 BIỂU DIỄN VĂN BẢN

Ký hiệu D = {d1, d2, ..., dM} là một tập gồm M văn bản. Mỗi văn bản dj, được ánh xạ thành một
danh sách các thuật ngữ ti , mỗi thuật ngữ được gán cho 1 trọng số phản ánh độ quan trọng trong văn bản.

Đặt f d j (ti ) là số lần xuất hiện của thuật ngữ ti trong văn bản dj (tần số thuật ngữ), và đặt fD(ti) là

số các văn bản trong D có chứa thuật ngữ ti (tần số văn bản).

Trọng số wij của thuật ngữ ti trong văn bản dj, đầu tiên được xác định:

ì M
ï(1 + log( f d j (ti )).log f (t ) , ti Î d j
wij = í D i
ï0 , ti Ï d j
î

Chú ý: trong công thức trên, khi một từ khóa ti xuất hiên trong tất cả các văn bản, nó không có ý
nghĩa trong phân lớp hay phân cụm văn bàn, ta có f D (ti ) = M nên log(M/fD(ti))=log(1)=0.

sau đó được chuẩn hoá bởi công thức:

wij
wij =
å th Îd j
( whj ) 2

Mỗi văn bản dj được biểu diễn bởi r thuật ngữ có trọng số cao nhất. Thông thường, r là giá trị
chung cho tất cả các văn bản:

dj = (t1j, w1j ; t2j, w2j ; ... ; tAj , wAj) và wij Î [0, 1]

Tập tất cả các thuật ngữ thuộc D được đặt là tập T = {t1, t2, ..., tN}.

139
Trong trường hợp truy vấn thông tin, một truy vấn thông tin được cho dưới dạng Q = {q1, w1q ;
q2, w2q ; ... ; qs, wsq}, trong đó qi thuộc T và wiq thuộc [0, 1].

11.2 MÔ HÌNH TẬP THÔ DUNG SAI (TRSM)

TRSM tập trung vào làm phong phú việc biểu diễn văn bản với các thuật ngữ có quan hệ về mặt
ngữ nghĩa bằng cách tạo ra các lớp dung sai của các thuật ngữ trong T và sự xấp xỉ các tập con của các
văn bản. Mô hình này có nguồn gốc từ lý thuyết tập thô và các mở rộng của nó.

Quan hệ dung sai là một quan hệ hai ngôi thỏa tính phản xạ và đối xứng.

Đặt fD(ti, tj) là số các văn bản trong D mà 2 thuật ngữ có chỉ số ti và tj đồng thời xuất hiện. Ta
định nghĩa một hàm thay đổi I phụ thuộc vào ngưỡng q (>0):

Iq(ti) = {tj | fD(ti, tj) ≥ q} È {ti}

Dễ thấy, hàm Iq được định nghĩa ở trên thoả mãn điều kiện: ti thuộc Iq(ti) và tj thuộc Iq(ti) nếu và
chỉ nếu ti thuộc Iq(tj) với bất kỳ ti, tj nào thuộc T, và vì thế Iq có tính chất phản xạ và đối xứng. Hàm này
tương đương với một quan hệ dung sai I Í T x T mà tiItj khi và chỉ khi tj Î Iq(ti), và Iq(ti) là lớp dung sai
của thuật ngữ chỉ số ti. Một hàm bao gồm gần đúng (Vague inclusion function) n, xác định tỷ lệ số phần
tử trong X được bao gồm trong Y, được định nghĩa như sau:

X ÇY
n ( X ,Y ) =
X

Hàm n này rõ ràng là đơn điệu với tham số thứ 2. Sử dụng hàm này thì các hàm thành viên m với
ti thuộc T, X Í T có thể được định nghĩa như sau:

I q (t i ) Ç X
m (ti , X ) = v ( I q (ti ), X ) =
I q ( ti )

Từ các định nghĩa này, ta có thể định nghĩa một không gian dung sai như R = (T, I, n, P) trong đó
tập xấp xỉ dưới L(R,X) và tập xấp xỉ trên U (R,X) của một tập con bất kỳ X Í T xác định như sau:

L(R, X) = {ti Î T | n(Iq(ti), X) = 1}

U(R, X) = {ti Î T | n(Iq(ti), X) > 0}

Phương pháp xác định trọng số thuật ngữ được mở rộng để định nghĩa các trọng số cho các thuật
ngữ thuộc tập xấp xỉ trên U(R, dj) của dj . Nó đảm bảo rằng mỗi thuật ngữ trong tập xấp xỉ trên của dj
nhưng không thuộc dj có trọng số nhỏ hơn trọng số của một thuật ngữ bất kỳ trong dj.

Quá trình chuẩn hoá độ dài vector sau đó được áp dụng cho tập xấp xỉ trên U (R, dj) của dj.

140
ì M
ï(1 + log f d j ( t i ))) . log f ( t ) ti Îd j
ï D i

ï M
ïï log( )
f D (t i )
w ij = ímin t hjÎd j w hj . t i Î U (R , d j ) \ d j
ï M
1 + log( )
ï f D (t i )
ï0 t i ÏU(R , d j )
ï
îï

11.3 ĐỘ DO TƯƠNG TỰ GIỮA VĂN BẢN VÀ CỤM VĂN BẢN

Độ đo khoảng cách là yếu tố quan trọng nhất quyết định hiệu năng bài toán phân cụm. Rất khó
xác định khoảng cách giữa văn bản dữ liệu. Ba độ đo tương tự giữa hai văn bản dj1 và dj2 nổi tiếng và phổ
biến là độ đo khoảng cách/hệ số (cofficient) Dice, Jaccard và Cosine.

Hệ số Dice (Dice coefficient):

N
2å ( wkj1 .wkj2 )
S D ( d j1 , d j 2 ) = N
k =1
N

å wkj21 + å wkj2 2
k =1 k =1

Hệ số Jaccard (Jaccard coefficient):

å (w kj1 .wkj2 )
SJ = N
k =1
N N

å wkj21 + å wkj2 2 - å ( wkj1 .wkj2 )


k =1 k =1 k =1

Hệ số Cosine (Cosine coefficient):

å
N
( wkj1 . wkj 2 )
SC ( d j 1 , d j 2 ) = k =1

å wkj1 . å k =1 wkj 2
N N
k =1

Hệ số Cosine (hoặc bất kỳ một hệ số đo độ tương tự nào khác được sử dụng cho các văn bản) tạo
nên một số lượng lớn các giá trị 0 khi các văn bản được biểu diễn ứng với các vector R chiều, khi mà rất
nhiều từ không tham gia vào văn bản. Việc sử dụng tập xấp xỉ trên dung sai của các văn bản và của các
đại diện nhóm cho phép khắc phục được tình huống trên. Thực tế, trong giải thuật phân nhóm TRSM, hệ
số chuẩn hoá Cosine được áp dụng cho các tập xấp xỉ trên U(R, dj) của các văn bản và các đại diện nhóm
U(R, Rk). Hai ưu điểm chính của việc sử dụng tập xấp xỉ trên là:

141
(i) Giảm số hệ số có giá trị = 0 bằng việc xem xét chính bản thân các văn bản cùng với các thuật
ngữ liên quan trong các lớp dung sai.

(ii) Các xấp xỉ trên tạo ra bởi các lớp dung sai làm cho nó có thể liên kết các văn bản mà có ít
thuật ngữ chung (hoặc thậm chí là không) với chủ đề ưa thích của người sử dụng hoặc với các truy vấn.

H 11.1 TRSM tạo các lớp dung sai liên kết các văn bản có ít thuật ngữ chung

11.4 PHÂN CỤM VĂN BẢN DỰA TRÊN MÔ HÌNH TẬP THÔ DUNG SAI (TRSM)

a. Thuật toán phân cụm HC (Hierachical Clustering )

Giải thuật này dựa trên giải thuật phân cụm dựa trên cây phân cấp (Standard Bottom Up
Hierachical Clustering) đã giới thiệu ở chương 10. Hierachical Clustering việc lấy ra 2 cụm để ghép lại
dựa trên mô hình tập thô dung sai.

Thuật toán HC:

Đầu vào: D = {d1, d2, ... , dM}

Độ đo tương tự S, S: P(D)xP(D) ® R+

Đầu ra: Cấu trúc phân cấp của D.

Phương pháp:

Bước 1: Đầu tiên, coi mỗi văn bản trong D như một cụm với 1 thành viên Cj = {dj} và

H = {C1, C2, ..., CM}.

Bước 2: Xác định 2 cụm có độ tương tự cao nhất

(Cn1,Cn2) = argmax(Cu,Cv) Î H x H S (U(R,Cu), U(R,Cv))

(Hàm S(U(R,Cx)) được nêu trong 11.3)

Bước 3: Tạo ra 1 lớp mới Ci = Cn1 U Cn2 và đặt H = (H\ {Cn1, Cn2}) U {Ci}

Bước 4: Nếu vẫn còn nhiều hơn một cụm, thì quay trở lại bước 2 và bước 3.

142
Đặc điểm của thuật toán là tại mỗi bước ghép nối, thuật toán sử dụng tập xấp xỉ cận trên của các
văn bản trong việc tìm ra 2 cụm gần nhau nhất.

Khi các văn bản được biểu diễn như các vector có độ dài đã chuẩn hoá và độ đo tương tự Cosine
được sử dụng, một sự lựa chọn hiệu quả là sử dụng cách gom cụm dựa trên độ tương tự trung bình (giá trị
trung bình độ tương tự của hai từ khóa thuộc hai cụm). Phân cụm dựa trên độ tương tự trung bình của
cụm tránh được việc tạo ra các cụm rời rạc.

Thực tế, trong mô hình TRSM, giải thuật đã sử dụng tập đại diện của mỗi cụm để tính toán độ
tương tự giữa 2 cụm thay vì phải tính độ tương tự trung bình của tất cả các cặp văn bản trong 1cụm.
Trong trường hợp này, độ phức tạp tính toán của độ tương tự trung bình là O(N2).

Ở bước 1, có M cụm được tạo ra ban đầu, và cứ sau mỗi một bước lặp, thì số cụm ở bước lặp sau
lại giảm đi 1 nhóm so với bước lặp trước. Như vậy sau M-1 bước lặp thì thuật toán kết thúc và đỉnh của
cây phân cấp là một cụm gồm tất cả M văn bản. Kết quả một cây phân cấp có độ sâu M được tạo ra. Nếu
coi đỉnh của cây là mức 1 thì mức cuối cùng là M. Giả sử số nhóm cần lập là K, ta chỉ việc gióng đến mức
K trên cây phân cấp và lấy ra toàn bộ K cụm thuộc mức đó.

b. Thuật toán phân cụm NHC Overlap (Non Hiearachical Clustering Overlap)

Thuật toán NCH overlap

Đầu vào: D = {d1, d2, ... , dM} và số K là số cụm văn bản cần tạo lập.

Đầu ra: K cụm chứa các văn bản đã được phân cụm

Phương pháp:

Bước 1: Xác định các đại diện ban đầu R1, R2, ... RK của các cụm C1, C2, ..., CK như là K văn bản
được chọn ngẫu nhiên trong tập D

Bước 2: Với mỗi văn bản dj thuộc D, tính độ tương tự S(U(R, dj), Rk) giữa các xấp xỉ cận trên
U(R, dj) của nó và các đại diện cụm Rk, với k = 1, .., K.

Nếu như độ tương tự này lớn hơn một ngưỡng cho trước, thì gán dj vào Ck và lấy giá trị
độ đo tương tự này để xếp thứ tự các văn bản trong cụm - m(dj) của dj trong Ck.

Lưu ý: một văn bản có thể thuộc vào nhiều hơn một cụm. Do đó các cụm có sự
chồng lên nhau.

Bước 3: Với mỗi cụm Ck, xác định lại đại diện Rk của nó.

Bước 4: Lặp lại bước 2 và bước 3 cho đến khi có rất ít hoặc không có sự thay đổi nào trong các
thành viên của các cụm, hoặc sau một số vòng lặp nhất định.

143
Bước 5: Đặt du là các văn bản chưa phân cụm sau bước 2, 3, 4 và NN(du) là các văn bản lân cận
nhất (độ tương tự khác 0) trong các nhóm đã thiết lập. Gán du vào nhóm chứa NN(du) và
xác định các thành viên nhóm của du trong lớp này bằng phép nhân m(du) = m(NN(du)) x
S(U(R, du), U(R,NN(du))).

Xác định lại các đại diện Rk, k = 1 .. K

Thuật phân cụm không phân cấp TRSM có thể coi như là một phương thức phân cụm định vị lại
để tạo ra K nhóm từ tập D gồm M văn bản. Sự khác biệt giữa TRSM NHC Non Overlap và TRSM NHC
Overlap là việc tạo ra các lớp chồng lên nhau và các đại diện của cụm để tính toán độ tương tự xấp xỉ
giữa các văn bản.

Việc sử dụng xấp xỉ cận trên của mỗi văn bản cho phép chúng ta có thể tìm được một vài mối liên
quan về mặt ngữ nghĩa giữa các văn bản thậm chí khi chúng không chia sẻ cùng các thuật ngữ chung ( khi
tập thuật ngữ của chúng giao nhau bằng tập rỗng).

Sau khi xác định các đại diện cụm đầu tiên trong bước 1, thuật toán chỉ còn 2 pha chính:

+ Pha thứ nhất thực hiện 1 vòng lặp để định vị lại các văn bản vào các cụm qua bước 2, 3 và 4.

+ Pha thứ 2 thực hiện bước 5, gán các văn bản mà chưa được phân loại trong pha 1, vào các cụm
chứa văn bản gần với chúng nhất, nhưng phải đảm bảo rằng độ tương tự giữa 2 văn bản đó S(dj, NN(dj))
lớn hơn 0.

c. Thuật toán phân cụm NHC Non Overlap (Non Hiearachical Clustering Non Overlap)

Thuật toán NHC Non Overlap

Đầu vào: D = {d1, d2, ... , dM} và số K là số cụm văn bản cần tạo lập.

Đầu ra: K nhóm chứa các văn bản đã được phân cụm.

Phương pháp:

Bước 1: Xác định các đại diện ban đầu R1, R2, ... RK của các cụm C1, C2, ..., CK như là K văn bản
được chọn ngẫu nhiên trong tập D.

Bước 2: Với mỗi văn bản dj thuộc D, tính độ tương tự giữa dj và tất cả các cụm. Chọn ra cụm có
độ tương tự S(U(R, dj), Rk) lớn nhất.

Nếu độ tương tự lớn hơn một ngưỡng cho trước thì gán dj vào Ck đó và lấy giá trị độ đo
tương tự này như thứ tự xếp hạng của văn bản dj trong Ck.

Bước 3: Với mỗi cụm Ck, xác định lại đại diện Rk của nó.

144
Bước 4: Lặp lại bước 2 và bước 3 cho đến khi có rất ít hoặc không có sự thay đổi nào trong các
thành viên của các nhóm, hoặc sau một số vòng lặp nhất định.

Bước 5: Coi du là các văn bản chưa phân cụm sau bước 2, 3, 4 và NN(du) là các văn bản lân cận
nhất (độ tương tự khác 0) trong các cụm đã thiết lập. (NN là viết tắt của Nearest
Neighbor, ở đây có nghĩa là văn bản gần nhất).

Gán du vào cụm chứa NN(du) và xác định thứ tự của du trong lớp này bằng công thức:
m(du) = m(NN(du)) x S(U(R, du), U(R,NN(du))).

Xác định lại các đại diện Rk, k = 1 .. K

Giải thuật này tương tự giải thuật TRSM NHC Overlap, điểm khác biệt là mỗi văn bản chỉ thuộc vào một
cụm duy nhất, cụm có độ tương tự cao nhất với văn bản đó.

Trong 3 giải thuật trên đều có đề cập đến khái niệm "đại diện của một cụm" và "độ tương tự
giữa các các văn bản". Thực chất, đây là 2 bài toán có ảnh hưởng lớn đối với chất lượng của việc phân
cụm:

v Làm cách nào để xác định các đại diện của các cụm?

v Làm thế nào để xác định độ tương tự giữa các văn bản và các đại diện của cụm?

d. Xác định các thuật ngữ đại diện cho cụm

Giải thuật phân cụm TRSM tạo nên một đại diện Rk cho mỗi cụm Ck, k=1..K. Thực tế, Rk là một
tập các thuật ngữ thoả mãn các điều kiện:

(i) Mỗi văn bản dj thuộc Ck có một vài hoặc nhiều thuật ngữ chung với Rk.

(ii) Các thuật ngữ trong Rk có mặt trong hầu hết các văn bản dj thuộc Ck.

(iii) Không có thuật ngữ nào trong Rk bắt buộc phải có mặt trong tất cả các văn bản trong Ck.

Như đã biết, luật quyết định Bayesian (Bayesian decision rule) với tỷ lệ sai số nhỏ nhất sẽ gán
một văn bản dj vào cụm Ck nếu như:

P(dj | Ck) . P(Ck) > P(dj | Ch) . P(Ch) , " h ¹ k

Với giả định rằng các thuật ngữ xuất hiện độc lập trong các văn bản, ta có:

P(dj | Ck) = P(tj1|Ck) . P(tj2|Ck) .... P(tjp|Ck)

Đặt fCk(ti) là số văn bản trong cụm Ck mà chứa thuật ngữ ti, thì:

P(ti | Ck) = fCk(ti) / |Ck|

145
Từ đó, giải thuật tạo các đại diện của cụm được xây dựng cụ thể như sau:

(i) Đầu tiên, đặt Rk = f

(ii) Đối với tất cả các văn bản dj thuộc cụm Ck và đối với tất cả các thuật ngữ ti thuộc văn bản dj,
nếu fCk(ti) / |Ck| > s thì Rk = Rk È {ti}.

(iii) Nếu dj thuộc Ck và dj Ç Rk = f thì Rk = Rk È argmax ti Î dj wij

Trong trường hợp phân cụm theo trung bình cụm, có thể đặt s = 0 để đảm bảo việc sử dụng các
đại diện của cụm khi tính toán độ tương tự của cụm. Các trọng số của các thuật ngữ ti trong Rk đầu tiên
được tính trung bình từ các trọng số của thuật ngữ này trong tất cả các văn bản thuộc về cụm Ck, có nghĩa
là:

wik =
(å d j ÎCk
wij )
{ d j : ti Î d j }
sau đó thực hiện chuẩn hoá theo kích thước của đại diện Rk.

11.5 TÌM KIẾM DỰA TRÊN VĂN BẢN ĐÃ PHÂN CỤM

Thuật toán tìm kiếm dựa trên văn bản đã phân cụm

Đầu vào:

+ Tập các cụm văn bản đã phân loại C = {C1, C2, ... Ck}

+ Câu truy vấn Q = {q1, q2, .., qm} gồm m từ khoá (m>=1)

Đầu ra: Danh sách các văn bản tương tự nhất với câu truy vấn.

Phương pháp:

Bước 1: Xác định U(R, Q)

Bước 2: Với mỗi cụm Ci Î C

+ Tính độ tương tự S(U(R, Q), U(R, Ci))

+ Xếp hạng các lớp theo độ tương tự vừa tìm được

+ Lấy ra a nhóm đầu tiên có độ tương tự gần nhất và tiếp tục thực hiện tìm kiếm
trong các cụm đó:

- Với mỗi văn bản dj Î Ci

146
. Tính độ tương tự S(U(R,Q), U(R, dj))

. Nếu S(U(R,Q), U(R, dj)) > g thì đưa dj vào danh sách các văn bản cần tìm.

. Độ tương tự S(U(R,Q), U(R, dj)) dùng để sắp thứ tự trong tập các văn bản tìm
được.

Bước 3: Kết quả thu được là danh sách các văn bản tìm thấy được sắp xếp theo độ tương tự.

Ý tưởng chính thuật toán là thu hẹp phạm vi tìm kiếm, thay vì mỗi lần thực hiện tìm kiếm trên
toàn bộ CSDL, ta chỉ cần thực hiện tìm kiếm trong M cụm của CSDL ban đầu với độ chính xác chấp nhận
được (M là giá trị phụ thuộc vào nhiều tham số của chương trình: theta, sigma, công thức đo độ tương tự,
... và đối với mỗi tập dữ liệu với đặc thù khác nhau thì M cũng khác nhau).

11.6 PHÂN LOẠI VĂN BẢN

Có thể xây dựng chức năng phân loại văn bản dựa trên độ tương tự của cụm thích hợp nhất.

Với mỗi cụm trong K nhóm đã tạo, thực hiện tính độ tương tự giữa tập đại diện của nhóm Ck với
văn bản d, lấy ra cụm có độ tương tự cao nhất và gán văn bản d vào cụm đó.

11.7 TRÍCH CHỌN TỪ KHÓA

Ứng dụng TRSM trong bài toán trích chọn từ khoá

Trích chọn từ khoá là một bài toán hay và có nhiều ứng dụng trong thực tế. Dựa trên mô hình tập
thô sung sai, ta có thể đưa ra 2 giải thuật để lấy ra các từ khoá đặc trưng cho 1 văn bản:

+ Lấy tập xấp xỉ dưới là tập các từ khoá lõi của mỗi văn bản.

+ Hoặc ta có thể sắp xếp các thuật ngữ giảm dần theo trọng số, rồi lấy ra các những thuật ngữ có
trọng số lớn nhất làm tập từ khoá cho văn bản.

a. Thuật toán Trích chọn từ khoá dựa trên tập xấp xỉ dưới

Đầu vào: M văn bản

Đầu ra: Tập từ khoá của các văn bản

Phương pháp:

Do đã tạo ra được tập xấp xỉ dưới và tập xấp xỉ trên của mỗi văn bản, ta chỉ việc lấy chính tập xấp
xỉ dưới của văn bản đó làm tập các từ khoá của văn bản.

b. Thuật toán Trích chọn từ khoá dựa trên trọng số

Đầu vào: M văn bản

147
Đầu ra: Tập từ khoá của các văn bản

Phương pháp:

Bước 1: Tính toán ma trận trọng số wij dựa tần số xuất hiện của các thuật ngữ trong mỗi văn bản

Bước 2: Thực hiện sắp xếp các từ khoá ti trong văn bản theo thứ tự trọng số của chúng trong văn
bản dj từ lớn đến nhỏ.

Bước 3: K từ khoá có trọng số lớn nhất chính là các từ khoá trích chọn ra được từ văn bản đó.

Câu hỏi và bài tập

1. Mô hình của một chương trình xử lý văn bản bằng tập thô dung sai

Tiền xử lý tập dữ liệu văn bản Tần suất


Tập các Các từ khóa
Văn bản Rút trích từ khóa và tần suất
Gốc

Lựa chọn từ khóa Tập các


văn bản
(tất cả từ
Tập các văn bản khóa
Sinh các lớp dung sai
(Từ khóa đã lựa)

Sinh các xấp xỉ Lớp dung


sai các
thuật ngữ
Truy
vấn
Xấp xỉ trên các văn bản Xấp xỉ dưới các văn bản

Phân cụm, phân lớp, trích chọn từ khóa, tìm kiếm …

Hãy trình bày chi tiết các bước trong quá trình xử lý văn bản với mô hình trên.

2. Bảng dữ liệu sau đưa ra kết quả phân cụm văn bản bằng tập thô dung sai thành 2 lớp A, B

Thuộc tính A3 Thuộc tính A6


Lớp được dự đoán bởi thuật toán Lớp được dự đoán bởi thuật toán
Lớp thực tế
Phân cụm Phân cụm
A B A B
A 8 3 9 2
B 0 9 6 3

Thử đánh giá hiệu năng của việc phân lớp dựa vào 2 thuộc tính A3 vàA6.

148
3. Nêu những ưu điểm khi khai phá văn bản bằng tập thô dung sai.

4. Vẽ sơ đồ chức năng tách A thuật ngữ đại diện cho văn bản ứng với thuật toán:

Chức năng tách A thuật ngữ đại diện cho 1 văn bản
Đầu vào: các văn bản chứa thuật ngữ và tần số.
Đầu ra: các văn bản với A thuật ngữ đại diện
Chức năng này gồm có 4 nhiệm vụ chính như sau:
(i) Tính f d j (ti ) : số lần xuất hiện của thuật ngữ ti trong văn bản dj

(ii) Tính f D (ti ) : số văn bản có thuật ngữ ti xuất hiện

(iii) Tính ma trận trọng số của thuật ngữ ti và văn bản dj theo công thức

ì M
ï(1 + log( f d j (ti )).log f (t ) , ti Î d j
wij = í D i
ï0 , ti Ï d j
î

Chuẩn hoá ma trận theo công thức :

wij
wij =
å th Îd j
( whj ) 2

(iv) Sắp xếp các ti trong dj theo thứ tự trọng số wij ; lấy ra A thuật ngữ ti đại điện cùng
với các tần số và trọng số tương ứng của chúng.

5. Vẽ sơ đồ chức năng tạo ra lớp dung sai cho các thuật ngữ

Chức năng tạo ra lớp dung sai cho các thuật ngữ.

Đầu vào: các văn bản với A thuật ngữ, tần số và trọng số tương ứng.
Đầu ra: các lớp dung sai của các thuật ngữ trong từ điển.
Chức năng gồm có 3 bước chính sau:

(i) Tính f D (ti , t j ) : số lần đồng xuất hiện của ti và tj trong tập tất cả các văn bản.

(ii) Xác định Iq (ti ) cuả ti theo công thức:

Iq(ti) = {tj | fD(ti, tj) ≥ q} È {ti} với i = 1..N

Lưu ý: + Bản thân thuật ngữ ti cũng thuộc vào lớp dung sai của chính nó.
+ Với từ điển tiếng Việt gồm N thuật ngữ thì ta có N lớp dung sai của N thuật ngữ tương
ứng trong từ điển.

149
(iv) Lưu kết quả ra file.

6. Vẽ sơ đồ chức năng tạo ra các xấp xỉ cho văn bản

Chức năng tạo các tập xấp xỉ cho văn bản


Đầu vào: - Lớp dung sai của các thuật ngữ
- Thuật ngữ, tần số, trọng số của các văn bản
Đầu ra: - Tập xấp xỉ dưới và tập xấp xỉ trên của văn bản.
Chức năng này gồm có 3 nhiệm vụ:
I q (t i ) Ç X
(i) Tính: m (ti , X ) = v ( I q (ti ), X ) =
I q ( ti )

(Tính độ phụ thuộc giữa lớp dung sai của thuật ngữ ti đối với văn bản X)

(ii) Xác định tập xấp xỉ dưới của dj với j = 1..M (với M là tổng số văn bản) theo công
thức: L(R, X) = {ti Î T | v(Iq(ti), X) = 1}

(iii) Xác định tập xấp xỉ trên của dj theo công thức: U(R, X) = {ti Î T | v(Iq(ti), X) > 0}

7. Vẽ sơ đồ chức năng tính ma trận trọng số cho tập xấp xỉ trên

Chức năng tính ma trận trọng số cho tập xấp xỉ trên

Đầu vào: - f D (ti ) : Tần số văn bản có chứa thuật ngữ ti


- Tập xấp xỉ trên
- Trọng số ban đầu của tập đại diện cho mỗi văn bản đã tính ở chức năng tách A
thuật ngữ đại diện.

Đầu ra: - Trọng số của các thuật ngữ cho tập xấp xỉ trên

Chức năng gồm các bước sau:

(i) Xác định min thj Îd j ( whj ) : thuật ngữ th trong dj là thuật ngữ có trọng số nhỏ nhất.

(ii) Tính ma trận trọng số theo công thức:


for (i = 0; i < N; i++) {
for (j = 0; j < M; j++) {

150
ì M
ï(1 + log f d j ( t i ))) . log f ( t ) ti Îd j
ï D i

ï M
ïï log( )
f D (t i )
w ij = ímin t hjÎd j w hj . t i Î U (R , d j ) \ d j
ï M
1 + log( )
ï f D (t i )
ï0 t i ÏU(R , d j )
ï
ïî

}
}
(iii) Chuẩn hoá trọng số cho tập xấp xỉ trên.

8. Vẽ sơ đồ chức năng phân loại văn bản

Chức năng phân loại văn bản


Đầu vào: Văn bản d cần phân loại vào các lĩnh vực đã chọn sẵn.
Đầu ra: Kết quả phân loại
Chức năng gồm 4 bước sau:
(i) Phân tách thuật ngữ của văn bản d
(ii) Tạo tập xấp xỉ trên, dưới cho văn bản d
(iii) Tìm nhóm lĩnh vực có độ tương tự lớn nhất so với d.
(iv) Gán d vào nhóm Ck đó.

151
TÀI LIỆU THAM KHẢO

[1] Anne Kao and Stephen R. Poteet (Eds), (2007), Natural Language Processing and Text Mining,
Springer-Verlag.
[2] Daniel Delic , Hans-j. Lenz , Mattis Neiling (2002), “Improving the Quality of Association Rule
Mining by Means of Rough Sets”, First International Workshop on Soft Methods in Probability and
Statistics SMPS 2002, Warsaw (Poland) September 9-11, 2002.
[3] Dan A. Simovici, Chabane Djeraba (2008), Mathematical Tools for Data Mining, Springer-Verlag.
[4] David Hand, Heikki Mannila and Padhraic Smyth (2001), Principles of Datamining, MIT Press.
[5] Đoàn Sơn (2002), Áp dụng lý thuyết mờ giải quyết bài toán lập nhóm và tìm kiếm văn bản, Luận văn
Thạc sĩ Khoa Công Nghệ, ĐHQG Hà Nội.
[6] Guo-Yin Wang, Jun Zhao, Jiu-Jiang An, Yu Wu (2004), “Theoretical Study on Attribute Reduction of
Rough Set Theory: Comparision of Algebra and Information Views”. Proceedings of the Third IEEE
International Conference on Cognitive Informatics (ICCI'04), IEEE
[7] Hà Quang Thụy (chủ biên) (2009), Giáo trình Khai phá Dữ liệu WEB, NXB Giáo dục Việt nam
[8] Hồ Thuần, Hoàng Thị Lan Giao (2005), “Một thuật toán tìm tập rút gọn sử dụng ma trận phân biệt
được”, Chuyên san các công trình nghiên cứu triển khai Viễn thông và CNTT, số 15(12/2005),83-87.
[9] Ho Tu Bao (1998), “Introduction to knowledge discovery and data mining”, (File *.doc)
[10] Ho, T.B, Kawasaki, S. Nguyen, N.B, (2002), “Cluster-based Information Retrieval with Tolerance
Rough Set Model”, International Journal of Fuzzy Logic and Inteligent Systems, Vol. 2, No. 1,26-32.
[11] Ho, T.B, Nguyen, N.B, (2002), “Nonhierachical Document Clustering by a Tolerance Rough Set
Model”, International Journal of Fuzzy Logic and Inteligent Systems, Vol. 17, No. 2, 199-212.
[12] Hoàng Thị Lan Giao (2009), Data Mining, Slide- Bài giảng, ĐHKH Huế
[13] Hoàng Trọng, Chu Nguyễn Mộng Ngọc (2010), Thống Kê Ứng Dụng trong Kinh tế-Xã hội, NXB
Lao động Xã hội.
[14] Huỳnh Tuấn Anh (2009), Data warehouse & Datamining, Bài giảng, ĐH Nha Trang.
[15] Jaros_law Stepaniuk (2008), Rough – Granular Computing in Knowledge Discovery and Data
Mining, Springer-Verlag.
[16] Jerzy Stefanowski and Szymon Wilk (2005), “Combining rough sets and rule based classifiers for
handling imbalanced data”, www.cs.put.poznan.pl/jstefanowski/pub/nida2005.pdf.
[17] Jiawei Han and Micheline Kambel (2000), Data Mining: Concepts and Techniques, Morgan
Kaufmann Publishers.
[18] Jiye Li, Nick Cercone (2010), “A method of discovering important rules using rules as attributes”,
International Journal of Intelligent Systems, Volume 25, Issue 2, pages 180–206, February 2010
[19] Jiye Liang, Zongben Xu (2002), “The Algorithm on Knowledge Reduction In Incomplete
Information Systems”. International Journal of Uncertainty and Knowledge-Based Systems. Vol. 10, No.
1 (2002) 95-103.
[20] Lakhmi Jain, Xindong Wu (2008), Mathematical Tools for Data Mining Set Theory, Partial Orders,
Combinatorics, Springer-Verlag.

152
[21] Max Bramer (2007), Principles of Datamining, Springer-Verlag.
[22] Michael W. Berry, Jacob Kogan (2010), Text Mining Applications and Theory, Springer-Verlag.
[23] Nguyễn Hoàng Tú Anh (2009), Khai thác dữ liệu & Ứng dụng, Slide- Bài giảng, ĐHKHTN Tp
HCM.
[24] Nguyễn Hùng Sơn (2006), Introductionto KDD anddata mining, Slide- Bài giảng, ĐHCN Hà Nội.
[25] Nguyễn Thanh Bình (2006), Khai phá dữ liệu: Các khái niệm và kỹ thuật, Slide- Bài giảng, ĐHKH
Huế.
[26] Nguyễn Văn Chức, Một số bài viết về Data Mining , http://bis.net.vn/tags/Data+Mining/
[27] Nong Ye (2003), The Handbook of Data Mining, Lawerlbaum Associates Publishers.
[28] Phan Thanh Liêm (2004), Ứng dụng mô hình tập thô dung sai trong xử lý văn bản tiếng Việt, Đồ án
tốt nghiệp, ĐHBK Hà Nội.
[29] Qasem Al-Radaideh (2008), Data Mining, Slide CIS 667, Yarmouk University.
www.slidefinder.net/2/20Classification/19833766.
[30] Robert Sanderson (2008), Data Mining, Slide COMP572, University of Liverpool
[31] Ruizhi Wang, Duoqian Miao, Guirong Hu (2006), “Discernibility Matrix based Algorithm for
Reduction of Attributes”, Proceedings of the 2006 IEEE/WIC/ACM International Conference on Web
Intelligence and Intelligent Agent Technology, IEEE.
[32] Saori Kawasaki, Ngoc Binh and Tu Bao Ho, (2000), “Hierachical Document Clustering Based on
Tolerance Rough Set Model”, PKDD 2000, LNAI 1910, pp 458-463, Springer-Verlag.
[33] Solom M.Weiss, Nitin Indurkhya, Tong Zhang, (2010), Fundamentals of Predictive Text Mining,
Springer-Verlag.
[34] Sushmita Mitra, Tinkuacharya (2003), Data Mining Multimedia, Soft Computing, and
Bioinformatics, Addison-Wiley Publishing Inc.
[35] Tu Bao Ho, Saori Kawasaki, Ngoc Binh Nguyen, (2002), “Documents Clustering Using Tolerance
Rough Set Models and Its Application to Information Retrieval”, Book chapter in Intelligent Exploration
of the Web, P.S. Szczepaniak, J. Segovia, J. Kacprzyk, L.A. Zadeh (Eds.), pp.181-196. Physica-Verlag,
April 2002.
[36] Vũ Lan Phương (2006), Nghiên cứu và cài đặt một số thuật toán Phân cụm, Phân lớp, Luận văn Cao
học, ĐHBK Hà Nội.
[37] Xindong Wu, Vipin Kuma (2009), The Top Ten Algorithm in Data Minhing, CRC Press.
[38] Yiyu Yao, Yan Zhao, and Jue wang (2002), “On reduct Construction Algorithms”. Chinese Journal
of Computer.
[39] Yuhua Qian and Jiye Liang (2006), Cambination Entropy and Combination Granulation in
Incomplete Information System, RSKT 2006, LNAI 4062, pp. 184 190.
[40] Z. Pawlak (1991), “Rough sets, Theoretical Aspects of Reasoning about Data”, Kluwer Academic
Publishers, London.

153

You might also like