ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN MINH TÂM NGHI N U M T THU T TO N PHÂN M PHÂN P I U V NG NG

U N VĂN THẠ Ĩ KHOA HỌ M Y TÍNH

THÁI NGUYÊN - 2019

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN MINH TÂM NGHI N U M T THU T TO N PHÂN M PHÂN P I U V NG NG Chuyên ngành: Khoa học máy tính Mã số: 84 80 101

U N VĂN THẠ Ĩ KHOA HỌ M Y TÍNH

Người hướng dẫn khoa học: TS. NGUYỄN VĂN NÚI THÁI NGUYÊN - 2019

LỜI CẢM ƠN

Em xin chân thành cảm ơn Trƣờng Đại học Công nghệ Thông tin và

Truyền thông – Đại học Thái Nguyên đã tạo điều kiện cho em thực hiện luận

văn này.

Em xin gửi lời cảm ơn sâu sắc tới thầy giáo TS. Nguyễn Văn Núi, Bộ

môn công nghệ phần mềm - Trƣờng Đại học Công nghệ Thông tin và Truyền

thông - Đại học Thái Nguyên đã trực tiếp hƣớng dẫn em trong quá trình thực

hiện luận văn.

Em cũng xin gửi lời cảm ơn tới các thầy, cô đã có những ý kiến đóng

góp bổ ích và đã tạo mọi điều kiện tốt nhất cho em trong suốt thời gian thực

hiện luận văn. Xin cảm ơn các bạn học đồng khóa đã thƣờng xuyên động

viên, giúp đỡ tôi trong quá trình học tập.

Cuối cùng, em xin gửi lời cảm ơn đến gia đình và đồng nghiệp vì sự ủng

hộ và động viên đã dành cho em trong suốt quá trình học tập cũng nhƣ thực

hiện luận văn này.

Thái Nguyên, tháng 05 năm 2019

Học viên

Nguyễn Minh Tâm

2

LỜI CAM ĐOAN

Em xin cam đoan về nội dung đồ án tốt nghiệp với tên đề tài “ Nghi

cứu t số thu t t h cụ h dữ i u v ứ g dụ g” không

sao chép nội dung từ các luận văn khác, hay các sản phẩm tƣơng tự mà không

phải do em làm ra. Sản phẩm luận văn là do chính bản thân em tìm hiểu và

xây dựng nên.

Nếu có gì sai em xin chịu mọi hình thức kỷ luật của Trƣờng Đại học

Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên.

Thái Nguyên, tháng 05 năm 2019

Học viên

Nguyễn Minh Tâm

3

MỤC LỤC

LỜI CẢM ƠN ............................................................................................................... 1

LỜI CAM ĐOAN ......................................................................................................... 2

MỞ ĐẦU ........................................................................................................................ 7

CHƢƠNG 1 TỔNG QUAN.......................................................................................... 9

1.1 Giới thiệu chung ....................................................................................... 9

1.2 Các bƣớc trong khai phá dữ liệu ............................................................ 10

1.3 Các kỹ thuật áp dụng trong khai phá dữ liệu ......................................... 12

1.4 Ứng dụng của khai phá dữ liệu .............................................................. 14

1.5 Những thách thức trong khai phá dữ liệu .............................................. 15

CHƢƠNG 2 PHÂN CỤM DỮ LIỆU VÀ MỘT SỐ THUẬT TOÁN CƠ BẢN .. 17

2.1 Định nghĩa về phân cụm dữ liệu ............................................................ 17

2.2 Mục tiêu của phân cụm dữ liệu .............................................................. 18

2.3 Bài toán phân cụm dữ liệu ..................................................................... 20

2.4 Một số kiểu dữ liệu ................................................................................ 20

2.5 Một số kỹ thuật phân cụm dữ liệu ......................................................... 23

2.5.1 Phương pháp phân cụm dữ liệu dựa trên phân cụm phân cấp ....... 23

2.5.2 Phương pháp phân cụm dữ liệu dựa trên mật độ ............................ 25

2.5.3 Phương pháp phân cụm phân hoạch ............................................... 29

2.6 Kết luận .................................................................................................. 33

CHƢƠNG 3 PHÂN LỚP DỮ LIỆU VÀ MỘT SỐ THUẬT TOÁN CƠ BẢN ........... 34

3.1 Định nghĩa về phân lớp dữ liệu .............................................................. 34

3.2 Các vấn đề quan tâm của phân lớp dữ liệu ............................................ 34

3.2.1 Quá trình phân lớp dữ liệu: ............................................................. 34

3.2.2 So sánh các phương pháp phân lớp ................................................. 36

3.3 Phân lớp bằng cây quyết định ................................................................ 36

3.3.1 Khái niệm về cây quyết định ............................................................ 36

3.3.2 Ưu, nhược điểm của cây quyết định ................................................ 39

3.3.3 Một số thuật toán của cây quyết định .............................................. 40

4

3.4 Phân lớp bằng Bayesian ......................................................................... 48

3.5 Phân lớp dựa trên sự kết hợp ................................................................. 51

3.5.1 Các khái niệm quan trọng về luật kết hợp ....................................... 51

3.5.2 Một số thuật toán về luật kết hợp .................................................... 52

3.6 Độ chính xác classifier ........................................................................... 57

3.7 Kết luận .................................................................................................. 59

CHƢƠNG 4 MỘT SỐ KẾT QUẢ THỬ NGHIỆM ................................................. 60

4.1. Giới thiệu về công cụ phân cụm, phân lớp dữ liệu Weka ..................... 60

4.2. Ứng dụng phân cụm dữ liệu để phân nhóm khách hàng ...................... 62

4.3. Ứng dụng phân lớp dữ liệu để phân lớp ............................................... 68

4.3.1. Phân lớp dữ liệu với thuật toán Apriori ......................................... 68

4.3.2. Phân lớp dữ liệu với thuật toán Naive Bayes ................................. 71

KẾT LUẬN .................................................................................................................. 75

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

Tiếng Việt: ................................................................................................... 76

Tiếng Anh: ................................................................................................... 76

5

DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Các bƣớc trong khai phá dữ liệu ..................................................... 10

Hình 2.1. Mô phỏng vấn đề phân cụm dữ liệu ................................................ 17

Hinh 2.2. Cụm dữ liệu đƣợc khám phá bởi giải thuật DBSCAN ................... 26

Hinh 2.3. Thứ tự phân cụm các đối tƣợng theo OPTICS ............................... 29

Hinh 2. 4. Phân cụm dựa trên phƣơng pháp k-means ..................................... 31

Hình 4. 1. Giao diện chính của phần mềm ...................................................... 61

Hình 4.2. Thông tin dữ liệu cơ bản của file bank-k.arff hiển thị bởi Weka ... 63

Hình 4.3. Lƣu đồ thuật toán K-Means ............................................................ 64

Hình 4.4. Bảng tham số sử dụng cho thuật toán K-Means: Hình (a) K=3; Hình

(b): K=5 ........................................................................................................... 65

Hình 4.5. Kết quả phân cụm với thuật toán K-Means (K=3) ......................... 66

Hình 4.6. Kết quả phân cụm với thuật toán K-Means (K=5) ......................... 67

Hình 4.7. Giao diện Weka chọn thuật toán Apriori ........................................ 68

Hình 4.8. Giao diện Weka thiết lập tham số cho thuật toán Apriori .............. 69

Hình 4.9. Kết quả sinh luật bởi thuật toán Apriori ......................................... 70

Hình 4.10. Giao diện Weka lựa chọn thuật toán Naive Bayes ....................... 71

Hình 4.11. Kết quả sinh luật bởi thuật toán Naive Bayes ............................... 72

Hình 4.12. Giao diện Weka lựa chọn thuật toán C4.5 .................................... 73

Hình 4.13. Kết quả sinh luật bởi thuật toán C4.5 ............................................ 74

6

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

STT Từ viết tắt Viết đầy đủ Ghi chú

1 PLDL Phân lớp dữ liệu

2 CSDL Cơ sở dữ liệu

3 KPDL Khai phá dữ liệu

4 AGNES Agglomerative Nesting Thuật toán tích đống lồng

5 BIRCH Blanced Iterative Reducing and Clustering using Hỉeachies

6 CF Clustering Feature Đặc trƣng của phân cụm

7 DBSCAN

8 OPTICS Density Based Spatial Clustering of Application with Noise Ordering Point to Identify the Clustering Structure

9 PAM Partitioning Around Medoids

10 ID3 Interative Decision 3

11 NBC Native Bayes Classification Phân lớp dữ liệu Naive Bayes

12 FP Frequent Pattern Mẫu thƣờng xuyên

7

MỞ ĐẦU

Trong thời gian gần đây, sự phát triển mạnh mẽ của công nghệ thông tin,

thƣơng mại điện tử vào nhiều lĩnh vực của đời sống, kinh tế xã hội đã sinh ra

một lƣợng dữ liệu lƣu trữ khổng lồ. Sự bùng nổ này đã dẫn tới một nhu cầu

cấp thiết cần có những kỹ thuật và công cụ để tự động chuyển đổi dữ liệu

thành các tri thức có ích mà các phƣơng pháp quản trị và khai thác cơ sở dữ

liệu truyền thống không còn đáp ứng đƣợc nữa. Trong những khuynh hƣớng

kỹ thuật mới có kỹ thuật phát hiện tri thức và khai phá dữ liệu (KDD –

Knowledge Discovery and Data Mining). Nhƣng để có thể khai phá dữ liệu

một cách hiệu quả và chính xác, ta cần có những mô hình toán học, các giải

thuật đáp ứng đƣợc điều đó. Vì vậy, trong luận văn này có trình bày một số

vấn đề về phân cụm, phân lớp dữ liệu một trong những kỹ thuật cơ bản để

khai phá dữ liệu nhƣng lại đƣợc sử dụng rộng rãi và đem lại hiệu quả cao.

Bố cục của lu vă

Nội dung chính của luận văn đƣợc chia thành 4 chƣơng nhƣ sau:

Chương 1. Tổng quan: Chƣơng này giới thiệu một cách tổng quát về quá trình

phát hiện tri thức nói chung và khai phá dữ liệu nói riêng. Đặc biệt, chƣơng

trình còn liệt kê một số điểm chính về ứng dụng cũng nhƣ thách thức của khai

phá dữ liệu và phát hiện tri thức.

Chương 2. Phân cụm dữ liệu và một số thuật toán cơ bản: Chƣơng này trình

bày các nội dung chính liên quan đến phân cụm dữ liệu. Một số thuật toán

phân cụm dữ liệu cơ bản cũng đƣợc trình bày chi tiết trong chƣơng này.

Chương 3. Phân lớp dữ liệu và một số thuật toán cơ bản: Chƣơng này trình

bày các nội dung chính liên quan đến phân lớp dữ liệu và ứng dụng. Một số

8

thuật toán phân lớp dữ liệu bao gồm: ID3, C.4.5, Naive Bayes, Apriori, …

cũng sẽ đƣợc trình bày chi tiết trong chƣơng này.

Chương 4. Một số kết quả thử nghiệm: Chƣơng này trình bày và phân tích

một số kết quả thử nghiệm các thuật toán phân cụm, phân lớp dữ liệu cơ bản.

Kết quả phân tích chủ yếu đƣợc triển khai thực hiện dựa trên phần mềm

Weka (Waikato Environment for Knowledge Analysis) - một bộ phần

mềm học máy đƣợc trƣờng Đại học Waikato, New Zealand phát triển

bằng Java. Weka là phần mềm tự do phát hành theo Giấy phép Công cộng

GNU, hiện đang đƣợc sử dụng rất rộng rãi bởi cộng đồng những ngƣời làm về

lĩnh vực khai phá dữ liệu và phát hiện tri thức.

9

CHƢƠNG 1

TỔNG QUAN

1.1 Gi i thi u chung

Sự phát triển của khoa học công nghệ và việc ứng dụng công nghệ thông

tin ở hầu hết các lĩnh vực trong nhiều năm qua cũng đồng nghĩa với lƣợng dữ

liệu đã đƣợc thu thập và lƣu trữ ngày càng lớn. Các hệ quản trị cơ sở dữ liệu

truyền thống cũng chỉ khai thác đƣợc một lƣợng thông tin nhỏ không còn đáp

ứng đầy đủ những yêu cầu, những thách thức mới. Do vậy các phƣơng pháp

quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng

đƣợc thực tế đã làm phát triển một khuynh hƣớng kỹ thuật mới đó là kỹ thuật

phát hiện tri thức và khai phá dữ liệu. Tôi xin giới thiệu một cách tổng quan

về phát hiện tri thức và khai phá dữ liệu cùng một số kỹ thuật cơ bản để trong

khai phá dữ liệu để phát hiện tri thức và một số ứng dụng trong thực tế nhằm

hỗ trợ cho tiến trình ra quyết định.

Khai phá dữ liệu (Data Mining) hay có thể hiểu là phát hiện tri thức

(Knowledge Discovery) có rất nhiều khái niệm khác nhau nhƣng về cơ bản

đó là quá trình tự động trích xuất thông tin có giá trị (thông tin dự đoán -

Predictive Information) ẩn chứa trong lƣợng dữ liệu lớn trong thực tế. Nó

bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm

ẩn trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, nó liên quan đến

việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có

tính chính quy (regularities) trong tập dữ liệu. Khai phá dữ liệu là một tiến

trình sử dụng các công cụ phân tích dữ liệu khác nhau để khám phá ra các

mẫu dƣới nhiều góc độ khác nhau nhằm phát hiện ra các mối quan hệ giữa các

dữ kiện, đối tƣợng bên trong cơ sở dữ liệu, kết quả của việc khai phá là xác

định các mẫu hay các mô hình đang tồn tại bên trong, nhƣng chúng nằm ẩn

khuất ở các cơ sở dữ liệu. Để từ đó rút trích ra đƣợc các mẫu, các mô hình hay

10

các thông tin và tri thức từ các cơ sở dữ liệu. Để hình dung rõ hơn Data

Mining là gì có thể hiểu đơn giản nó chính là một phần của quá trình trích

xuất những dữ liệu có giá trị tốt, loại bỏ dữ liệu giá trị xấu trong rất nhiều

thông tin trên Internet và các nguồn dữ liệu đang có.

1.2 C c bƣ c trong khai phá dữ li u

Qúa trình phát hiện tri thức gồm 6 giai đoạn [1] đƣợc thể hiện nhƣ hình

sau:

Hình 1.1. C c bƣ c trong khai phá dữ li u

Đầu vào là dữ liệu thô đƣợc lấy từ internet và đầu ra là các thông tin có

giá trị.

(1) Gom dữ liệu: Tập hợp dữ liệu là bƣớc đầu tiên trong quá trình khai

phá dữ liệu. Đây là bƣớc đƣợc khai thác trong một cơ sở dữ liệu, một kho dữ

liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web.

11

(2) Trích lọc dữ liệu: Ở giai đoạn này những tập dữ liệu cần đƣợc khai

phá từ các tập dữ liệu lớn ban đầu theo một số tiêu chí nhất định phục vụ mục

đích khai thác.

(3) Làm sạch, tiền xử lý và chuẩn bị trƣớc dữ liệu: Đối với dữ liệu thu

thập đƣợc, cần xác định các vấn đề ảnh hƣởng là cho nó không sạch. Bởi vì,

dữ liệu không sạch (những dữ liệu không đầy đủ, nhiễu, không nhất quán) thì

các tri thức khám phá đƣợc sẽ bị ảnh hƣởng và không đáng tin cậy, dẫn tới

các quyết định thiếu chính xác. Vậy, cần gán các giá trị thuộc tính còn thiếu,

sữa chữa các dữ liệu nhiễu, lỗi, xác định loại bỏ các giá trị ngoại lai, giải

quyết các mâu thuẫn dữ liệu. Sau bƣớc này, dữ liệu sẽ nhất quán, đầy đủ,

đƣợc rút gọn và đƣợc rời rạc hóa. Đây là một quá trình rất quan trọng vì dữ

liệu này nếu không đƣợc “làm sạch - tiền xử lý dữ liệu” thì sẽ gây nên những

kết quả sai lệch nghiêm trọng.

(4) Chuyển đổi dữ liệu: Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu

đƣa ra có thể sử dụng và điều khiển đƣợc bởi việc tổ chức lại nó, tức là dữ

liệu sẽ đƣợc chuyển đổi về dạng thuận lợi nhất nhằm phục vụ quá trình khai

phá ở bƣớc sau.

(5) Khai phá dữ liệu: Ở giai đoạn này nhiều thuật toán khác nhau đã

đƣợc sử dụng để trích ra các mẫu từ dữ liệu. Đây là bƣớc áp dụng những kỹ

thuật phân tích (nhƣ các kỹ thuật của học máy) nhằm để khai thác dữ liệu,

trích chọn đƣợc những mẫu thông tin, những mối liên hệ đặc biệt trong dữ

liệu. Đây đƣợc xem là bƣớc quan trọng và tốn nhiều thời gian nhất của toàn

quá trình khai phá dữ liệu.

(6) Đánh giá các luật và biểu diễn tri thức: Ở giai đoạn này, những mẫu

thông tin và mối liên hệ trong dữ liệu đã đƣợc khám phá ở bƣớc trên đƣợc

biến đổi và biểu diễn ở một dạng gần gũi với ngƣời sử dụng nhƣ đồ thị, cây,

bảng biểu, luật,…

12

Đồng thời bƣớc này cũng đánh giá những tri thức khám phá đƣợc theo

những tiêu chí nhất định.

Trên đây là 6 giai đoạn của quá trình phát hiện tri thức, trong đó giai

đoạn 5 khai phá dữ liệu (hay còn gọi đó là Data Mining) là giai đoạn đƣợc

đánh giá là quan trọng nhất.

1.3 Các kỹ thu t áp dụng trong khai phá dữ li u

Đứng trên quan điểm của học máy, thì các kỹ thuật trong KPDL, bao

gồm:

Học có giám sát: Là quá trình gán nhãn cho các phần tử trong CSDL dựa

trên một tập các ví dụ huấn luyện và các thông tin về nhãn đã biết.

Học không có giám sát: Là quá trình phân chia một tập dữ liệu thành các

lớp hay cụm dữ liệu tƣơng tự nhau mà chƣa biết trƣớc các thông tin về lớp

hay tập các ví dụ huấn luyện.

Học nửa giám sát: Là quá trình phân chia một tập dữ liệu thành các lớp

dựa trên một tập nhỏ các ví dụ huấn luyện và các thông tin về một số nhãn lớp

đã biết trƣớc.

Nếu căn cứ vào lớp các bài toán cần giải quyết, thì KPDL bao gồm các

kỹ thuật áp dụng sau:

- Kĩ thuật khai phá dữ liệu mô tả: có nhiệm vụ mô tả về các tính chất

hoặc các đặc tính chung của dữ liệu trong cơ sở dữ liệu hiện có. Các kĩ thuật

này có thể liệt kê: phân cụm (clustering), tóm tắt (summerization), trực quan

hóa (visualization), phân tích sự phát hiện biến đổi và độ lệch, phân tích luật

kết hợp (association rules)...;

- Kĩ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đƣa ra các dự đoán dựa

vào các suy diễn trên dữ liệu hiện thời. Các kĩ thuật này gồm có: phân lớp

(classification), hồi quy (regression)...;

13

3 phƣơng pháp thông dụng nhất trong khai phá dữ liệu là: phân cụm dữ

liệu, phân lớp dữ liệu và khai phá luật kết hợp. Ta sẽ xem xét từng phƣơng

pháp:

Phân cụm dữ liệu là nhóm các đối tƣợng tƣơng tự nhau trong tập dữ liệu

vào các cụm sao cho các đối tƣợng thuộc cùng một cụm là tƣơng đồng còn

các đối tƣợng thuộc các cụm khác nhau sẽ không tƣơng đồng. Phân cụm dữ

liệu là một ví dụ của phƣơng pháp học không giám sát. Không giống nhƣ

phân loại dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trƣớc các

mẫu dữ liệu huấn luyện. Vì thế, có thể coi phân cụm dữ liệu là một cách học

bằng quan sát (learning by observation), trong khi phân loại dữ liệu là học

bằng ví dụ (learning by example). Trong phƣơng pháp này bạn sẽ không thể

biết kết quả các cụm thu đƣợc sẽ nhƣ thế nào khi bắt đầu quá trình. Vì vậy,

thông thƣờng cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu

đƣợc. Phân cụm dữ liệu đƣợc sử dụng nhiều trong các ứng dụng về phân đoạn

thị trƣờng, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web…

Ngoài ra phân cụm dữ liệu còn có thể đƣợc sử dụng nhƣ một bƣớc tiền xử lí

cho các thuật toán khai phá dữ liệu khác.

Phân lớp dữ liệu là xếp một đối tƣợng vào một trong những lớp đã biết

trƣớc. Ví dụ nhƣ phân lớp các dữ liệu bệnh nhân trong hồ sơ bệnh án. Hƣớng

tiếp cận này thƣờng sử dụng một số kỹ thuật của học máy nhƣ cây quyết định,

mạng nơron nhân tạo,... Phân lớp dữ liệu còn đƣợc gọi là học có giám sát.

Quá trình phân lớp dữ liệu thƣờng gồm 2 bƣớc xây dựng mô hình và sử dụng

mô hình để phân lớp dữ liệu.

Bƣớc 1: Một mô hình sẽ đƣợc xây dựng dựa trên việc phân tích các mẫu

dữ liệu sẵn có. Mỗi mẫu tƣơng ứng với một lớp, đƣợc quyết định bởi một

thuộc tính gọi là thuộc tính lớp. Các mẫu dữ liệu này còn đƣợc gọi là tập dữ

liệu huấn luyện (training data set). Các nhãn của tập dữ liệu huấn luyện đều

14

phải đƣợc xác định trƣớc khi xây dựng mô hình, vì vậy phƣơng pháp này còn

đƣợc gọi là học có thầy (supervised learning) khác với phân cụm dữ liệu là

học không có thầy (unsupervised learning).

Bƣớc 2: Sử dụng mô hình để phân lớp dữ liệu. Trƣớc hết chúng ta phải

tính độ chính xác của mô hình. Nếu độ chính xác là chấp nhận đƣợc, mô hình

sẽ đƣợc sử dụng để dự đoán nhãn cho các mẫu dữ liệu khác trong tƣơng lai.

Khai phá luật kết hợp (Association Rule Mining) là kỹ thuật rất quan

trọng trong lĩnh vực khai phá dữ liệu. Mục đích của việc khai phá luật kết hợp

là tìm ra các mối quan hệ, sự kết hợp hay mối tƣơng quan giữa các đối tƣợng

trong khối lƣợng lớn dữ liệu. Nói cách khác, thuật toán khai phá luật kết hợp

cho phép tạo ra các luật mô tả các sự kiện xảy ra đồng thời (một cách thƣờng

xuyên) nhƣ thế nào. Thuật toán này thực hiện thông qua 2 giai đoạn chính:

- Giai đoạn đầu là đi tìm các sự kiện xảy ra thƣờng xuyên.

- Giai đoạn hai là tìm luật.

1.4 Ứng dụng của khai phá dữ li u

Mặc dù còn rất nhiều vấn đề mà KPDL cần phải tiếp tục nghiên cứu để

giải quyết nhƣng tiềm năng của nó đã đƣợc khẳng định bằng sự ra đời của rất

nhiều ứng dụng. Các ứng dụng của KPDL trong khoa học cũng đƣợc phát

triển. Các công ty phần mềm lớn trên thế giới cũng rất quan tâm và chú trọng

tới việc nghiên cứu và phát triển kỹ thuật khai phá dữ liệu: Oracle tích hợp

các công cụ khai phá dữ liệu vào bộ Oracle9i, IBM đã đi tiên phong trong

việc phát triển các ứng dụng khai phá dữ liệu với các ứng dụng nhƣ

Intelligence Miner. Ta có thể đƣa ra một số ứng dụng trong các lĩnh vực nhƣ:

Ngân hàng: Xây dựng mô hình dự báo rủi ro tín dụng, tìm kiếm tri thức,

quy luật của thị trƣờng chứng khoán và đầu tƣ bất động sản.

15

Thƣơng mại điện tử: Công cụ tìm hiểu, định hƣớng, thúc đẩy, giao tiếp

với khách hàng, phân tích khách hàng duyệt web, phân tích hành vi mua sắm

trên mạng và cho biết thông tin tiếp thị phù hợp với từng loại khách hàng.

Thiên văn học: Hệ thống SKICAT do JPL/Caltech phát triển đƣợc sử

dụng cho các nhà thiên văn để tự động xác định các vì sao và các dải thiên hà

trong một bản khảo sát lớn để có thể phân tích và phân loại.

Sinh học phân tử: Hệ thống tìm kiếm các mẫu trong cấu trúc phân tử và

trong các dữ liệu gen.

Mô hình hóa những thay đổi thời tiết: các mẫu không gian, thời gian nhƣ

lốc, gió xoáy đƣợc tự động tìm thấy trong các tập lớn dữ liệu mô phỏng và

quan sát đƣợc.

1.5 Những thách thức trong khai phá dữ li u

Mặc dù khai phá dữ liệu mang lại nhiều lợi ích và lợi thế, tuy nhiên nó

vẫn gặp phải những thách thức cơ bản đó là những vấn đề sau đây:

- Cơ sở dữ liệu lớn: kích thƣớc của cơ sở dữ liệu đƣợc nhận biết thông

qua số lƣợng các mẫu tin, các thuộc tính (hay các biến) và các bảng, số lƣợng

có thể là hàng trăm thuộc tính và bảng, hàng triệu các mẫu tin. Nhƣ vậy, kích

thƣớc của cơ sở dữ liệu tính bằng terabyte đã bắt đầu xuất hiện. Dữ liệu với số

chiều (tƣơng ứng với thuộc tính khi biểu diễn qua không gian các mẫu dữ

liệu) lớn tạo nên sự gia tăng về kích thƣớc của không gian tìm kiếm trong việc

quy nạp mô hình, một sự bùng nổ về tổ hợp. Khi xây dựng mô hình chỉ một

tập con trong cơ sở dữ liệu tham gia, vì vậy tính may rủi trong các thuật toán

khai phá sẽ tìm đƣợc các mẫu không có giá trị trong trƣờng hợp tổng quát.

Một giải pháp cho vấn đề này là giảm bớt đáng kể số chiều của bài toán và sử

dụng tri thức trƣớc (prior knowledge) để nhận biết các biến ít liên quan và

loại bỏ chúng.

16

- Vấn đề “quá khớp” (Over-fitting): Khi thuật toán khai phá tìm kiếm với

các tham số tốt nhất cho một mô hình đặc biệt và một giới hạn của tập dữ liệu,

mô hình ấy có thể “quá khớp” trên tập dữ liệu ấy nhƣng lại thi hành không

chính xác trên tập dữ liệu kiểm tra. Một giải pháp thƣờng đƣợc sử dụng là

thẩm định chéo.

- Thay đổi dữ liệu và tri thức: Dữ liệu là không tĩnh, dữ liệu luôn thay

đổi nhanh chóng có thể dẫn đến những mẫu đã khai phá trƣớc đây không còn

hiệu lực. Thêm vào đó, các biến đã đƣợc đo trong cơ sở dữ liệu ứng dụng đã

bị thay đổi, bị xóa hoặc đã tăng lên với một độ đo mới. Điều này có thể đƣợc

thực hiện bằng cách gia tăng các phƣơng thức cập nhật các mẫu và xem xét

các thay đổi nhƣ là một cơ hội cho việc khám phá bằng việc sử dụng nó để xử

lý thích hợp việc tìm kiếm các mẫu chỉ với sự thay đổi.

- Dữ liệu thiếu và nhiễu: Đây là vấn đề rất đƣợc quan tâm trong khai phá

dữ liệu, điều này thƣờng dẫn đến việc dự đoán thiếu chính xác.

- Tích hợp với hệ thống: Hệ thống khai phá dữ liệu thực sự là hữu ích khi

phải đƣợc tích hợp với cơ sở dữ liệu thông qua các giao diện nhƣ truy vấn,

bảng tính và các công cụ trực quan khác. Hơn nữa, phải tạo ra một môi trƣờng

thuận lợi cho việc tƣơng tác với ngƣời dùng.

17

CHƢƠNG 2

PHÂN CỤM DỮ LIỆU VÀ MỘT SỐ THUẬT TOÁN CƠ BẢN

2.1 Đị h ghĩa về phân cụm dữ li u

Phân cụm là kỹ thuật rất quan trọng trong khai phá dữ liệu, nó thuộc lớp

các phƣơng pháp học không giám sát trong Machine Learning. Có rất nhiều

định nghĩa khác nhau về kỹ thuật này, nhƣng về bản chất ta có thể hiểu phân

cụm là các qui trình tìm cách nhóm các đối tƣợng đã cho vào các cụm

(clusters), sao cho các đối tƣợng trong cùng một cụm tƣơng tự (similar) nhau

và các đối tƣợng khác cụm thì không tƣơng tự (dissimilar) nhau.

Chúng ta có thể có thể minh hoạ vấn đề phân cụm nhƣ hình sau:

Hình 2.1. Mô phỏng vấ đề phân cụm dữ li u

Trong trƣờng hợp này, chúng ta dễ dàng xác định đƣợc 3 cụm dựa vào

các dữ liệu đã cho, các tiêu chí “tƣơng tự” để phân cụm trong trƣờng hợp này

18

là khoảng cách hai hoặc nhiều đối tƣợng thuộc nhóm của chúng đƣợc “đóng

gói” theo một khoảng cách nhất định. Điều này đƣợc gọi là phân cụm dựa trên

khoảng cách.

Một kiểu khác của phân cụm dữ liệu là phân cụm dữ liệu dựa vào khái

niệm hai hay nhiều đối tƣợng thuộc cùng nhóm nếu có một định nghĩa khái

niệm chung cho tất cả các đối tƣợng trong đó. Nói cách khác, đối tƣợng của

nhóm phải phù hợp với nhau theo miêu tả các khái niệm đã đƣợc định nghĩa,

không phải theo những biện pháp đơn giản tƣơng tự.

- Marketing: Xác định các nhóm khách hàng (khách hàng tiềm năng,

Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như:

khách hàng giá trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản

phẩm hay dịch vụ của công ty để giúp công ty có chiến lƣợc kinh doanh hiệu

- Sinh học: Phân nhóm động vật và thực vật dựa vào các thuộc tính của

quả hơn.

- Thƣ viện: Theo dõi độc giả, sách, dự đoán nhu cầu của độc giả.

- Bảo hiểm, tài chính: Phân nhóm các đối tƣợng sử dụng bảo hiểm và các

chúng.

dịch vụ tài chính, dự đoán xu hƣớng của khách hàng, phát hiện gian lận tài

- Mạng lƣới toàn cầu: Phân loại tài liệu, phân loại ngƣời dùng web.

chính .

2.2 Mục tiêu của phân cụm dữ li u

Mục tiêu của phân cụm dữ liệu là để xác định các nhóm nội tại bên

trong một bộ dữ liệu không có nhãn. Nhƣng để có thể quyết định đƣợc cái gì

tạo thành một cụm tốt, làm thế nào để quyết định cái gì đã tạo nên một

phân cụm dữ liệu tốt ? Nó có thể đƣợc hiển thị rằng không có tiêu chuẩn tuyệt

đối “tốt nhất” mà sẽ là độc lập với mục đích cuối cùng của phân cụm dữ liệu.

19

Do đó, mà ngƣời sử dụng phải cung cấp tiêu chuẩn, theo cách nhƣ vậy mà kết

quả của phân cụm dữ liệu sẽ phù hợp với nhu cầu của họ cần.

Một vấn đề thƣờng gặp trong phân cụm là hầu hết các dữ liệu cần cho

phân cụm đều có chứa dữ liệu nhiễu do quá trình thu thập thiếu chính xác

hoặc thiếu đầy đủ, vì vậy cần phải xây dựng chiến lƣợc cho bƣớc tiền xử lí dữ

liệu nhằm khắc phục hoặc loại bỏ nhiễu trƣớc khi chuyển sang giai đoạn phân

tích cụm dữ liệu. Nhiễu ở đây đƣợc hiểu là các đối tƣợng dữ liệu không chính

xác, không tƣờng minh hoặc là các đối tƣợng dữ liệu khuyết, thiếu thông tin

về một số thuộc tính... Một trong các kỹ thuật xử lí nhiễu phổ biến là việc

thay thế giá trị các thuộc tính của đối tƣợng nhiễu bằng giá trị thuộc tính

tƣơng ứng. Ngoài ra, dò tìm đối tƣợng ngoại lai cũng là một trong những

hƣớng nghiên cứu quan trọng trong phân cụm, chức năng của nó là xác định

một nhóm nhỏ các đối tƣợng dữ liệu khác thƣờng so với các dữ liệu trong cơ

sở dữ liệu, tức là các đối tƣợng dữ liệu không tuân theo các hành vi hoặc mô

hình dữ liệu nhằm tránh sự ảnh hƣởng của chúng tới quá trình và kết quả của

phân cụm.

Theo các nghiên cứu đến thời điểm hiện nay thì chƣa có một phƣơng

pháp phân cụm tổng quát nào có thể giải quyết trọn vẹn cho tất cả các dạng

cấu trúc cơ sở dữ liệu. Hơn nữa, đối với các phƣơng pháp phân cụm cần có

cách thức biểu diễn cấu trúc của cơ sở dữ liệu, với mỗi cách thức biểu diễn

khác nhau sẽ có tƣơng ứng một thuật toán phân cụm phù hợp. Vì vậy phân

cụm dữ liệu vẫn đang là một vấn đề khó và mở, vì phải giải quyết nhiều vấn

đề cơ bản một cách trọn vẹn và phù hợp với nhiều dạng dữ liệu khác nhau,

đặc biệt là đối với dữ liệu hỗn hợp đang ngày càng tăng trong các hệ quản trị

dữ liệu và đây cũng là một trong những thách thức lớn trong lĩnh vực khai phá

dữ liệu.

20

Phân cụm là một lĩnh vực nghiên cứu có nhiều thách thức, tại đó các ứng

dụng tiềm năng của nó đƣa ra các yêu cầu đặc biệt. Sau đây là các yêu cầu

điển hình của phân cụm trong khai phá dữ liệu:

(1) Khả năng mở rộng.

(2) Thích nghi với các kiểu dữ liệu khác nhau.

(3) Khám phá ra các cụm với hình thù bất kỳ.

(4) Tối thiểu lƣợng tri thức cần cho xác định tham số vào.

(5) Ít nhạy cảm với thứ tự của dữ liệu vào.

(6) Thích nghi với dữ liệu nhiễu cao.

(7) Ít nhạy cảm với tham số đầu vào.

(8) Thích nghi với dữ liệu đa chiều.

(9) Dễ hiểu, dễ cài đặt và khả thi.

2.3 Bài toán phân cụm dữ li u

Phân cụm dữ liệu là quá trình học không giám sát trên một tập dữ liệu

đầu vào nhằm phân chia tập dữ liệu ban đầu thành các tập dữ liệu con có tính

chất tƣơng tự nhau.

Đầu vào: Tập dữ liệu D gồm n phần tử trong không gian m chiều.

i, x2

i) mô tả m thuộc tính của phần tử thứ i.

- D = {x1, x2,…,xn} i,…, xm - xi = (x1

Đầu ra: Phân tách các dữ liệu thuộc D thành các cụm sao cho:

- Các phần tử trong cùng một cụm có tính chất tƣơng tự nhau

(gần nhau).

- Các phần tử ở các cụm khác nhau có tính chất khác nhau (xa

nhau).

2.4 M t số kiểu dữ li u

Thuật toán phân cụm dữ liệu có nhất rất nhiều liên kết với các loại dữ

liệu. Vì vậy, sự hiểu biết về quy mô, bình thƣờng hoá, và gần nhau là rất quan

21

trọng trong việc giải thích các kết quả của thuật toán phân cụm dữ liệu. Kiểu

dữ liệu nói đến mức độ lƣợng tử hóa trong dữ liệu [2] một thuộc tính duy nhất

có thể đƣợc gõ nhƣ nhị phân, rời rạc, hoặc liên tục. Thuộc tính nhị phân có

chính xác hai giá trị, nhƣ là đúng hoặc sai. Thuộc tính rời rạc có một số hữu

hạn các giá trị có thể, vì thế các loại nhị phân là một trƣờng hợp đặc biệt của

các loại rời rạc.

Trong phần này ta phân tích các kiểu dữ liệu thƣờng đƣợc sử dụng trong

phân cụm dữ liệu. Trong phân cụm dữ liệu, các đối tƣợng dữ liệu cần phân

tích có thể là con ngƣời, nhà cửa, tiền lƣơng, các thực thể phần mềm,… Các

đối tƣợng này thƣờng đƣợc diễn tả dƣới dạng các thuộc tính của nó. Các

thuộc tính này là các tham số cần cho giải quyết vấn đề phân cụm dữ liệu và

sự lựa chọn chúng có tác động đáng kể đến các kết quả của phân cụm. Phân

loại các kiểu thuộc tính khác nhau là một vấn đề cần giải quyết đối với hầu

hết các tập dữ liệu nhằm cung cấp các phƣơng tiện thuận lợi để nhận dạng sự

khác nhau của các phần tử dữ liệu. Dƣới đây là cách phân cụm dựa trên hai

đặc trƣng là: kích thƣớc miền và hệ đo.

2.4.1 Phân loại kiểu dữ li u dựa tr kích thƣ c miền

- Thuộc tính liên tục: Nếu miền giá trị của nó là vô hạn không đếm

đƣợc, nghĩa là giữa hai giá trị tồn tại vô số giá trị khác. Thí dụ nhƣ các thuộc

tính về màu, nhiệt độ hoặc cƣờng độ âm thanh.

- Thuộc tính rời rạc: Nếu miền giá trị của nó là tập hữu hạn hoặc đếm

đƣợc. Thí dụ nhƣ các thuộc tính về số của một cuốn sách, số thành viên trong

một gia đình,…

2.4.2 Phân loại kiểu dữ li u dựa trên h đ

Giả sử ta có hai đối tƣợng x, y và các thuộc tính xi , yi tƣơng ứng với

thuộc tính thứ i của chúng. Chúng ta có các lớp kiểu dữ liệu nhƣ sau:

22

- Thuộc tính định danh: Dạng thuộc tính khái quát hoá của thuộc tính nhị

phân, trong đó miền giá trị là rời rạc không phân biệt thứ tự và có nhiều hơn

hai phần tử - nghĩa là nếu x và y là hai đối tƣợng thuộc tính thì chỉ có thể xác

định là x  y hoặc x = y. Thí dụ nhƣ thuộc tính về nơi sinh.

- Thuộc tính có thứ tự: Là thuộc tính định danh có thêm tính thứ tự,

nhƣng chúng không đƣợc định lƣợng. Nếu x và y là hai thuộc tính thứ tự thì ta

có thể xác định là x  y hoặc x = y hoặc x > y hoặc x < y. Thí dụ nhƣ thuộc

tính Huy chƣơng của vận động viên thể thao.

- Thuộc tính khoảng: Nhằm để đo các giá trị theo xấp xỉ tuyến tính. Với

thuộc tính khoảng, ta có thể xác định một thuộc tính là đứng trƣớc hoặc đứng

sau thuộc tính khác với một khoảng là bao nhiêu. Nếu xi> yi thì ta nói x cách

y một khoảng |xi – yi| tƣơng ứng với thuộc tính thứ i. Ví dụ: thuộc tính số

Serial của một đầu sách trong thƣ viện hoặc thuộc tính số kênh trên truyền

hình.

- Thuộc tính tỉ lệ: Là thuộc tính khoảng nhƣng đƣợc xác định một cách

tƣơng đối so với điểm mốc, thí dụ nhƣ thuộc tính chiều cao hoặc cân nặng lấy

giá trị 0 làm mốc.

Trong các thuộc tính dữ liệu trình bày ở trên, thuộc tính định danh và

thuộc tính có thứ tự gọi chung là thuộc tính hạng mục, thuộc tính khoảng và

thuộc tính tỉ lệ đƣợc gọi là thuộc tính số.

Ngƣời ta còn đặc biệt quan tâm đến dữ liệu không gian. Đây là loại dữ

liệu có các thuộc tính số khái quát trong không gian nhiều chiều, dữ liệu

không gian mô tả các thông tin liên quan đến không gian chứa đựng các đối

tƣợng, thí dụ nhƣ thông tin về hình học,… Dữ liệu không gian có thể là dữ

liệu liên tục hoặc rời rạc.

23

Dữ liệu không gian rời rạc: Có thể là một điểm trong không gian nhiều

chiều và cho phép ta xác định đƣợc khoảng cách giữa các đối tƣợng dữ liệu

trong không gian.

Dữ liệu không gian liên tục: Bao gồm một vùng trong không gian.

Thông thƣờng, các thuộc tính số đƣợc đo bằng các đơn vị xác định nhƣ

là Kilogams hoặc Centimeter. Tuy nhiên, các đơn vị đo có ảnh hƣởng đến các

kết quả phân cụm. Thí dụ nhƣ thay đổi độ đo cho thuộc tính cân nặng từ

Kilogams sang Pound có thể mang lại các kết quả khác nhau trong phân cụm.

Để khắc phục điều này ngƣời ta phải chuẩn hoá dữ liệu, tức là sử dụng các

thuộc tính dữ liệu không phụ thuộc vào đơn vị đo. Thực hiện chuẩn hoá phụ

thuộc vào ứng dụng và ngƣời dùng, thông thƣờng chuẩn hoá dữ liệu đƣợc

thực hiện bằng cách thay thế mỗi một thuộc tính bằng thuộc tính số hoặc thêm

các trọng số cho các thuộc tính.

2.5 M t số kỹ thu t phân cụm dữ li u

Các kỹ thuật phân cụm có rất nhiều cách tiếp cận và các ứng dụng

trong thực tế, nó đều hƣớng tới hai mục tiêu chung đó là chất lƣợng của các

cụm khám phá đƣợc và tốc độ thực hiện của thuật toán. Hiện nay, các kỹ thuật

phân cụm có thể phân loại theo các phƣơng pháp tiếp cận chính nhƣ sau: phân

cụm phân hoạch, phân cụm phân cấp, phân cụm dựa trên mật độ, phân cụm

dựa trên lƣới, phân cụm dựa trên mô hình phân cụm và phân cụm có dữ liệu

ràng buộc.

2.5.1 Phƣơ g h h cụm dữ li u dựa trên phân cụm phân cấp

Phƣơng pháp phân cụm phân cấp làm việc bằng cách nhóm các đối

tƣợng vào trong một cây các cụm.

- Phân cụm phân cấ tích đống: bắt đầu bằng cách đặt mỗi đối tƣợng

vào trong cụm của bản thân nó, sau đó kết nhập các cụm nguyên tử này vào

24

trong các cụm ngày càng lớn hơn cho tới khi tất cả các đối tƣợng nằm trong

một cụm đơn hay cho tới khi thỏa mãn điều kiện dừng cho trƣớc.

- Phân cụm phân cấp phân ly: phƣơng pháp này ngƣợc lại bằng cách

bắt đầu với tất cả các đối tƣợng trong một cụm, chia nhỏ nó vào trong các

phần ngày càng nhỏ hơn cho tới khi mỗi đối tƣợng hình thành nên một cụm

hay thỏa mãn một điều kiện dừng cho trƣớc.

2.5.1.1 Thuật toán AGNES

Thuật toán AGNES (Agglomerative Nesting) - tích đống lồng [3].

Phƣơng pháp này sử dụng phƣơng pháp kết nối đơn, tại đó mỗi cụm đƣợc đại

diện bởi tất cả các điểm dữ liệu trong cụm, và độ tƣơng đồng giữa hai cụm

đƣợc đo bởi độ tƣơng đồng của cặp điểm dữ liệu gần nhất thuộc về các cụm

khác nhau. AGNES hoà nhập các nút (tức là các đối tƣợng hay các cụm riêng

lẻ) có độ không tƣơng đồng ít nhất, cứ thể cho tới khi hoà nhập thành một

cụm duy nhất.

Thu t toán AGNES bao gồ c c bƣ c cơ bản sau :

Bước 1: Mỗi đối tượng là một nhóm

Bước 2: Hợp nhất các nhóm có khoảng cách giữa các nhóm là nhỏ nhất.

Bước 3: Nếu thu được nhóm “toàn bộ” tức là dữ liệu đã nằm toàn bộ

trong một nhóm thì dừng, ngược lại quay lại bước 2

2.5.1.2 Thuật toán BIRCH

Một phƣơng pháp phân cụm phân cấp đƣợc tích hợp thú vị gọi là BIRCH

(Balanced Iterative Reducing and Clustering using Hierachies) đƣợc đề xuất

năm 1996 bởi Zhang, Ramakrishnan và Livny.

Nó đƣa ra hai khái niệm: đặc trƣng phân cụm (CF - Clustering Feature)

và cây CF (Clustering Feature tree), sử dụng cây CF đại diện một cụm tóm tắt

để có đƣợc tốc độ và khả năng mở rộng phân cụm tốt trong các cơ sở dữ liệu

lớn. Nó cũng tốt đối với phân cụm tăng trƣởng động của các điểm dữ liệu đầu

25

vào. Đối với mỗi cụm dữ liệu, BIRCH chỉ lƣu bộ ba (N, LS, SS), Trong đó N

là số đối tƣợng trong cụm, LS là tổng các giá trị thuộc tính của các đối tƣợng

trong cụm, và SS là tổng bình phƣơng của các giá trị thuộc tính của các đối

tƣợng trong cụm. Khi đó, các cụm trong tập dữ liệu ban đầu sẽ đƣợc cho dƣới

dạng một cây CF. Ngƣời ta đã chứng minh đƣợc rằng các đại lƣợng thống kê

nhƣ độ đo có thể xác định từ cây CF.

Một cây CF là một cây cân bằng chiều cao, nó lƣu trữ các đặc trƣng

phân cụm. Nó có hai tham số: hệ số phân nhánh B và ngƣỡng T. Hệ số phân

nhánh chỉ rõ số lƣợng tối đa các con. Tham số ngƣỡng chỉ rõ đƣờng kính tối

đa của các cụm con đƣợc lƣu trữ tại các nút lá. Bằng cách thay đổi giá trị

ngƣỡng, nó có thể thay đổi kích thƣớc của cây. Các nút không phải là lá lƣu

trữ tổng các CF của các nút con, do vậy tóm tắt thông tin về các con của

chúng.

Thu t t BIRCH đƣợc thực hi qua hai giai đ ạn sau:

Giai đoạn 1: Duyệt tất cả các đối tƣợng trong tập dữ liệu và xây dựng

một cây CF ban đầu. Ở giai đoạn này các đối tƣợng lần lƣợt đƣợc chèn vào

nút lá gần nhất của cây CF (nút lá của cây đóng vai trò cụm con), sau khi chèn

xong thì mọi nút trên cây CF đƣợc cập nhật thông tin. Nếu đƣờng kính của

cụm con sau khi chèn lớn hơn ngƣỡng T thì nút đƣợc tách ra. Quá trình này

đƣợc lặp lại cho đến khi tất cả các đối tƣợng đều đƣợc chèn vào cây

CF. Để lƣu thông toàn bộ cây CF trong bộ nhớ điều chỉnh kích thƣớc của cây

CF thông qua điều chỉnh ngƣỡng T.

Giai đoạn 2: BIRCH chọn một giải thuật toán phân cụm bất kỳ (nhƣ

thuật toán phân hoạch) để thực hiện phân cụm cho tất các các nút lá CF.

2.5.2 Phƣơ g h h cụm dữ li u dựa trên m t đ

Phƣơng pháp này nhóm các đối tƣợng dữ liệu dựa trên hàm mật độ xác

định, 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

26

nghĩa nào đó. Trong cách tiếp cận này, khi một dữ liệu đã xác định thì nó tiếp

tục đƣợc phát triển thêm các đối tƣợng dữ liệu mới miễn là số các đối tƣợng

lân cận này phải lớn hơn một ngƣỡng đã đƣợc xác định trƣớc. 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ù bất kỳ. 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.

2.5.2.1 Thuật toán DBSCAN

DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

là một giải thuật phân cụm dựa trên mật độ, đƣợc phát triển bởi Ester,

Kriegel, Sander và Xu (1996). Thuật toán thích nghi với mật độ dầy để phân

cụm và khám phá ra các cụm có hình dạng bất kỳ trong không gian CSDL có

nhiễu. Nó có định nghĩa cụm là tập tối đa các điểm liên thông mật độ.

Hinh 2.2. Cụm dữ li u đƣợc khám phá bởi giải thu t DBSCAN

Quan sát 3 tập dữ liệu điểm mẫu ở hình 2.2, chúng ta dễ dàng nhận ra

các cụm điểm và các điểm nhiễu. Ý tƣởng chính để phát hiện ra các cụm của

giải thuật DBSCAN là bên trong mỗi cụm luôn tồn tại một mật độ cao hơn

bên ngoài cụm. Hơn nữa, mật độ ở những vùng nhiễu thì thấp hơn mật độ bên

trong của bất kỳ cụm nào. Trong mỗi cụm phải xác định bán kính vùng lân

cận (Eps) và số lƣợng điểm tối thiểu trong vùng lân cận của một điểm trong

27

cụm (MinPts). Hình dạng vùng lân cận của một điểm đƣợc xác định dựa vào

việc chọn hàm khoảng cách giữa hai điểm p và q, ký hiệu là dist(p,q). Ví dụ,

nếu dùng khoảng cách Mahattan trong không gian 2D thì hình dạng vùng lân

cận là hình chữ nhật.

Các bƣớc của thuật toán DBSCAN nhƣ sau:

Bước 1: Chọn một đối tượng p tuỳ ý

Bước 2: Lấy tất cả các đối tượng mật độ - đến được từ p với Eps và

MinPts.

Bước 3: Nếu p là điểm nhân thì tạo ra một cụm theo Eps và MinPts.

Bước 4: Nếu p là một điểm biên, không có điểm nào là mật độ - đến

được mật độ từ p và DBSCAN sẽ đi thăm điểm tiếp theo của tập dữ liệu.

Bước 5: Quá trình tiếp tục cho đến khi tất cả các đối tượng được xử lý.

Nếu ta chọn sử dụng giá trị trị toàn cục Eps và MinPts, DBSCAN có thể

hoà nhập hai cụm thành một cụm nếu mật độ của hai cụm gần bằng nhau. Giả

sử khoảng cách giữa hai tập dữ liệu S1 và S2 đƣợc định nghĩa là Dist(S1,S2) =

S2}. S1 và qmin{dist(p,q)| p  S1 và qS2 }.

Thuật toán DBSCAN có thể tìm ra các cụm với hình thù bất kỳ, trong

khi đó tại cùng một thời điểm ít bị ảnh hƣởng bởi thứ tự của các đối tƣợng dữ

liệu nhập vào. Khi có một đối tƣợng đƣợc chèn vào chỉ tác động đến một láng

giềng xác định. Mặt khác, DBSCAN yêu cầu ngƣời dùng xác định bán kính

Eps của các láng giềng và số các láng giềng tối thiểu MinPts, thông thƣờng

các tham số này đƣợc xác định bằng phép chọn ngẫu nhiên hoặc theo kinh

nghiệm.

Độ phức tạp của thuật toán DBSCAN là O ( n×thời gian tìm các đối

tƣợng Eps ). Trong đó n là số đối tƣợng cần phân cụm. Trong trƣờng hợp xấu nhất thì độ phức tạp sẽ là O ( n2).

2.5.2.2 Thuật toán OPTICS

28

Thuật toán OPTICS (Ordering Points To Identify the Clustering

Structure) do Ankerst, Breunig, Kriegel và Sander đề xuất năm 1999, là thuật

toán mở rộng cho thuật toán DBSCAN, bằng cách giảm bớt các tham số đầu

vào. Thuật toán thực hiện tính toán và sắp xếp các đối tƣợng theo thứ tự tăng

dần nhằm tự động phân cụm và phân tích cụm tƣơng tác hơn là đƣa ra phân

cụm một tập dữ liệu rõ ràng. Thứ tự này diễn tả cấu trúc dữ liệu phân cụm

dựa trên mật độ chứa thông tin tƣơng đƣơng với phân cụm dựa trên mật độ

với một dãy các tham số đầu vào. OPTICS xem xét bán kính tối thiểu nhằm

xác định các láng giềng phù hợp với thuật toán.

Bằng cách khảo sát giải thuật phân cụm dựa trên mật độ, OPTICS có thể

dễ dàng thấy rằng đối với một giá trị hằng số MinPts, các cụm dựa trên mật

độ đối với mật độ cao hơn (tức là một giá trị ε thấp hơn) đƣợc chứa hoàn toàn

trong các tập mật độ liên kết đối với một mật độ thấp hơn. Bởi vậy, để đƣa ra

các cụm dựa trên mật độ với một tập các tham số khoảng cách, giải thuật cần

lựa chọn các đối tƣợng để xử lý theo một trật tự cụ thể để đối tƣợng là mật độ

đối với giá trị ε thấp nhất đƣợc kết thúc trƣớc tiên. Dựa trên ý tƣởng này, hai

giá trị cần đƣợc lƣu trữ đối với mỗi đối tƣợng: khoảng cách nòng cốt (core-

distance) và khoảng cách tiến (reachability distance).

Khoảng cách nòng cốt của một đối tƣợng p là khoảng cách nhỏ nhất ε'

giữa p và một đối tƣợng trong ε - láng giềng của nó để p sẽ là một đối tƣợng

nòng cốt đối với ε' nếu nhƣ láng giềng này đƣợc chứa trong ε - láng giềng của

p. Nếu không thì khoảng cách nòng cốt là không xác định. Khoảng cách tiến

của một đối tƣợng p đối với một đối tƣợng o khác là khoảng cách nhỏ nhất để

p là mật độ trực tiếp tiến từ o nếu o là một đối tƣợng nòng cốt. Nếu o không

phải là một đối tƣợng nòng cốt, ngay cả tại khoảng cách phát sinh ε, khoảng

cách tiến của một đối tƣợng p đối với o là không xác định.

29

Giải thuật OPTICS tạo lập trật tự của một cơ sở dữ liệu, thêm vào đó là

lƣu trữ khoảng cách nòng cốt và một khoảng cách tiến phù hợp với mỗi đối

tƣợng. Thông tin nhƣ vậy là đủ cho sự rút trích của tất cả các phân cụm dựa

trên mật độ đối với bất kỳ một khoảng cách ε' nhỏ hơn khoảng cách phát sinh

ε từ trật tự này.

Thuật toán DBSCAN và OPTICS tƣơng tự với nhau về cấu trúc và có

cùng độ phức tạp: O(nLogn) (n là kích thƣớc của tập dữ liệu). Hình sau thể

hiện về một thí dụ trong PCDL của thuật toán OPTICS:

Hinh 2.3. Thứ tự phân cụ c c đối tƣợng theo OPTICS

2.5.3 Phƣơ g h h cụm phân hoạch

Ý tƣởng chính của kỹ thuật này là phân hoạch một tập hợp dữ liệu có n

phần tử cho trƣớc thành k nhóm dữ liệu sao mỗi phần tử dữ liệu chỉ thuộc về

một nhóm dữ liệu có tối thiểu ít nhất một phần tử dữ liệu. Số các cụm đƣợc

thiết lập là các đặc trƣng đƣợc lựa chọn trƣớc.

Phƣơng pháp này là tốt cho việc tìm các cụm hình cầu trong không gian

Euclidean. Ngoài ra, phƣơng pháp này cũng phụ thuộc vào khoảng cách cơ

bản giữa các điểm để lựa chọn các điểm dữ liệu nào có quan hệ là gần nhau

với mỗi điểm khác và các điểm dữ liệu nào không có quan hệ hoặc có quan hệ

là xa nhau so với mỗi điểm khác.

2.5.3.1 Thuật toán K-means

30

Ý tƣởng của thuật toán K-Means đƣợc đề xuất bởi MacQueen trong lĩnh

vực thống kê năm 1967, là một trong những thuật toán học không giám sát

thông dụng nhất trong phân nhóm dữ liệu. Với mục tiêu chia tập gồm n đối

tƣợng của cơ sở dữ liệu thành k cụm ( k ≤ n, k là số nguyên, dƣơng) sao cho

các đối tƣợng trong cùng một vùng có khoảng cách bé còn các đối tƣợng khác

vùng thì có khoảng cách lớn hơn nhiều.

Thuật toán: Đầu tiên, xác định K tâm cụm, trong đó K là một tham số mà

ngƣời dùng đƣa vào.

Với x = {x1, x2 ,..., xN} là tập dữ liệu đầu vào và C = {C1,C2 ,...,CK } là tập

K tâm cụm.

Đầu vào: X = {x1, x2 ,..., xN} (Tập dữ liệu đầu vào)

K (Số lƣợng tâm cụm)

MaxIters (Số vòng lặp tối đa)

Đầu ra: C = { c1,c2,...,cK } (Tập các cụm)

Thuật toán K-Means thực hiện qua các bước chính sau:

1. Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm

đƣợc đại diện bằng các tâm của cụm.

2. Tính khoảng cách giữa các đối tƣợng (objects) đến K tâm (thƣờng

dùng khoảng cách Euclidean)

3. Nhóm các đối tƣợng vào nhóm gần nhất

4. Xác định lại tâm mới cho các nhóm

5. Thực hiện lại bƣớc 2 cho đến khi không có sự thay đổi nhóm nào của

các đối tƣợng

Thuật toán k-means đƣợc chứng minh là hội tụ và có độ phức tạp tính

toán là: O((nk d)Tflop). Trong đó: n là số đối tƣợng dữ liệu, k là số cụm dữ

liệu, d là số chiều,  là số vòng lặp, Tflop là thời gian để thực hiện một phép

tính cơ sở nhƣ phép tính nhân, chia, …Nhƣ vậy, do k-means phân tích phân

31

cụm đơn giản nên có thể áp dụng đối với tập dữ liệu lớn. Tuy nhiên, nhƣợc

điểm của k-means là chỉ áp dụng với dữ liệu có thuộc tính số và khám phá ra

các cụm có dạng hình cầu, k-means còn rất nhạy cảm với nhiễu và các phần

tử ngoại lai trong dữ liệu. Hình sau diễn tả mô phỏng về một số hình dạng

cụm dữ liệu khám phá đƣợc bởi k-means:

Hinh 2. 4. Phân cụm dựa tr hƣơ g h p k-means

Tuy nhiên, phƣơng pháp k-means chỉ áp dụng khi trung bình của một

cụm đƣợc xác định. Không phải ứng dụng nào cũng có thể áp dụng kỹ thuật

này, ví dụ những dữ liệu bao hàm các thuộc tính xác thực. Về phía các ngƣời

dùng, họ phải chỉ rõ k - số cụm, cần sớm phát hiện ra sự bất lợi. Phƣơng pháp

k-means không thích hợp với việc tìm các cụm có hình dáng không lồi hay

các cụm có kích thƣớc khác xa nhau. Hơn nữa, nó nhạy cảm với các điểm dữ

liệu nhiễu, một số lƣợng nhỏ dữ liệu nhƣ vậy về căn bản có ảnh hƣởng tới giá

trị trung bình. Trên thực tế ngƣời ta chƣa có một giải pháp tối ƣu nào để chọn

các tham số đầu vào, giải pháp thƣờng đƣợc sử dụng nhất là thử nghiệm với

các giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất.

32

Đến nay, đã có rất nhiều thuật toán kế thừa tƣ tƣởng của thuật toán k-

means áp dụng trong khai phá dữ liệu để giải quyết tập dữ liệu có kích thƣớc

rất lớn đang đƣợc áp dụng rất hiệu quả và phổ biến nhƣ thuật toán k-medoid,

PAM, CLARA, CLARANS, k- prototypes, …

2.5.3.2 Thuật toán PAM

Thuật toán PAM (Partitioning Around Medoids) đƣợc Kaufman và

Rousseeuw đề xuất 1987, là thuật toán mở rộng của thuật toán k-means, nhằm

có khả năng xử lý hiệu quả đối với dữ liệu nhiễu hoặc các phần tử ngoại lai.

Ý tƣởng của k-medodis thay vì lấy giá trị trung bình của các đối tƣợng

trong cụm nhƣ một điểm tham khảo, k-medoids lấy một đối tƣợng đại diện

trong cụm, gọi là medoid, nó là điểm đại diện đƣợc định vị trung tâm nhất

trong cụm. Do vậy, phƣơng pháp phân chia vẫn đƣợc thực hiện dựa trên

nguyên tắc tối thiểu hoá tổng các độ không tƣơng đồng giữa mỗi đối tƣợng

với điểm tham khảo tƣơng ứng của nó, điểm này thiết lập nên cơ sở của

phƣơng pháp k-mediods.

Giải thuật PAM, đây là giải thuật phân cụm kiểu k-mediods. Để xác định

các medoid, PAM bắt đầu bằng cách lựa chọn k đối tƣợng medoid bất kỳ. Sau

mỗi bƣớc thực hiện, PAM cố gắng hoán chuyển giữa đối tƣợng medoid Om và

một đối tƣợng Op không phải là medoid, miễn là sự hoán chuyển này nhằm

cải tiến chất lƣợng của phân cụm, quá trình này kết thúc khi chất lƣợng phân

cụm không thay đổi. Chất lƣợng phân cụm đƣợc đánh giá thông qua hàm tiêu

chuẩn, chất lƣợng phân cụm tốt nhất khi hàm tiêu chuẩn đạt giá trị tối thiểu.

PAM tính giá trị Cjmp cho tất cả các đối tƣợng Oj để làm căn cứ cho việc

hoán chuyển giữa Om và Op.

Om : là đối tƣợng medoid hiện thời cần đƣợc thay thế;

Op : là đối tƣợng medoid mới thay thế cho Om;

33

Oj : Là đối tƣợng dữ liệu (Không phải medoid) có thể đƣợc di

chuyển sang cụm khác;

Oj,2 : Là đối tƣợng medoid hiện thời gần đối tƣợng Oj nhất;

Các bƣớc thực hiện thuật toán PAM

Đầu vào : Số cụm k và một cơ sở dữ liệu chứa n đối tượng

Đầu ra : Một tập k cụm đã tối thiểu hoá tổng các độ đo không tương

đồng của tất cả các đối tượng tới medoid gần nhất của chúng.

Bắt đầu

1. Chọn tuỳ ý k đối tượng giữ vai trò là các medoid ban đầu;

2. Repeat

3. Ấn định mỗi đối tượng vào cụm có medoid gần nó nhất;

4. Tính hàm mục tiêu (tổng các độ đo tương đồng của tất cả các đối

tượng tới medoid gần nhất cùa chúng);

5. Đổi medoid x bằng một đối tượng y nếu như việc thay đổi này làm

giảm hàm mục tiêu;

6. Until : không có sự thay đổi nào

Kết thúc

Khi có sự hiện diện của nhiễu và các outlier, phƣơng pháp k-medoids

mạnh hơn k-means bởi so với giá trị trung bình (mean), medoid ít bị ảnh

hƣởng hơn bởi các outlier hay các giá trị ở rất xa khác nữa. Tuy nhiên, chi phí

xử lý của nó tốn kém hơn phƣơng pháp k-means và nó cũng cần ngƣời dùng

chỉ ra k - số cụm.

2.6 Kết lu n

Chƣơng này trình bày một số phƣơng pháp phân cụm dữ liệu phổ biến

nhƣ phân cụm dựa trên mật độ, phân cụm phân hoạch, phân cụm dựa vào cụm

phân cấp. Qua đó ta có thể thấy đƣợc khả năng phân cụm của từng phƣơng

pháp, các ƣu nhƣợc điểm của từng phƣơng pháp đối với từng loại dữ liệu, khả

năng áp dụng vào các bài toán thực tiễn.

34

CHƢƠNG 3

PHÂN LỚP DỮ LIỆU VÀ MỘT SỐ THUẬT TOÁN CƠ BẢN

3.1 Đị h ghĩa về phân l p dữ li u

Phân lớp dữ liệu là một nhánh nhỏ của học có giám sát (Supervised

Learning) với việc sử dụng dữ liệu đầu vào là một tập các mẫu dữ liệu huấn

luyện, với một nhãn phân lớp cho mỗi mẫu dữ liệu. Đầu ra là mô hình (bộ

phân lớp) dựa trên tập huấn luyện và những nhãn phân lớp, chúng đƣợc

dùng để dự đoán những nhãn phân lớp cho các bộ dữ liệu hay mẫu mới. Một

số thuật toán dùng trong bài toán phân lớp nhƣ: cây quyết định, mạng nơron,

Naive Bayes.

3.2 Các vấ đề quan tâm của phân l p dữ li u

3.2.1 Quá trình phân lớp dữ liệu:

Các bƣớc tiền xử lý dữ liệu sau đây giúp cải thiện độ chính xác, hiệu suất

và khả năng mở rộng của phân lớp.

- Làm sạch dữ liệu: Đây là quá trình thuộc về tiền xử lý dữ liệu để gỡ bỏ

hoặc làm giảm nhiễu và cách xử lý các giá trị khuyết. Các bƣớc này giúp làm

giảm sự mập mờ khi học:

 Bỏ qua các bộ: Điều này thƣờng đƣợc thực hiện khi thông tin nhãn

dữ liệu bị mất. Phƣơng pháp này không phải lúc nào cũng hiệu quả trừ khi

các bộ có chứa một số thuộc tính không thực sự quan trọng.

 Điền vào các giá trị thiếu bằng tay: Phƣơng pháp này thƣờng tốn

thời gian và có thể không khả thi cho một tập dữ liệu nguồn lớn với nhiều

giá trị bị thiếu.

 Sử dụng các giá trị quy ƣớc để điền vào cho giá trị thiếu: Thay thế

các giá trị thuộc tính thiếu bởi cùng một hằng số quy ƣớc, chẳng hạn nhƣ

một nhãn ghi giá trị “Không biết” hoặc “∞”. Tuy vậy điều này cũng có thể

35

khiến cho chƣơng trình khai phá dữ liệu hiểu nhầm trong một số trƣờng hợp

và đƣa ra các kết luận không hợp lý.

 Sử dụng các thuộc tính có nghĩa để điền vào cho giá trị thiếu.

- Phân tích sự thích hợp: Nhiều thuộc tính trong dữ liệu có thể không

thích hợp hay không cần thiết để phân lớp. Vì vậy, chúng ta phải biết chọn ra

những đặt trƣng tốt (good feature) của dữ liệu, lƣợc bỏ những đặc trƣng

không tốt của dữ liệu, gây nhiễu (noise). Uớc lƣợng số chiều của dữ liệu bao

nhiêu là tốt hay nói cách khác là chọn bao nhiêu thuộc tính. Nếu số chiều quá

lớn gây khó khăn cho việc tính toán thì phải giảm số chiều của dữ liệu nhƣng

vẫn giữ đƣợc độ chính xác của dữ liệu . Trong học máy, bƣớc này gọi là trích

chọn đặc trƣng. Phép phân tích này giúp phân loại hiệu quả và nâng cao khả

năng mở rộng.

- Biến đổi dữ liệu: Dữ liệu có thể đƣợc tổng quát hoá tới các mức khái

niệm cao hơn. Điều này rất hữu ích cho các thuộc tính có giá trị liên tục. Ví

dụ, các giá trị số của thuộc tính thu nhập đƣợc tổng quát hoá sang các phạm

vi rời rạc nhƣ thấp, trung bình và cao. Tƣơng tự, các thuộc tính giá trị tên nhƣ

đường phố đƣợc tổng quát hoá tới khái niệm mức cao hơn nhƣ thành phố.

Nhờ đó các thao tác vào/ra trong quá trình học sẽ ít đi.

Dữ liệu cũng có thể đƣợc tiêu chuẩn hoá, đặc biệt khi các mạng nơron

hay các phƣơng pháp dùng phép đo khoảng cách trong bƣớc học. Tiêu chuẩn

hoá biến đổi theo tỷ lệ tất cả các giá trị của một thuộc tính cho trƣớc để chúng

rơi vào phạm vi chỉ định nhỏ nhƣ [-1.0,1.0] hay [0,1.0]. Chuẩn hóa là một

phần hữu ích của thuật toán phân lớp trong mạng noron, hoặc thuật toán tính

toán độ lệch sử dụng trong việc phân lớp hay nhóm cụm các phần tử liền kề.

Một số phƣơng pháp chuẩn hóa min-max, z-score, và thay đổi số chữ số phần

thập phân. Tuy nhiên điều này sẽ cản trở các thuộc tính có phạm vi ban đầu

36

lớn (nhƣ thu nhập) có nhiều ảnh hƣởng hơn đối với các thuộc tính có phạm vi

nhỏ hơn ban đầu (nhƣ các thuộc tính nhị phân).

3.2.2 So sánh các phương pháp phân lớp

Các phƣơng pháp phân lớp có thể đƣợc so sánh và đánh giá theo các tiêu

chí sau:

- Độ chính xác dự đoán: Dựa trên khả năng mô hình dự đoán đúng nhãn

lớp của dữ liệu mới.

- Tốc độ: Dựa trên các chi phí tính toán. Chi phí này bao gồm sinh và sử

dụng mô hình.

- Khả năng mở rộng: Dựa trên khả năng trình diễn hiệu quả của mô hình

đối với dữ liệu lớn.

- Khả năng diễn dịch: Dựa trên mức khả năng mà mô hình cung cấp để

hiểu thấu đáo dữ liệu.

3.3 Phân l p bằng cây quyết định

3.3.1 Khái niệm về cây quyết định

Cây quyết định (decision tree) là một phƣơng pháp rất mạnh và phổ biến

cho cả hai nhiệm vụ của khai phá dữ liệu là phân lớp và dự báo. Mặt khác,

cây quyết định còn có thể chuyển sang dạng biểu diễn tƣơng đƣơng dƣới dạng

tri thức là các luật If-Then.

Cây quyết định là cấu trúc biễu diễn dƣới dạng cây. Trong đó, mỗi nút

trong (internal node) biễu diễn một thuộc tính, nhánh (branch) biễu diễn giá

trị có thể có của thuộc tính, mỗi lá (leaf node) biểu diễn các lớp quyết định và

đỉnh trên cùng của cây gọi là gốc (root). Cây quyết định có thể đƣợc dùng để

phân lớp bằng cách xuất phát từ gốc của cây và di chuyển theo các nhánh cho

đến khi gặp nút lá. Trên cơ sở phân lớp này chúng ta có thể chuyển đổi về các

luật quyết định.

37

Cây quyết định đƣợc sử dụng để xây dựng một kế hoạch nhằm đạt đƣợc

mục tiêu mong muốn. Các cây quyết định đƣợc dùng để hỗ trợ quá trình ra

quyết định. Cây quyết định là một dạng đặc biệt của cấu trúc cây.

Tạo cây quyết định chính là quá trình phân tích cơ sở dữ liệu, phân lớp

và đƣa ra dự đoán. Cây quyết định đƣợc tạo thành bằng cách lần lƣợt chia (đệ

quy) một tập dữ liệu thành các tập dữ liệu con, mỗi tập con đƣợc tạo thành

chủ yếu từ các phần tử của cùng một lớp. Lựa chọn thuộc tính để tạo nhánh

thông qua Entropy và Gain.

Hầu hết các thuật toán sinh cây quyết định đều dựa trên tiếp cận top-

down trình bày sau đây, trong đó nó bắt đầu từ một tập các bộ huấn luyện và

các nhãn phân lớp của chúng. Tập huấn luyện đƣợc chia nhỏ một các đệ quy

thành các tập con trong quá trình cây đƣợc xây dựng.

Generate_decision_tree: Thuật toán sinh cây quyết định từ các bộ dữ

liệu huấn luyện của nguồn dữ liệu D.

Đầu vào:

- Nguồn dữ liệu D, trong đó có chứa các bộ dữ liệu huấn luyện và các

nhãn phân lớp.

- Attribute_list là danh sách các thuộc tính.

- Attribute_selection_method, một thủ tục để xác định tiêu chí phân chia

các bộ dữ liệu một các tốt nhất thành các lớp. Tiêu chí này bao gồm một

thuộc tính phân chia splitting_attribute, điểm chia split_point và tập phân chia

splitting_subset.

Đầu ra: Một cây quyết định

N i dung thu t toán:

1. Tạo nút N

2. If các bộ trong D đều có nhãn lớp C then

3. Trả về N thành một nút lá với nhãn lớp C

38

4. If danh sách thuộc tính attribute_list là rỗng then

5. Trả về N thành một nút là với nhãn là lớp chiếm đa số trong D

(Việc này thực hiện qua gọi hàm Attribute_selection_method(D,

attribute_list) để tìm ra tiêu chí phân chia tốt nhất splitting_criterion

và gán nhãn cho N tiêu chí đó)

6. If splitting_attribute là một giá trị rời rạc và có nhiều cách

chia then

7. Attribute_list = attribute_list – splitting_attribute // Loại bỏ

thuộc tính splitting_attribute

8. Foreach j insplitting_criterion

// Phân chia các bộ xây dựng cây cho các phân chia đó

9. Đặt Dj là tập các bộ trong D phù hợp với tiêu chí j

10. If Dj là rỗng then

11. Gắn nhãn cho nút N với nhãn phổ biến trong D

12. Else Gắn nút được trả về bởi hàm

Generate_decision_tree(Dj, attribute_list) cho nút N

13. Endfor

Return N

Học bằng cây quyết định cũng là một phƣơng pháp thông dụng trong

khai phá dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các

lá đại diện cho các phân lớp còn cành đại diện cho các kết hợp của các thuộc

tính dẫn tới phân lớp đó. Một cây quyết định có thể đƣợc học bằng cách chia

tập hợp nguồn thành các tập con dựa theo một kiểm tra giá trị thuộc tính. Quá

trình này đƣợc lặp lại một cách đệ qui cho mỗi tập con dẫn xuất. Quá trình đệ

qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách đƣợc nữa, hay

khi một phân lớp đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất.

39

Cây quyết định có thể đƣợc mô tả nhƣ là sự kết hợp của các kỹ thuật

toán học và tính toán nhằm hỗ trợ việc mô tả, phân lớp và tổng quát hóa một

tập dữ liệu cho trƣớc.

Dữ liệu đƣợc cho dƣới dạng các bản ghi có dạng: .

Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân

loại hay tổng quát hóa. là các biến sẽ giúp ta thực hiện công việc đó.

3.3.2 Ưu, nhược điểm của cây quyết định

So với các phƣơng pháp, cách thức khai phá dữ liệu khác, cây quyết định

là phƣơng pháp có nhiều ƣu điểm:

- Cây quyết định dễ hiểu. Khi nhìn vào mô hình cây quyết định có thể

hiểu đƣợc ngay và có thể nắm đƣợc cách xây dựng cây quyết định sau khi

đƣợc giải thích ngắn gọn.

- Việc chuẩn bị dữ liệu cho một cây quyết định là tƣơng đối đơn giản.

Các kỹ thuật khác thƣờng đòi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ

(dummy variable) và loại bỏ các giá trị rỗng.

- Cây quyết định có thể xử lý dữ liệu thuộc nhiều kiểu dữ liệu khác nhau,

có giá trị bằng số và dữ liệu có giá trị là tên thể loại. Các kỹ thuật khác thƣờng

chuyên để phân tích các bộ dữ liệu chỉ gồm một loại biến. Chẳng hạn, các luật

quan hệ chỉ có thể dùng cho các biến tên, trong khi mạng nơ-ron chỉ có thể

dùng cho các biến có giá trị bằng số.

- Cây quyết định là mô hình hộp trắng. Nó quan sát một tình huống cho

trƣớc và có thể dễ dàng giải thích các điều kiện của tình huống đó bằng logic

Boolean. Mạng nơ-ron là một ví dụ về mô hình hộp đen, do lời giải thích cho

kết quả quá phức tạp để có thể hiểu đƣợc.

- Có thể thẩm định, kiểm tra mô hình bằng các phƣơng pháp thống kê.

Nó làm cho ta có thể tin tƣởng vào mô hình, tin tƣởng và kết quả dự đoán của

mô hình.

40

Cây quyết định có khả năng xử lý tốt lƣợng dữ liệu lớn trong thời gian

ngắn, không đòi hỏi phần cứng máy tính quá mạnh. Phần lớn máy tính cá

nhân hiện nay đều có thể phân tích các lƣợng dữ liệu lớn trong một thời gian

đủ ngắn để giúp các nhà quản lý đƣa ra quyết định dựa trên phân tích từ cây

quyết định.

Nhƣợc điể :

- Đối với các tập dữ liệu có nhiều thuộc tính thì cây quyết định sẽ lớn

(về chiều sâu cả chiều ngang), vì vậy làm giảm độ dễ hiểu.

- Việc xếp hạng các thuộc tính để phân nhánh dựa vào lần phân nhánh

trƣớc đó và bỏ qua sự phụ thuộc lẫn nhau giữa các thuộc tính.

- Khi dùng độ lợi thông tin (Information Gain) để xác định thuộc tính

rẽ nhánh, các thuộc tính có nhiều giá trị thƣờng đƣợc ƣu tiên chọn.

3.3.3 M t số thu t t của c y quyết đị h

3.3.3.1 Thuật toán ID3.

Thuật toán ID3 (Interative Decision 3) đƣợc đề xuất bởi Quinlan trƣờng

đại học Syney năm 1979. Giải thuật quy nạp cây ID3 là một giải thuật học

đơn giản nhƣng tỏ ra thành công trong nhiều lĩnh vực.

ID3 biểu diễn các khái niệm (concept) ở dạng các cây quyết định

(decision tree). Biểu diễn này cho phép chúng ta xác định phân lớp của một

đối tƣợng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.

Nhƣ vậy, nhiệm vụ của giải thuật ID3 là học cây quyết định từ một tập

các ví dụ rèn luyện (training example) hay còn gọi là dữ liệu rèn luyện

(training data). Hay nói khác hơn, giải thuật có:

- Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mô tả

một tình huống, hay một đối tƣợng nào đó, và một giá trị phân lớp của nó.

41

- Đầu ra: Cây quyết định có khả năng phân lớp đúng đắn các ví dụ trong

tập dữ liệu rèn luyện, và hy vọng là phân lớp đúng cho cả các ví dụ chƣa gặp

trong tƣơng lai.

Giải thu t ID3 xây dựng cây quyết định theo giải thu t sau:

Function induce_tree (tập ví dụ, tập thuộc tính)

begin

if mọi ví dụ trong tập ví dụ đều nằm trong cùng một lớp then

return một nút lá được gán nhãn bởi lớp đó

elseif tập thuộc tính là rỗng then

return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong

tập ví dụ

else

begin

chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;

xóa P ra khỏi tập thuộc tính;

với mỗi giá trị V của P

begin

tạo một nhánh của cây gán nhãn V;

Đặt vào phân vùng V các ví dụ trong tập ví dụ có giá trị V tại

thuộc tính P;

Gọi induce_tree(phân vùng V, tập thuộc tính), gắn kết quả

vào nhánh V

end

end

end

ID3 xây dựng cây quyết định theo cách từ trên xuống. Lƣu ý rằng đối

với bất kỳ thuộc tính nào, chúng ta cũng có thể phân vùng tập hợp các ví dụ

42

rèn luyện thành những tập con tách rời, mà ở đó mọi ví dụ trong một phân

vùng (partition) có một giá trị chung cho thuộc tính đó. ID3 chọn một thuộc

tính để kiểm tra tại nút hiện tại của cây và dùng trắc nghiệm này để phân vùng

tập hợp các ví dụ; thuật toán khi đó xây dựng theo cách đệ quy một cây con

cho từng phân vùng. Việc này tiếp tục cho đến khi mọi thành viên của phân

vùng đều nằm trong cùng một lớp, lớp đó trở thành nút lá của cây.

Vì thứ tự của các trắc nghiệm là rất quan trọng đối với việc xây dựng

một cây quyết định đơn giản, ID3 phụ thuộc rất nhiều vào tiêu chuẩn chọn lựa

trắc nghiệm để làm gốc của cây.

Tìm kiếm không gian giả thuyết trong ID3

Giống nhƣ các phƣơng pháp học quy nạp khác, thuật toán ID3 cũng tìm

kiếm trong một không gian các giả thuyết một giả thuyết phù hợp với tập dữ

liệu huấn luyện. Không gian giả thuyết mà thuật toán ID3 tìm kiếm là một tập

hợp các cây quyết định có thể có. Thuật toán ID3 thực hiện một phép tìm

kiếm bắt đầu từ đơn giản đến phức tạp, theo giải thuật leo núi (hill climbing),

đi từ cây rỗng, sau đó dần dần xem xét các giả thuyết phức tạp hơn mà có thể

phân lớp đúng các ví dụ huấn luyện. Đại lƣợng đánh giá đƣợc dùng để hƣớng

dẫn tìm kiếm theo giải thuật leo núi ở đây là phép đo lƣợng thông tin thu

đƣợc.

Từ cách hình dung thuật toán ID3 nhƣ là một giải thuật tìm kiếm trong

không gian các giả thuyết, ta có một số nhận xét nhƣ sau:

- Không gian giả thuyết các cây quyết định của ID3 là một không gian

đầy đủ các cây quyết định trên các thuộc tính đã cho trong tập rèn luyện. Điều

này có nghĩa là không gian mà ID3 tìm kiếm chắc chắn có chứa cây quyết

định cần tìm.

43

- Trong khi tìm kiếm, ID3 chỉ duy trì một giả thuyết hiện tại. Vì vậy, giải

thuật này không có khả năng biểu diễn đƣợc tất cả các cây quyết định khác

nhau có khả năng phân lớp đúng dữ liệu hiện có.

- Giải thuật thuần ID3 không có khả năng quay lui trong khi tìm kiếm.

Vì vậy, nó có thể có những hạn chế giống nhƣ giải thuật leo núi, đó là hội tụ

về cực tiểu địa phƣơng.

- Vì ID3 sử dụng tất cả các ví dụ ở mỗi bƣớc để đƣa ra các quyết định

dựa trên thống kê, nên kết quả tìm kiếm của ID3 rất ít bị ảnh hƣởng bởi một

vài dữ liệu sai (hay dữ liệu nhiễu).

- Trong quá trình tìm kiếm, giải thuật ID3 có xu hƣớng chọn cây quyết định

ngắn hơn là những cây quyết định dài. Đây là tính chất thiên lệch quy nạp của

ID3.

Đ h gi hi u suất

Một cây quyết định tạo ra bởi ID3 đƣợc đánh giá là tốt khi nó có khả năng phân

lớp đúng đƣợc các trƣờng hợp hay ví dụ sẽ xảy ra trong tƣơng lai, hay cụ thể hơn là

có khả năng phân lớp đúng các khả năng không nằm trong tập dữ liệu rèn luyện.

Để đánh giá hiệu suất của một cây quyết định ngƣời ta thƣờng sử dụng một

tập ví dụ độc lập, tập này khác với tập dữ liệu rèn luyện, để đánh giá khả năng

phân lớp của cây trên các khả năng của tập này. Tập dữ liệu nhƣ thế gọi là tập

kiểm tra (validation set). Trong thực tế, tập dữ liệu sẵn có sẽ đƣợc chia thành hai

tập dữ liệu: tập huấn luyện thƣờng chiếm 2/3 số trƣờng hợp và tập kiểm tra

chiếm 1/3.

3.3.3.2 Thuật toán C4.5

C4.5[4] là sự kế thừa của của thuật toán học máy bằng cây quyết định

dựa trên nền tảng là kết quả nghiên cứu của Hunt và các cộng sự của ông

trong nửa cuối thập kỷ 50 và nửa đầu những năm 60 (Hunt 1962). Phiên bản

đầu tiên ra đời là ID3 (Quinlan, 1979)- 1 hệ thống đơn giản ban đầu chứa

44

khoảng 600 dòng lệnh Pascal, và tiếp theo là C4 (Quinlan 1987). Năm 1993,

J. Ross Quinlan đã kế thừa các kết quả đó phát triển thành C4.5 với 9000

dòng lệnh C chứa trong một đĩa mềm. Mặc dù đã có phiên bản phát triển từ

C4.5 là C5.0 - một hệ thống tạo ra lợi nhuận từ Rule Quest Research, nhƣng

nhiều tranh luận, nghiên cứu vẫn tập trung vào C4.5 vì mã nguồn của nó là

sẵn dùng.

Với những đặc điểm C4.5 là thuật toán phân lớp dữ liệu dựa trên cây

quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu

có kích thƣớc nhỏ. C4.5 sử dụng cơ chế lƣu trữ dữ liệu thƣờng trú trong bộ

nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ,

và cơ chế sắp xếp lại dữ liệu tại mỗi node trong quá trình phát triển cây quyết

định. C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dƣới

dạng một danh sách sắp xếp thứ tự các luật if-then (một dạng quy tắc phân

lớp dễ hiểu). Kỹ thuật này cho phép làm giảm bớt kích thƣớc tập luật và đơn

giản hóa các luật mà độ chính xác so với nhánh tƣơng ứng cây quyết định là

tƣơng đƣơng.

N i dung thu t toán:

Function C4.5(Tree)

1. ;

2. If< Kiểm tra các mẫu, nếu thuộc cùng một lớp hoặc có rất ít

mẫu khác lớp>then else ;

3. For Do ;

4.

giá trị Gain tốt nhất. Gọi N.test là thuộc tính có Gain lớn nhất>;

5. If Then

phép tách của N.test>;

6. For Do

45

(Tree’ được tách ra theo quy tắc:

- Nếu N.test là thuộc tính liên tục tách theo ngưỡng ở bước 5

- Nếu N.test là thuộc tính phân loại rời rạc tách theo các giá trị

của thuộc tính này);

7. If< Kiểm tra, nếu Tree’ rỗng>Then

N là nút lá>; Else

8.

đối với hàm C4.5(Tree’), với tập Tree’>;

9. ;

;

C4.5 dùng Gain - E tr y đ đ ựa chọ thu c tí h “tốt hất”.

Phần lớn các hệ thống đều cố gắng để tạo ra một cây càng nhỏ càng tốt,

vì những cây nhỏ hơn thì dễ hiểu hơn và dễ đạt đƣợc độ chính xác dự đoán

cao hơn. Do không thể đảm bảo đƣợc sự cực tiểu của cây quyết định, C4.5

dựa vào nghiên cứu tối ƣu hóa, và sự lựa chọn cách phân chia mà có độ đo

lựa chọn thuộc tính đạt giá trị cực đại.

Hai độ đo đƣợc sử dụng trong C4.5 là information gain và gain ratio.

RF(Cj,S) biểu diễn tần xuất (Relative Frequency) các case trong S thuộc về

lớp Cj.

Với |Sj|là kích thƣớc tập các case có giá trị phân lớp là Cj. |S| là kích

thƣớc tập dữ liệu huấn luyện.

Chỉ số thông tin cần thiết cho sự phân lớp: I(S) với S là tập cần xét sự

phân phối lớp đƣợc tính bằng:

46

Sau khi S đƣợc phân chia thành các tập con S1,S2,... ,St bởi Test B thì

information gain đƣợc tính bằng:

Test B sẽ đƣợc chọn nếu có G(S, B) đạt giá trị lớn nhất.

Tuy nhiên có một vấn đề khi sử dụng G(S, B) ƣu tiên test có số lƣợng

lớn kết quả, ví dụ G(S,B) đạt cực đại với test mà từng Si chỉ chứa một case

đơn. Tiêu chuẩn gain ratio giải quyết đƣợc vấn đề này bằng việc đƣa vào

thông tin tiềm năng (potential information) của bản thân mỗi phân hoạch.

Test B sẽ đƣợc chọn nếu tỉ số giá trị gain ratio = lớn nhất.

Trong mô hình phân lớp C4.5, có thể dùng một trong hai loại chỉ số

Information Gain hay Gain ratio để xác định thuộc tính tốt nhất. Trong đó

Gain ratio là lựa chọn mặc định.

C4.5 có cơ chế ri g tr g xử ý hữ g gi trị thiếu.

Giá trị thiếu của thuộc tính là hiện tƣợng phổ biến trong dữ liệu, có thể

do lỗi khi nhập các bản ghi vào cơ sở dữ liệu, cũng có thể do giá trị thuộc tính

đó đƣợc đánh giá là không cần thiết đối với case cụ thể.

Trong quá trình xây dựng cây từ tập dữ liệu huấn luyện S, B là test dựa

trên thuộc tính A với các giá trị đầu ra là b1, b2,..., bt . Tập S0 là tập con các

case trong S mà có giá trị thuộc tính A không biết và Si biểu diễn các case với

đầu ra là bi trong test B.

Khi đó độ đo information gain của test B giảm vì chúng ta không phân

đƣợc lớp nào từ các case trong S0.

47

Tƣơng ứng với G(S, B), P(S,B) cũng thay đổi:

Hai thay đổi này làm giảm giá trị của test liên quan đến thuộc tính có tỉ

lệ giá trị thiếu cao.

Nếu test B đƣợc chọn, C4.5 không tạo một nhánh riêng trên cây quyết

định cho S0. Thay vào đó, thuật toán có cơ chế phân chia các case trong S0 về

các tập con Sj là tập con mà có giá trị thuộc tính Test xác định theo trọng số

Chuyể đổi từ c y quyết đị h sa g u t.

Việc chuyển đổi từ cây quyết định sang luật dạng if-then tạo ra những

quy tắc phân lớp dễ hiểu, dễ áp dụng. Các mô hình phân lớp biểu diễn các

khái niệm dƣới dạng các luật đã đƣợc chứng minh là hữu ích trong nhiều lĩnh

vực khác nhau, với các đòi hỏi cả về độ chính xác và tính hiểu đƣợc của mô

hình phân lớp. Tuy nhiên, tài nguyên tính toán dùng cho việc tạo ra tập luật từ

dữ liệu huấn luyện có kích thƣớc lớn và nhiều giá trị sai là vô cùng lớn.

Giai đoạn chuyển đổi từ cây quyết định sang luật gồm 4 bƣớc:

- Cắt tỉa: Luật khởi tạo ban đầu là đƣờng đi từ gốc đến lá của cây quyết

định. Một quyết định có L lá thì tƣơng ứng tập luật sản xuất sẽ có L luật khởi

tạo. Từng điều kiện trong luật đƣợc xem xét và loại bỏ nếu không ảnh hƣởng

tới độ chính xác của luật đó. Sau đó, các luật đã đƣợc cắt tỉa đƣợc thêm vào

tập luật trùng với những luật đã có.

- Lựa chọ : Các luật đã cắt tỉa đƣợc nhóm lại theo giá trị phân lớp, tạo

nên các tập con chứa các luật theo lớp. Sẽ có k tập luật con nếu tập training có

k giá trị phân lớp. Từng tập con trên đƣợc xem xét để chọn ra một tập con các

luật mà tối ƣu hóa độ chính xác dự đoán của lớp gắn với tập luật đó.

- Sắ xế : Sắp xếp K tập luật đã tạo ra từ trên bƣớc theo tần số lỗi. Lớp

48

mặc định đƣợc tạo ra bằng cách xác định các case trong tập dữ liệu huấn

luyện không chứa tổng các luật hiện tại và chọn lớp phổ biến nhất trong các

case đó làm lớp mặc định.

- Ƣ c ƣợ g đ h gi : Tập luật đƣợc đem ƣớc lƣợng lại trên toàn bộ

dữ liệu huấn luyện nhằm mục đính xác định xem có luật nào làm giảm độ

chính xác của sự phân lớp. Nếu có, luật đó bị loại bỏ và quá trình ƣớc lƣợng

đƣợc lặp cho đến khi không thể cải tiến thêm.

Nh xét về thu t t C4.5

C4.5 là một thuật toán hiệu quả cho những tập dữ liệu vừa và nhỏ.

C4.5 có cơ chế sinh cây quyết định hiệu quả và chặt chẽ bằng việc sử

dụng độ đo lựa chọn thuộc tính tốt nhất là information gain. Các cơ chế xử

lý với giá trị lỗi, thiếu và chống “quá vừa” dữ liệu của C4.5 cùng với cơ chế

cắt tỉa cây đã tạo nên sức mạnh của C4.5. Thêm vào đó, mô hình phân lớp

C4.5 còn có phần chuyển đổi từ cây quyết định sang luật if- then, làm tăng

độ chính xác và tính dễ hiểu của kết quả phân lớp. Đây là tiện ích rất có ý

nghĩa đối với ngƣời sử dụng.

3.4 Phân l p bằng Bayesian

Bộ phân lớp Bayes có thể dự báo các xác suất là thành viên của lớp,

chẳng hạn xác suất mẫu cho trƣớc thuộc về một lớp xác định.

Định lý bayes

- X là mẫu dữ liệu chƣa biết nhãn lớp.

- H là giả thuyết sao cho X thuộc về lớp C.

- Ấn định xác suất hậu nghiệm posterior probability P(H|X) sao cho H

đúng khi cho trƣớc quan sát X (H conditioned on X).

- Giả sử thế giới các mẫu dữ liệu gồm trái cây, đƣợc mô tả bằng màu sắc

và hình dáng.

 Giả sử X là màu đỏ và tròn

49

 H là giả thuyết mà X là quả táo

 Thì P(H|X) phản ánh độ tin cậy X là quả táo khi biết trƣớc X có màu

đỏ và tròn

- P(X|H) là xác suất tiên nghiệm của X có điều kiện trên H.

- Khi có n giả thuyết

Phân l p Naive Bayesian

Naive Bayes Classification (NBC) là một thuật toán dựa trên định lý

Bayes về lý thuyết xác suất để đƣa ra các phán đoán cũng nhƣ phân lớp dữ

liệu dựa trên các dữ liệu đƣợc quan sát và thống kê. Naive Bayes

Classification là một trong những thuật toán đƣợc ứng dụng rất nhiều trong

các lĩnh vực Machine learning dùng để đƣa ra các dự đoán chính xác nhất dựa

trên một tập dữ liệu đã đƣợc thu thập, vì nó khá dễ hiểu và độ chính xác cao.

- Mỗi mẫu dữ liệu đƣợc biểu diễn bằng X= (x1, x2,…, xn) với các thuộc

tính A1, A2,…, An

- Các lớp C1, C2, …, Cm. Cho trƣớc mẫu chƣa biết X. NBC gán X vào Ci

nếu P(Ci|X) > P(Cj|X) với 1  j  m, j  i. Do vậy, chúng ta cực đại

P(Ci|X). Lớp Ci sao cho P(Ci|X) là cực đại đƣợc gọi là giả thuyết hậu

nghiệm cực đại (maximum posterior hypothesis).

Theo định lý Bayes ta có công thức sau :

50

- Để phân lớp mẫu chƣa biết X, ta tính P(X|Ci) P(Ci) cho từng Ci. Sau đó

mẫu X đƣợc gán vào Ci nếu P(Ci|X) > P(Cj|X) for 1  j  m, j  i

- Nói cách khác, NBC gán X vào lớp Ci sao cho P(X|Ci) P(Ci) là cực đại.

Thu t t Naive Bayes C assificati đƣợc áp dụng vào các loại

ứng dụng sau:

- Real time Prediction: NBC chạy khá nhanh nên nó thích hợp áp

dụng ứng dụng nhiều vào các ứng dụng chạy thời gian thực, nhƣ hệ thống

cảnh báo, các hệ thống trading.

- Multi class Prediction: Nhờ vào định lý Bayes mở rộng ta có thể ứng

dụng vào các loại ứng dụng đa dự đoán, tức là ứng dụng có thể dự đoán nhiều

giả thuyết mục tiêu.

- Text classification/ Spam Filtering/ Sentiment Analysis: NBC cũng rất

thích hợp cho các hệ thống phân loại văn bản hay ngôn ngữ tự nhiên vì tính

chính xác của nó lớn hơn các thuật toán khác. Ngoài ra các hệ thống chống

thƣ rác cũng rất ƣu chuộng thuật toán này. Và các hệ thống phân tích tâm lý

thị trƣờng cũng áp dụng NBC để tiến hành phân tích tâm lý ngƣời dùng ƣu

chuộng hay không ƣu chuộng các loại sản phẩm nào từ việc phân tích các thói

quen và hành động của khách hàng.

- Recommendation System: Naive Bayes Classifier và Collaborative

Filtering đƣợc sử dụng rất nhiều để xây dựng cả hệ thống gợi ý, ví dụ nhƣ

xuất hiện các quảng cáo mà ngƣời dùng đang quan tâm nhiều nhất từ việc học

hỏi thói quen sử dụng internet của ngƣời dùng, hoặc nhƣ ví dụ đƣa ra gợi ý

các bài hát tiếp theo mà có vẻ ngƣời dùng sẽ thích trong một ứng dụng nghe

nhạc.

51

3.5 Phân l p dựa trên sự kết hợp

3.5.1 Các khái ni m quan trọng về lu t kết hợp

Khái niệm luật kết hợp đƣợc phát biểu lần đầu tiên bởi R. Agrawal [5]

đã đƣa ra một định nghĩa về luật kết hợp nhƣ sau:

Định nghĩa: Cho tập I = {i1,i2, … ,in} là tập n thuộc tính nhị phân gọi là

các phần tử (item). Cho D = {t1,t2, … ,tm} là tập các giao tác gọi là cơ sở dữ

liệu. Mỗi giao tác trong D có một ID duy nhất và chứa tập các mục trong I.

Một luật được định nghĩa sự kéo theo có dạng X  Y trong đó X,Y  I và X 

Y = . Tập các mục gọi là tập mục (itemset) X gọi là phần mệnh đề điều kiện

và Y gọi là mệnh đề kết quả của luật tương ứng.

Để chọn ra các luật có ích từ tập các luật có thể có, ta cần ràng buộc

những số đo đảm bảo ý nghĩa. Hai ràng buộc đƣợc xem là quan trọng nhất, đó

là giá trị độ hỗ trợ và độ tin cậy tối thiểu.

Độ hỗ trợ của một luật kết hợp XY là tỷ lệ giữa số lƣợng các bản ghi

chứa tập hợp XY, so với tổng số các bản ghi trong D. Ký hiệu supp (XY).

Ví dụ, độ hỗ trợ của luật X =>Y là 5% có nghĩa là 5% các giao dịch X và Y

đƣợc mua cùng nhau.

Công thức để tính độ hỗ trợ của luật X =>Y nhƣ sau:

Độ tin cậy (minimum confident) đƣợc định nghĩa nhƣ sau: Độ tin cậy

của luật X  Y là xác suất xuất hiện Y với điều kiện X trong tất cả các giao

tác. Ví dụ độ tin cậy của luật kết hợp {Quả bóng } => Giày} là 90% có nghĩa

là 90% khách hàng mua Quả bóng cũng mua Giày

Để thu đƣợc các luật kết hợp ta có 2 bƣớc sau:

52

- Bước 1: giá trị độ hỗ trợ tối thiệu đƣợc áp dụng để tìm ra các tập mục

xuất hiện thƣờng xuyên trong cơ sở dữ liệu.

- Bước 2: là từ những tập này, áp dụng giá trị độ tin cậy tối thiệu để

tạo ra luật.

3.5.2 M t số thu t toán về lu t kết hợp

3.5.2.1. Thuật toán Apriori

Thuật toán do Agrawal đƣa ra năm 1994, là một thuật toán điển hình áp

dụng trong khai phá luật kết hợp. Thuật toán dựa trên nguyên lý Apriori “tập

con bất kỳ của một tập phổ biến cũng là một tập phổ biến”. Mục đích của thuật

toán Apriori là tìm ra đƣợc tất cả các tập phổ biến có thể có trong cơ sở dữ liệu

giao dịch D. Thuật toán hoạt động theo nguyên tắc quy hoạch động, nghĩa là từ

các tập Fi = { ci | ci là tập phổ biến, |ci| = 1} gồm mọi tập mục phổ biến có độ

dài i (1 ≤ i ≤ k), đi tìm tập Fk+1 gồm mọi tập mục phổ biến có độ dài k+1. Các

mục i1, i2,…, in trong thuật toán đƣợc sắp xếp theo một thứ tự cố định.

Nội dung thuật toán:

Input: Cơ sở dữ liệu giao dịch D = {t1, t2,…, tm}.

Ngƣỡng tối thiểu minsup > 0.

Output: Tập hợp tất cả các tập phổ biến.

L1 = { tập 1 mục thƣờng xuyên }

for (k=2; Lk-1 <> Ø; k++)

begin

Ck = apriori-gen(Lk-1); // Sinh ra các ứng viên mới Ck từ tập Lk-1

for all tất cả giao tác t  D

begin

Ct = subset (Ck, t)//Chỉ lấy các ứng viên thuộc t

for all ứng viên c  Ct c.count++

end;

53

Lk = {c  Ct | c.count  minSup}

//chỉ lấy những ứng viên đủ điều kiện để xét cho bƣớc sau

End.

Tr g đó:

Hàm apriori-gen(Lk-1)

Trả kết quả là tập cha của tất cả các tập có k mục

Bƣớc 1: chọn 2 tập mục p, q từ tập Lk-1 mục.

- Nếu (k-2) mục của p và q giống nhau, thì ta tạo một ứng viên c mới từ p

và q,

- Ứng viên c này sẽ gồm (k-2) mục giống nhau và 2 mục khác nhau từ p

và q.

Bƣớc 2: bỏ bớt một số tập con ck-1 nếu c không nằm trong Lk-1.

Hàm Subset (Ck, t)

Các bƣớc thực hiện nhƣ sau:

Bƣớc 1: tạo ra một cây băm cho Ck

- Thêm tập mục c

 Đi từ gốc đế khi gặp nút lá

 Tại các nút trong không gian với độ sâu d, chọn nhánh để đi tiếp,

áp dụng hàm băm cho mục thứ d của c.

- Tất cả các nút băm đƣợc tạo ban đầu đƣợc xem nhƣ một cây.

- Một lá có thể chuyển thành nút trung gian khi số lƣợng nút tăng lên.

Bƣớc 2: Sau khi xây dựng cây băm Ck, hàm subset sẽ tìm các ứng viên

thuộc t nhƣ sau:

- Tại nút lá, tìm tập mục mà giao tác t chứa.

- Tại nút trung gian, khi sắp đến nút I, ta sẽ xem I có thuộc t hay không,

và đi theo nhánh tƣơng ứng.

- Tại nút gốc, tìm tất cả các mục thuộc t.

54

Ứng dụng của thu t toán Apriori

Sau khi đã biết thuật toán Apriori hoạt động thế nào, giờ chúng ta sẽ tìm

hiểu nó dùng để làm gì và dùng nó nhƣ thế nào :3

Dù g để làm gì?

Việc thuật toán Apriori có thể làm là nhìn vào quá khứ và khẳng định

rằng nếu một việc gì đó xảy ra thì sẽ có tỉ lệ bao nhiêu phần trăm sự việc tiếp

theo sẽ xảy ra. Nó giống nhƣ nhìn vào quá khứ để dự đoán tƣơng lại vậy, và

việc này rất có ít cho các nhà kinh doanh. Ví dụ một siêu thị muốn nghĩ cách

sắp xếp các gian hàng một cách hợp lí nhất, họ có thể nhìn vào lịch sử mua

hàng và sắp sếp các tập sản phẩm thƣờng đƣợc mua cùng nhau vào một chỗ.

Hoặc một trang web tin tức muốn giới thiệu cho ngƣời dùng các bài viết liên

quan đến nhau nhất, cũng có thể áp dụng quy luật tƣơng tự.

Đ h gi thu t toán:

Apriori là thuật toán đơn giản, dễ hiểu và dễ cài đặt.

Tuy nhiên hạn chế của thuật toán là:

˗ Phải duyệt cơ sở dữ liệu nhiều lần

˗ Số lƣợng lớn tập phổ biến đƣợc tạo ra làm gia tăng sự phức tạp không

gian.

˗ Thực hiện việc tính độ phổ biến nhiều, đơn điệu.

3.5.2.2. Thuật toán FP Growth

Thuật toán FP Growth (Frequent Pattern) ra đời vào tháng 5/2000 bởi

Jiawei Han, Jian pei và Yiwen Yin để tìm tập mục thƣờng xuyên bằng cách

không sinh các tập mục ứng viên từ các tập mục thƣờng xuyên trƣớc mà vẫn

hiệu quả bằng cách sử dụng ba kỹ thuật sau:

˗ Nén tập dữ liệu vào cấu trúc cây nhờ đó giảm chi phí cho toàn tập dữ

liệu dùng trong quá trình khai phá. Các mục không phổ biến đƣợc loại

bỏ sớm những vẫn đảm bảo kết quả khai phá không bị ảnh hƣởng.

55

˗ Khai thác phát triển tập các 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 ƣớc định, khởi tạo

FP-Tree của mẫu phụ thuộc, thực hiện khai phá đệ 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 ƣớc định.

˗ Tránh tạo ra các tập dự tuyển. Mỗi lần, giải thuật chỉ kiểm tra một

phần của tập dữ liệu.

Cây FP (còn gọi là FP-Tree) là cấu trúc dữ liệu dạng cây đƣợc tổ chức nhƣ

sau:

˗ Nút gốc đƣợc gán nhãn “null”

˗ Mỗi nút còn lại chứa các thông tin: item-name, count, node-link. Trong

đó:

 Item-name: Tên của mục mà nút đó đại diện.

 Count: Số giao dịch có chứa mẫu bao gồm các mục duyệt từ nút

gốc đến nút đang xét.

 Node-link: Chỉ đến nút kế tiếp trong cây (hoặc trỏ đến null nếu

nút đang xét là nút lá).

˗ Bảng Header có số dòng bằng số mục. Mỗi dòng chứa 3 thuộc tính:

item-name, item-count, node-link. Trong đó:

 Item-name: Tên của mục.

 Item-count: Tổng số biến count của tất cả các nút chứa mục đó.

 Node-link: Trỏ đến nút sau cùng đƣợc tạo ra để chứa mục đó

trong cây.

Thu t toán Xây dựng cây FP.

Input:

Cơ sở dữ liệu giao tác D

Giá trị .

56

Output: Cây FP của cơ sở dữ liệu giao tác.

Cách thực hiện:

Bƣớc 1: Duyệt D lần đầu để thu đƣợc tập F gồm các frequent item và

support count của chúng. Sắp xếp các item trong F theo trật tự giảm dần của

supprort count ta đƣợc danh sách FList.

Bƣớc 2: Tạo gốc của cây FP (kí hiệu T), gán nhãn là null. Tạo bảng

Header có |F| dòng và đặt tất cả các node –link chỉ đến null

Bƣớc 3: Quét từng giao tác Trans trong cơ sở dữ liệu, với mỗi giao tác t:

Chọn các items phổ biến trong t, sắp xếp dựa theo Flist. Gọi danh sách

này là [p|P], với p là item đầu tiên và P là các item còn lại.

Để khám phá các các mẫu phổ biến từ cây FP-Tree, ta sử dụng thủ tục

FP-Growth:

Input:

Cơ sở dữ liệu DB biểu diễn bằng cây FP, và Giá trị ngƣỡng support tối

thiểu ξ .

Output:

Tập hoàn chỉnh các mẫu phổ biến

Giải thuật: gọi FP-growth (FP-tree,null)

Procedure FP-Growth(Tree, α)

{

F = ϕ;

if Tree chỉ chứa một đường dẫn đơn P then

{

for each tổ hợp β của các nút trong P do

{

Phát sinh mẫu p = β ∪ α;

57

support_count(p) = min_sup các nút trong β;

F = F ∪ p;

}

}

else

for each ai in the header of Tree

{

Phát sinh mẫu β = ai∪ α;

support_count(β)=ai.support_count;

F = F ∪ β;

Xây dựng cơ sở có điều kiện của β;

Xây dựng FP-Tree có điều kiện Treeβ của β;

if (Treeβ != ϕ) thenCall FP_Growth(Treeβ, β);

}

}

Đ h gi thu t toán:

Nhƣợc điểm lớn nhất của giải thuật FP-Growth chính là việc xây dựng

cây FP khá phức tạp, đòi hỏi chi phí lớn về mặt thời gian và bộ nhớ. Tuy

nhiên một khi đã xây dựng xong cây FP thì việc khai phá các mẫu phổ biến lại

trở nên vô cùng hiệu quả.

3.6 Đ chính xác classifier

Đánh giá độ chính xác của bộ phân lớp rất quan trọng, bởi vì nó cho

phép dự đoán đƣợc độ chính xác của các kết quả phân lớp những dữ liệu

tƣơng lai. Độ chính xác còn giúp so sánh các mô hình phân lớp khác nhau.

Holdout và hợp lệ chéo k-fold là hai kỹ thuật phổ biến để đánh giá độ chính

xác classifier dựa trên các phân chia lấy mẫu ngẫu nhiên từ dữ liệu cho trƣớc.

58

Trong phƣơng pháp holdout, dữ liệu dƣa ra đƣợc phân chia ngẫu nhiên

thành 2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra. Thông thƣờng 2/3

dữ liệu cấp cho tập dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm định.

Việc đánh giá này là lạc quan bởi chỉ một phần dữ liệu ban đầu đƣợc

dùng để thu classifier. Lấy mẫu con ngẫu nhiên là một sự thay đổi của phƣơng

pháp holdout trong đó phƣơng pháp holdout đƣợc lặp lại k lần. Độ chính xác

classifier bằng giá trị trung bình của các độ chính xác có đƣợc từ mỗi lần lặp.

- Toàn bộ tập ví dụ D đƣợc chia thành 2 tập con không giao nhau

+ Tập huấn luyện D_train – để huấn luyện hệ thống.

+ Tập kiểm thử D_test – để đánh giá hiệu năng của hệ thống đã học

→ D = D_train ∪ D_test, và thƣờng là |D_train| >> |D_test| .

- Các yêu cầu:

+ Bất kỳ ví dụ nào thuộc vào tập kiểm thử D_test đều không đƣợc sử

dụng trong quá trình huấn luyện hệ thống.

+ Bất kỳ ví dụ nào đƣợc sử dụng trong giai đoạn huấn luyện hệ thống

đều không đƣợc sử dụng trong giai đoạn đánh giá hệ thống.

Các ví dụ kiểm thử trong D_test cho phép một đánh giá không thiên vị đối

với hiệu năng của hệ thống.

- Các lựa chọn thƣờng gặp: |D_train|=(2/3).|D|, |D_test|=(1/3).|D|

- Phù hợp khi ta có tập ví dụ D có kích thƣớc lớn.

Trong phƣơng pháp hợp lệ chéo K-fold dữ liệu ban đầu đƣợc phân chia

ngẫu nhiên vào trong k tập con riêng biệt ("các fold") S1,S2,...,Sk, chúng có

kích thƣớc xấp xỉ bằng nhau. Mỗi lần (trong số k lần) lặp, một tập con đƣợc

sử dụng làm tập kiểm thử, và (k-1) tập con còn lại đƣợc dùng để làm tập huấn

luyện. Tức là classifier của lần lặp đầu tiên đƣợc huấn luyện trên các tập con

S2,S3,...,Sk và đƣợc kiểm định trên S1; classifier của lần lặp thứ 2 đƣợc huấn

59

luyện trên các tập con S1,S3,...,Sk và đƣợc kiểm định trên S2, v.v... Các lựa

chọn thông thƣờng của k là 10 hoặc 5, phù hợp khi có tập ví dụ D vừa và nhỏ.

Độ chính xác classifier là toàn bộ số lƣợng các phân loại chính xác từ k

lần lặp chia cho tổng số lƣợng các mẫu trong dữ liệu ban đầu. Trong hợp lệ

chéo phân tầng, các fold đƣợc phân tầng để sự phân bố lớp của các mẫu trong

mỗi fold xấp xỉ nhƣ sự phân bố lớp trong dữ liệu ban đầu.

3.7 Kết lu n

Chƣơng này trình bày một số phƣơng pháp phân lớp dữ liệu phổ biến nhƣ

phân lớp bằng cây quyết định, phân lớp Bayesian, phân lớp dựa trên sự kết hợp

và độ chính xác classifier. Qua đó, ta có thể thấy đƣợc khả năng phân lớp của

từng phƣơng pháp cũng nhƣ khả năng áp dụng vào các bài toán thực tiễn.

60

CHƢƠNG 4

MỘT SỐ KẾT QUẢ THỬ NGHIỆM

4.1. Gi i thi u về công cụ phân cụm, phân l p dữ li u Weka

Weka là môi trƣờng thử nghiệm khai phá dữ liệu do các nhà khoa học

thuộc trƣờng Đại học Waitako, khởi xƣớng và đƣợc sự đóng góp của rất nhiều

nhà nghiên cứu khoa học trên thế giới. Weka là một bộ phần mềm mã nguồn

mở miễn phí, cung cấp công cụ để chuyển đổi các bộ dữ liệu nhƣ các thuật

toán để phân loại và lấy mẫu một cách trực quan cùng với các giao diện ngƣời

dùng đồ hoạ để dễ dàng thao tác các chức năng này. Weka còn cho phép các

giải thuật học mới phát triển có thể tích hợp vào môi trƣờng của nó. Hệ thống

đƣợc xây dựng bằng ngôn ngữ lập trình java, đƣợc tổ chức thành những thƣ

viện phục vụ cho khai phá dữ liệu và lĩnh vực học máy.

Weka cung cấp những tính năng chính sau:

- Bao gồm nhiều công cụ hữu ích để thay đổi tập dữ liệu, xử lý dữ liệu,

mô hình hoá dữ liệu.

- Đƣợc tổ chức theo dạng mã nguồn mở để ngƣời dùng dễ dowload và sử dụng.

- Kiến trúc dạng thƣ viện với hơn 600 lớp và đƣợc tổ chức thành 10 gói

(package) dễ dàng cho việc xây dựng các ứng dụng thực nghiệm.

- Độc lập với môi trƣờng do sử dụng máy ảo Java(JVM –Java virtual

machine).

- Giao diện đồ hoạ giúp ngƣời dùng dễ sử dụng.

- Môi trƣờng cho phép so sánh các giải thuật học máy và khai phá dữ liệu.

Weka cung cấp 5 môi trƣờng làm việc để hỗ trợ ngƣời dùng hai chức

năng chính là khai phá dữ liệu và thực nghiệm, đánh giá các mô hình học máy.

61

Hình 4. 1. Gia di chí h của hầ ề

- Explorer: Môi trƣờng cho phép tiến hành khai phá dữ liệu với nhiều

tính năng nhƣ tiền xử lý dữ liệu (Preprocess), phân lớp (Classify), phân cụm

(Cluster), khai thác luật kết hợp (Associate). Ngoài ra, phần mềm còn có thể

hỗ trợ lựa chọn thuộc tính (Select attributes) và mô hình hoá dữ liệu

(Visualize).

- Experimenter: Môi trƣờng cho phép thực nghiệm, so sánh, phân tích

các mô hình học máy.

- KnowledgeFlow: Môi trƣờng này hỗ trợ các tính năng tƣơng tự nhƣ

Explorer nhƣng với một giao diện kéo thả tƣợng trƣng cho các giải thuật và

dữ liệu để kết nối chúng lại với nhau và đƣa ra cấu trúc.

- Simple CLI: Với việc cung cấp giao diện dòng đơn giản cho phép trực

tiếp thực hiện các lệnh của phần mềm Weka cho các hệ điều hành không cung

cấp giao diện dòng lệnh riêng.

- Workbench: Đây là môi trƣờng với sự kết hợp của tất cả các môi

trƣờng nêu trên, ngƣời dùng không cần quay lại cửa sổ chính mà có thể

chuyển đổi qua lại giữa chúng với nhau.

62

4.2. Ứng dụng phân cụm dữ li u để phân nhóm khách hàng

Trong khuôn khổ luận văn, dữ liệu đƣợc lấy từ địa chỉ website:

https://github.com/bluenex/WekaLearningDataset

Dữ liệu dùng để phân cụm trong ví dụ này là dữ liệu dùng để phân loại

khách hàng của ngân hàng (file dữ liệu bank-k.aff), gồm có 11 thuộc tính và

600 khách hàng dƣới đây là cấu trúc và phân bố dữ liệu của bank-k.arff.

Bảng 4.1. Bảng thông tin cấu trúc của file dữ li u bank-k.arff

Thu c Kiểu dữ STT Giá trị Mô tả tính li u

Nominal 0_34,35_51,52_max Tuổi khách hàng 1.

Nominal FEMALE,MALE Giới tính 2. age sex

INER_CITY,TOWN, Nominal Khu vực cƣ trú 3. region RURAL, SUBURBAN

0_24386,24387_43758, income Nominal Thu nhập 4. 43759_max

Tình trạng hôn nhân 5.

Số con 6.

Nominal NO, YES Có xe hơi không? 7. married Nominal NO, YES children Nominal 0,1,2,3 car

KH có tài khoản tiết kiệm

8. save_act Nominal NO, YES không (saving account)

current_a Hiện tại có tài khoản Nominal NO, YES 9. ct không?

Có vay thế chấp không? 10. mortgage Nominal NO, YES

KH có kế hoạch trả nợ

Nominal NO, YES không (Personal Equity 11. pep

Plan)

63

Hình 4.2. Thông tin dữ li u cơ bản của file bank-k.arff hiển thị bởi Weka

Phần này tôi sẽ triển khai kỹ thuật phân cụm dựa trên thuật toán K-

means trên phần mềm Weka.

K-means là thuật toán đƣợc sử dụng phổ biến trong kỹ thuật phân cụm,

thuật toán với ý tƣởng là tìm cách nhóm các đối tƣợng đã cho vào K cụm (K

là số các cụm đƣợc xác định trƣớc, K nguyên dƣơng), phƣơng thức phân cụm

nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean nhỏ nhất giữa đối

tƣợng đến phần tử trung tâm của các cụm.

Thuật toán K-means bao gồm các bước cơ bản sau:

 B1: Chọn K tâm (centroid) cho K cụm (cluster), việc chọn giá trị

K có thể là ngẫu nhiên hoặc theo kinh nghiệm.

 B2: Tính khoảng cách giữa các đối tƣợng đến K tâm (dùng khoảng

cách Euclidean).

 B3: Nhóm các đối tƣợng vào nhóm gần nhất.

 B4: Cập nhật lại tâm mới cho các nhóm.

64

 B5: Lặp lại bƣớc 2 cho đến khi không còn sự thay đổi của các

Bắt đầu

Số cụm K

sai

Trọng tâm

đúng

Không có

Kết thúc

Tính khoảng cách các đối

đối tƣợng

tƣợng đến các tâm

Nhóm các đối tƣợng vào

các cụm

trọng tâm cụm.

Hình 4.3. Lƣu đồ thu t toán K-Means

Ở đây em sẽ dùng thuật toán K-means để phân nhóm các khách hàng vào

K nhóm (trong lần mô phỏng này thử K= 3 và K=5) dựa vào sự tƣơng tự

(similar) trên 11 thuộc tính của bảng dữ liệu, cách tính khoảng cách dùng

khoảng cách Euclidean.

65

Hình 4.4. Bảng tham số sử dụng cho thu t toán K-Means: Hình (a) K=3;

Hình (b): K=5

Kết quả thu đƣợc khi phân cụm bằng thuật toán K-means nhƣ sau:

V i K=3

66

Hình 4.5. Kết quả phân cụm v i thu t toán K-Means (K=3)

Nhƣ hiển thị ở Hình 4.5, thuật toán phân dữ liệu khách ở trên thành 3

cụm: cụm 0 chứa 287 bản ghi, tƣơng đƣơng 47,83%; cụm 1 chứa 177 bản ghi,

tƣơng đƣơng 29,50%; cụm 2 chứa 136 bản ghi, tƣơng đƣơng 22,67%.

V i K=5

67

Hình 4.6. Kết quả phân cụm v i thu t toán K-Means (K=5)

Giống như các thuật toán khác, K-means cũng có những hạn chế nhất định:

- Số nhóm K luôn phải xác định trƣớc.

- Việc khởi tạo phần tử trung tâm của nhóm ban đầu ảnh hƣởng đến sự

phân chia đối tƣợng vào nhóm trong trƣờng hợp dữ liệu không lớn.

- Điều kiện khởi tạo có ảnh hƣởng lớn đến kết quả. Điều kiện khởi tạo

khác nhau có thể cho ra kết quả phân vùng nhóm khác nhau.

- Không xác định đƣợc rõ ràng vùng của nhóm, cùng một đối tƣợng, nó

có thể đƣợc đƣa vào nhóm này hoặc nhóm khác khi dung lƣợng dữ liệu thay đổi.

- Không xác định đƣợc mức độ ảnh hƣởng của thuộc tính đến quá trình

tạo nhóm.

68

4.3. Ứng dụng phân l p dữ li u để phân l p

Trong lĩnh vực khai phá dữ liệu, mục đích của luật kết hợp là tìm ra các

mối kết hợp hay tƣơng quan giữa các đối tƣợng trong khối lƣợng lớn dữ liệu.

Ứng dụng của luật kết hợp rất phổ biến ở nhiều lĩnh vực nhất là trong kinh

doanh nhƣ Market Basket Analysis.

4.3.1. Phân lớp dữ liệu với thuật toán Apriori

Thuật toán Apriori đƣợc dùng để phát hiện các luật kết hợp dạng khẳng

định (Positive Rule X=Y) nhị phân (Binary Association) chứ không thể phát

hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳng hạn

nhƣ các kết hợp dạng “Khách hàng mua mặt hàng X thƣờng không mua mặt

hàng Y”.

Vẫn sử dụng dữ liệu bank-k.aff sau đây em sẽ sử dụng thuật toán Apriori

để phát hiện các luật kết hợp trên phần mềm Weka.

Chọn tab Association và chọn thuật toán Apriori.

Hình 4.7. Giao di n Weka chọn thu t toán Apriori

Thiết lập các tham số (numRules, support, confidence,…)

69

Hình 4.8. Giao di n Weka thiết l p tham số cho thu t toán Apriori

Giải thích các tham số chính đối với thuật toán Apriori.

LowerBoundMinSupport: Cận dƣới của minimum support

MetricType: Có 4 loại metricType là Confidence, Lift, Leverage,

Conviction.

Minium metric score: Chỉ quan tâm đến các luật có metric score cao hơn

giá trị này.

NumRuler: Số luật muốn tìm (Các luật sẽ sắp xếp theo thứ tự giảm dần

của metric score).

70

Hình 4.9. Kết quả sinh lu t bởi thu t toán Apriori

Nhƣ thể hiện ở Hình 4.9, 10 luật tốt nhất đƣợc sinh ra bởi thuật toán

Apriori trên dữ liệu nhƣ trên. Thông qua thuật toán, ta có thể dự đoán và biết

đƣợc độ tin cậy của khách hàng tham gia vào hệ thống ngân hàng. Ví dụ:

Luật số 1 cho biết rằng nếu thu nhập (income) lớn hơn hoặc bằng 43759

thì khách hàng có tài khoản tiết kiệm (save_act = YES) với độ tin cậy bằng 1.

Luật số 2 cho biết rằng nếu tuổi (age) lớn hơn hoặc bằng 52 và thu nhập

lớn hơn 43759 thì khách hàng có tài khoản tiết kiệm với độ tin cậy bằng 1.

Hạn chế của thuật toán Apriori.

- Số lƣợng lớn tập phổ biến đƣợc tạo ra làm gia tăng sự phức

tạp không gian.

- Để xác định độ Support của các tập ứng viên, thuật toán luôn

luôn phải quét lại toàn bộ cơ sở dữ liệu. Do vậy sẽ tiêu tốn rất nhiều

thời gian khi số k-iteams tăng.

71

- Khi số lần duyệt cơ sở dữ liệu nhiều làm gia tăng sự phức tạp

thời gian khi cơ sở dữ liệu gia tăng.

Do những hạn chế đó, một điều cần thiết phải đƣa ra một số thay đổi

trong thuật toán Apriori .

4.3.2. Phân lớp dữ liệu với thuật toán Naive Bayes

Tiếp tục sử dụng dữ liệu bank-k.aff, sau đây em sẽ sử dụng thuật toán

là Naive Bayes để phân lớp và dự đoán khả năng trả nợ của khách hàng

(pep=Yes: Có kế hoạch trả nợ; pep=NO: Chƣa có kế hoạch trả nợ).

Đầu tiên, tiến hành chọn thuật toán phân lớp dữ liệu Naive Bayes theo

nhƣ hình bên dƣới:

Hình 4.10. Giao di n Weka lựa chọn thu t toán Naive Bayes

72

Tiếp theo, tiến hành xây dựng mô hình phân lớp và đánh giá chéo 10-

fold với thuật toán Naive Bayes để dự đoán, ta thu đƣợc kết quả nhƣ hình

dƣới:

Hình 4.11. Kết quả sinh lu t bởi thu t toán Naive Bayes

Nhƣ kết quả thể hiện ở Hình 4.11 mô hình đạt độ chính xác 70,3%.

Thông qua mô hình này, ta có thể xây dựng đƣợc mô hình phân lớp dữ liệu

khách hàng để dự đoán cho một/hoặc 1 nhóm đối tƣợng khách hàng về tình

trạng/kế hoạch trả nợ, với tỷ lệ chính xác 70,3%. Đây cũng đƣợc coi là một cơ

sở quan trọng, có độ tin cậy chấp nhận đƣợc để giúp cho ngân hàng xây dựng

kế hoạch triển khai cung cấp/giải quyết các dịch vụ ngân hàng đối với khách

hàng.

73

4.3.3. Phân lớp dữ liệu với thuật toán C4.5

Vẫn sử dụng dữ liệu bank-k.arff, sau đây em sẽ sử dụng thuật toán

là C4.5 để phân lớp và dự đoán khả năng trả nợ của khách hàng (pep=Yes:

Có kế hoạch trả nợ; pep=NO: Chƣa có kế hoạch trả nợ), thuật toán C4.5 đƣợc

gọi là thuật toán j48 trong WEKA. C4.5 là một thuật toán đƣợc sử dụng để tạo

cây quyết định đƣợc phát triển bởi Ross Quinlan. C4.5 là phần mở rộng của

thuật toán ID3 trƣớc đó của Quinlan. Các cây quyết định đƣợc tạo bởi C4.5 có

thể đƣợc sử dụng để phân loại và vì lý do này, C4.5 thƣờng đƣợc gọi là phân

loại thống kê. Nó trở nên khá phổ biến sau khi xếp hạng là 1 trong 10 thuật

toán hàng đầu về khai thác dữ liệu.

Đầu tiên, tiến hành chọn thuật toán phân lớp dữ liệu C4.5 theo nhƣ hình

bên dƣới:

Hình 4.12. Giao di n Weka lựa chọn thu t toán C4.5

Tiếp theo, tiến hành xây dựng mô hình phân lớp và đánh giá chéo 10-

fold với thuật toán C4.5 để dự đoán, ta thu đƣợc kết quả nhƣ hình dƣới:

74

Hình 4.13. Kết quả sinh lu t bởi thu t toán C4.5

Nhƣ thể hiện Hình 4.13, mô hình đạt độ chính xác 85%. Có thể thấy thấy

đối với bộ dữ liệu bank-k.arff thuật toán C4.5 cho hiệu quả tốt hơn so với

thuật toán Naive Bayes.

75

KẾT LUẬN

Sau một thời gian làm việc, nghiên cứu dƣới sự hƣớng dẫn tận tình của

thầy giáo TS. Nguyễn Văn Núi, tôi đã đạt đƣợc các kết quả sau đây:

1. Trình bày đầy đủ và chi tiết các vấn đề liên quan đến khai phá dữ

liệu và phát hiện tri thức; các thuật toán phân cụm, phân lớp dữ liệu và ứng

dụng.

2. Giới thiệu và trình bày công cụ phần mềm Weka (Waikato

Environment for Knowledge Analysis) - một bộ phần mềm học

máy đƣợc Đại học Waikato, New Zealand phát triển bằng Java, ứng dụng

trong phân lớp, phân cụm dữ liệu.

3. Cài đặt, cấu hình phần mềm Weka và tiến hành phân cụm, phân lớp

dữ liệu thực hiện trong phân cụm, phân lớp dữ liệu khách hàng bank-k.arff.

Hƣ g h t triể của u vă :

Trong thời gian tới, tôi sẽ tiếp tục nghiên cứu sâu hơn về các vấn đề

của phân cụm, phân lớp dữ liệu, đặc biệt sẽ nghiên cứu tìm hiểu sâu hơn việc

ứng dụng phần mềm Weka để tiến hành phân tích dữ liệu ứng dụng trong các

lĩnh vực cụ thể nhƣ phân lớp, dự đoán dữ liệu khách hàng.

Tiến hành nghiên cứu thu thập bộ dữ liệu trong thực tế với số lƣợng lớn

hơn, tiến hành cài đặt module mã lệnh để tự động hóa quá trình khai phá dữ

liệu, phát hiện tri thức.

76

TÀI LIỆU THAM KHẢO

Tiếng Vi t:

[1]. Lê Văn Phùng, Quách Xuân Trƣởng (2012), Khai phá dữ

liệu, NXB Thông tin và truyền thông.

Tiếng Anh:

[2]. Anil K. Jain, Richard C. Dubes (1988), “Algorithms for

clustering data”, Published by Prentice Hall, Lebanon, Indiana, U.S.A.

[3]. Leonard Kaufman, Peter J. Rousseeuw (1990), “Finding

Groups in Data An Introduction to Cluster Analysis”, Publisher

by Wiley-Interscience.

[4]. J.Ross Quinlan (1993), “Programs for machine learning”,

Morgan Kaufmann Publishers Inc. San Francisco, CA, USA.

[5]. Rakesh Agrawal (1993),“Mining Association Rules Between

Sets of Items in Large Databases”, Publishers IBM Almaden Research

Center 650 Harry Road, San Jose.