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

Nghiên cứu một số thuật toán phân cụm, phân lớp dữ liệu và ứng dụng

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

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ên
cứu một số thuật toán phân cụm, phân lớp dữ liệu và ứng dụng” 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 đủ

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

5

BIRCH


Blanced Iterative Reducing
and Clustering using Hỉeachies

6

CF

Clustering Feature

Ghi chú

Thuật toán tích đống
lồng
Đặc trưng của phân
cụm

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

7

DBSCAN

8

OPTICS


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



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ự.
Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như:
-

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


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
quả hơn.
-

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

chúng.
-

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

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
chính .
-

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.
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.
-

D = {x1, x2,…,xn}

-

xi = (x i, x i,…, x i) mô tả m thuộc tính của phần tử thứ i.

1


2

m

Đầ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


×