i
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG
Phan Thị Thu Nga
NGHIÊN CỨU PHƢƠNG PHÁP PHÂN CỤM NỬA GIẢM
SÁT VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
Thái Nguyên, tháng 9 năm 2015
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
ii
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài với tiêu đề Nghiên cứu phương pháp phân cụm
nửa giám sát và ứng dụng là công trình nghiên cứu đƣợc tôi thực hiện dƣới sự
hƣớng dẫn của giáo viên hƣớng dẫn khoa học.
Các kết quả nghiên cứu và kết quả thử nghiệm nêu trong luận văn là trung
thực và chƣa từng đƣợc công bố trong bất kỳ tài liệu nào khác. Trong phần kiến
thức chung, nghiên cứu giải thuật áp dụng và một số thực nghiệm kết quả tƣơng
ứng tôi có tham khảo ở một số tài liệu và đã có trích dẫn đúng và đầy đủ.
Học viên
Phan Thị Thu Nga
MỤC LỤC
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
iii
LỜI CAM ĐOAN ............................................................................................. ii
LỜI MỞ ĐẦU ................................................................................................... 1
CHƢƠNG 1. TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN PHÂN CỤM,
PHÂN CỤM NỬA GIÁM SÁT........................................................................ 4
1.1 Khái niệm về trí tuệ nhân tạo và học máy .............................................. 4
1.2 Các nghiên cứu sử dụng trong học máy .................................................. 6
1.3 Ứng dụng của phƣơng pháp học máy ..................................................... 6
1.4 Khái niệm về bài toán phân cụm ............................................................. 7
1.5 Các yêu cầu của bài toán phân cụm ........................................................ 8
1.6 Các chiến lƣợc trong phƣơng pháp phân cụm dữ liệu [2]. ................... 11
1.8 Đánh giá kết quả của thuật toán phân cụm .......................................... 17
1.9 Phƣơng pháp phân cụm nửa giám sát ................................................... 17
CHƢƠNG 2. MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT .... 19
2.1. Giới thiệu bài toán phân cụm nửa giám sát ......................................... 19
2.2 Thuật toán phân cụm nửa giám sát với K-Means ................................. 21
2.2.1 Thuật toán K-Means....................................................................... 21
2.2.2. Thuật toán Seed K-Means ............................................................. 26
2.3 Thuật toán phân cụm nửa giám sát SSDBSCAN.................................. 27
2.3.1 Thuật toán DBSCAN ...................................................................... 27
2.3.2 Thuật toán SSDBSCAN .................................................................. 29
2.3.3 Thuật toán ActSSDBSCAN ............................................................. 32
2.4. Thuật toán phân cụm nửa giám sát Fuzzy C-Means ............................ 37
2.4.1 Thuật toán Fuzzy C-Means ............................................................ 37
2.4.2 Thuật toán Seed Fuzzy C-means .................................................... 40
CHƢƠNG 3. ỨNG DỤNG THUẬT TOÁN PHÂN CỤM TRONG LĨNH VỰC
XỬ LÝ ẢNH ................................................................................................... 43
3.1 Giới thiệu tổng quan .............................................................................. 43
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
iv
3.2 Phân vùng ảnh (Image segmentation) sử dụng Fuzzy C-Means .......... 43
3.2.1 Tóm lược về vấn đề xử lý ảnh số (Digital Image Processing) ....... 43
3.2.2 Lập trình và thử nghiệm ................................................................. 45
3.3 Phân cụm ảnh với thuật toán SSDBSCAN ........................................... 53
3.3.1 Dữ liệu ............................................................................................ 53
3.3.2 Kết quả ........................................................................................... 55
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 58
Những kết quả đã đạt đƣợc ................................................................. 58
Hƣớng phát triển của đề tài ................................................................ 58
PHỤ LỤC ........................................................................................................ 60
TÀI LIỆU THAM KHẢO ............................................................................... 63
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
v
DANH MỤC CÁC HÌNH
Số hiệu
Tên hình
Trang
Các mô hình của học máy
5
hình
Hình 1.1
Ví dụ về dữ liệu của bài toán phân cụm: hình bên trái bao
Hình 1.2 gồm 3 cụm rời nhau tuyến tính trong khi hình bên phải có
8
các cụm hình dạng bất kỳ và không tuyến tính
Hình 1.3
Hình 1.4
Một số ví dụ về phân đoạn ảnh sử dụng clustering
Ứng dụng clustering trong việc phát hiện những
vùng bị hỏng trên trái cây
14
15
Hình 1.5
Bài toán phân cụm
17
Hình 1.6
Bài toán phân cụm nửa giám sát
17
Minh họa thuật toán K-Means: Sự phụ thuộc vào
Hình 2.1
trọng tâm tại bƣớc khởi tạo dẫn đến các kết quả khác
22
nhau sau mỗi lần chạy
Hình 2.2
Hình 2.3
Dữ liệu (với 9 cụm) mà K-Means không thể phát
hiện chính xác các cụm
Minh họa các bƣớc của thuật toán hierarchical
clustering
22
24
Quá trình xây dựng cluster của DBSCAN: Các hình
Hình 2.4
cầu bán kính ɛ và chứa ít nhất MinPts điểm sẽ đƣợc kết
26
nối để tạo ra các cluster
Hình 2.5
Minh họa thuật toán Fuzzy C-Means với 4 cụm
Số hóa bởi Trung tâm Học liệu - ĐHTN
30
/>
vi
(a) Các điểm tƣơng ứng với tập dữ liệu đầu vào, các
seed (các dữ liệu đã đƣợc gán nhãn) tƣơng ứng là các điểm
Hình 2.6
ký hiệu bởi các dấu cộng, dấu nhân, và dấu sao.
(b) các ràng buộc (constraint) must-link và cannotlink đƣợc biểu diễn tƣơng ứng bằng các đoạn thẳng nét
31
liền và nét đứt.
Hình 2.7
Bảng 2.1
Hình 2.8
Hình 2.9
Hình 3.1
Hình 3.2
Quá trình xây dựng cluster của SSDBSCAN
33
Các tập dữ liệu sử dụng (n: số phần tử cần clustering, m:
số thuộc tính, và k là số cluster)
Kết quả thực nghiệm của thuật toán ActSSDBSCAN và
SSDBSCAN
Kết quả thực nghiệm của thuật toán SECM
Tổng quan về hệ thống xử lý ảnh trên máy tính [5]
Ảnh gốc (a) và các vùng (màu sáng) đƣợc phân tách
bới thuật toán Fuzzy C-means
38
40
43
46
48
Hình 3.3
Các cụm phân tách từ thuật toán Fuzzy C-means
50
Hình 3.4
Phân tách vùng với 2 cụm khác nhau
50
Hình 3.5
Ví dụ về phân vùng ảnh cây cối
52
Hình 3.6
Ví dụ về phân vùng ảnh động vật
55
Hình 3.7
Dữ liệu lấy từ trang UCI
56
Hình 3.8
Kết quả với tập dữ liệu image210
57
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
vii
Hình 3.9
Kết quả với tập dữ liệu image300
58
Hình 3.10
Kết quả với tập dữ liệu image420
58
Hình 3.11
Kết quả với tập dữ liệu image560
59
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>
1
LỜI MỞ ĐẦU
1. Lí do chọn đề tài
Công nghệ thông tin là một lĩnh vực quan trọng trong sự phát triển của
xã hội trên toàn thế giới. Những ứng dụng của công nghệ thông tin (CNTT)
có thể gặp bất kỳ nơi đâu, trong lĩnh vực gì. Từ những năm 50 của thế kỷ 20,
Liên Xô đã phóng thành công tàu vũ trụ, để thực hiện đƣợc điều này thì rõ
ràng cần đến các chƣơng trình máy tính và phần mềm. Những năm 60 nƣớc
Mỹ đã có hệ thống mạng máy tính phục vụ cho quốc phòng và an ninh cũng
nhƣ các lĩnh vực trọng yếu. Mạng Internet ra đời đã kết nối toàn thế giới và
mạng lại hiệu quả vô cùng lớn cho nhân loại. Ngày nay sự phát triển về
CNTT đã là toàn cầu hóa, tất cả các quốc gia đều coi việc phát triển lĩnh vực
này là mũi nhọn là công cụ để thúc đẩy sự phát triển. Tất cả các hệ thống tinh
vi hiện đại nhất nhƣ tàu vũ trụ, máy bay, tàu ngầm, ô tô, ngƣời máy đều có
hạt nhân quan trọng là CNTT.
Trí tuệ nhân tạo là một hƣớng nghiên cứu của lĩnh vực CNTT và Khoa
học máy tính nhằm phát triển các hệ thống thông minh giải quyết các bài toán
trong thực tế giống nhƣ hoạt động của bộ não ngƣời. Trí tuệ nhân tạo đƣợc
bắt đầu nghiên cứu từ những năm 50 của thế kỷ 20 và trong khoảng 30 năm
trở lại đây đã đƣợc cộng đồng các nhà khoa học quan tâm mạnh mẽ. Rất
nhiều các hội thảo lớn đƣợc tổ chức hàng năm tại Mỹ cũng nhƣ trên thế giới.
Các ứng dụng tiêu biểu của trí tuệ nhân tạo vào đời sống xã hội bao gồm:
ngƣời máy, robot, xử lý ngôn ngữ tự nhiên, nhận dạng, phát hiện dị thƣờng,
an ninh quốc phòng, tin sinh học, khoa học vũ trụ và trái đất…
Trong khuôn khổ luận văn Thạc sỹ của mình, qua việc đƣợc trang bị
các môn học lý thuyết nhƣ thuật toán, xử lý ảnh, trí tuệ nhân tạo,… tôi đã lựa
2
chọn đề tài Nghiên cứu phương pháp phân cụm nửa giám sát và ứng dụng.
Chủ đề phân cụm dữ liệu là một nhánh nhỏ nằm trong lĩnh vực học máy
(machine learning) của trí tuệ nhân tạo nhằm nghiên cứu và ứng dụng bài
toán phân cụm trong thực tế. Hơn nữa phân cụm có giám sát là một hƣớng đi
tốt trong khoảng 10 năm trở lại đây và đã chứng minh tính ƣu việt của nó.
2. Đối tƣợng và phạm vi nghiên cứu
2.1. Đối tượng nghiên cứu
Vấn đề phân cụm dữ liệu (clustering), phân cụm nửa giám sát (semisupervised clustering).
2.2. Phạm vi nghiên cứu
- Lý thuyết: Nghiên cứu các thuật toán cơ bản về phân cụm dữ liệu và
phân cụm nửa giám sát.
- Thực nghiệm: Lập trình trên ngôn ngữ C# cho ứng dụng phân vùng
ảnh và phân cụm ảnh.
3. Phƣơng pháp nghiên cứu.
- Phƣơng pháp nghiên cứu khoa học và suy luận logic.
- Phƣơng pháp nghiên cứu mô tả, giải thích, giải pháp.
4. Ý nghĩa khoa học và thực tiễn của đề tài.
- Về khoa học
Nghiên cứu các thuật toán phân cụm và phân cụm nửa giám sát, đánh giá
ƣu, nhƣợc điểm và giải thích kết quả đạt đƣợc của từng phƣơng pháp
3
- Về thực tiễn
Ứng dụng thuật toán phân cụm vào bài toán phân vùng ảnh và phân cụm
ảnh từ đó rút ra các nhận xét, đánh giá vào thực tiễn.
5. Cấu trúc của luận văn
Chương 1: Giới thiệu tổng quan về học máy và bài toán phân cụm dữ
liệu và phân cụm dữ liệu nửa giám sát.
Chương 2: Trình bày một số thuật toán phân cụm dữ liệu cơ bản, thuật
toán phân cụm nửa giám sát cũng nhƣ đánh giá ƣu nhƣợc điểm của mỗi thuật
toán.
Chương 3: Cài đặt thử nghiệm hai ứng dụng của bài toán phân cụm bao
gồm bài toán phân vùng ảnh và bài toán phân cụm ảnh.
Tóm lƣợc các kết quả đã thực hiện đƣợc và đề ra hƣớng phát triển tiếp
theo của đề tài.
4
CHƢƠNG 1. TỔNG QUAN VỀ HỌC MÁY VÀ BÀI TOÁN PHÂN
CỤM, PHÂN CỤM NỬA GIÁM SÁT
1.1 Khái niệm về trí tuệ nhân tạo và học máy
Trí tuệ nhân tạo là lĩnh vực nhằm nghiên cứu và phát triển các hệ thống
(phần mềm, phần mềm nhúng) có khả năng giải quyết các bài toán giống nhƣ
cách thức giải quyết của con ngƣời. Theo [6], một hệ thống trí tuệ nhân tạo có
thể có một hoặc một số khả năng nhƣ: suy nghĩ, lập luận, cảm nhận, quyết
định, học, điều khiển, nhận dạng,… Các hệ thống trí tuệ nhân tạo bắt đầu
đƣợc nghiên cứu từ những năm 1956 của thể kỷ 20 với các nghiên cứu tại
Stanford về mạng nơ ron, lý thuyết tự động của John MacCarthy [6].
Học máy (machine learning) là một lĩnh vực của trí tuệ nhân tạo nghiên
cứu phát triển các phần mềm dùng cho máy tính hoặc hệ thống máy tính có
thể giải quyết các tình huống cụ thể hoặc nhận dạng ra các mẫu giống nhƣ con
ngƣời. Máy tính hoặc hệ thống máy tính ở đây hiểu rằng là bất kỳ hệ thống
nào mà có thể nạp và sử dụng phần mềm để thực hiện trên nó.
Trong lĩnh vực học máy hiện nay có ba phƣơng pháp học cơ bản bao
gồm: học có giám sát, học nửa giám sát và học không giám sát.
Ý tƣởng cơ bản của học có giám sát có thể hiểu nhƣ chúng ta cung cấp
một số mẫu (ví dụ dữ liệu, hình ảnh, đồ vật đã gán nhãn) cho hệ thống học và
sau đó thiết kế phát triển các hệ thống có thể suy diễn hay nhận biết mẫu mới
nằm trong phạm vi nó đã đƣợc học.
Học nửa giám sát khác với học có giám sát là các thuật toán dạng này chỉ
sử dụng một lƣợng nhỏ các mẫu (các dữ liệu đã gán nhãn) để học và suy luận
ra các dữ liệu chƣa gán nhãn.
5
Học không giám sát không dùng bất kỳ dữ liệu gán nhãn nào mà chỉ sử
dụng các dữ liệu không có nhãn để thực hiện yêu cầu nào đó chẳng hạn nhƣ
phân cụm các dữ liệu hay phát hiện các dị thƣờng trong dữ liệu hay ngoại suy.
Hình 1.1 minh họa các bài toán học máy tƣơng ứng.
(a) – Học có giám sát
( c)- Học nửa giám sát
(b) – Học nửa giám sát
(d)- Học không giám sát
Hình 1.1 Các mô hình của học máy
6
1.2 Các nghiên cứu sử dụng trong học máy
Học máy kế thừa thành tựu của nhiều lĩnh vực khoa học. Sau đây là một
số lĩnh vực và ý tƣởng chính ảnh hƣởng tới học máy:
Lý thuyết về trí tuệ nhân tạo: là một lĩnh vực của trí tuệ nhân tạo nên học
máy dùng các khái niệm nhƣ: bài toán tìm kiếm, biểu diễn và xử lý tri thức,
sử dụng tri thức và suy diễn,…
Lý thuyết độ phức tạp tính toán: tính độ phức tạp của các nhiệm vụ học
đo qua các ví dụ đào tạo, số lỗi và các tính toán...
Lý thuyết điều khiển: các thủ tục học để điều khiển quá trình nhằm tối ƣu
hoá mục đích định trƣớc hay học cách đoán các trạng thái tiếp theo của quá
trình điều khiển.
Lý thuyết thông tin: các độ đo của nội dung thông tin và entropy, mã tối
ƣu và quan hệ của chúng tới dãy đào tạo tối ƣu để mã hoá một giả thuyết.
Triết học: những nguyên lý nhƣ Occam's razor (cho rằng giả thuyết đơn
giản nhất là tôt nhất, các phân tích luận chứng để tổng quát hoá các dữ liệu
quan sát đƣợc.
Tâm lý học và thần kinh học: các đáp ứng thực tế của con ngƣời, các mô
hình neural.
Thống kê: đặc trƣng lỗi, lý thuyết lấy mẫu, khoảng tin cậy
1.3 Ứng dụng của phƣơng pháp học máy
- Xử lí ngôn ngữ tự nhiên (Natural Language Processing): xử lí văn bản,
giao tiếp ngƣời – máy...
- Nhận dạng (Patten recognition): nhận dạng tiếng nói, chữ viết tay, vân
tay, thị giác máy
7
- Máy tìm kiếm nhƣ Google, Yahoo, You tube: các hệ thống này sử dụng
các công cụ của học máy để phát triển hệ thống
- Chẩn đoán trong y tế: trợ giúp phân tích ảnh X - quang, các hệ chuyên
gia chẩn đoán tự động
- Tin sinh học: phân loại và dự đoán chuỗi gene, dự đoán tính chất của
thuốc mới
- Thiên văn học và trái đất
- Phát hiện gian lận tài chính, gian lận thẻ tín dụng
- Phân tích thị trƣờng chứng khoán (stock market analysis)
- Trò chơi: chơi cờ (Deep blue, IBM, 1998),
- Ngƣời máy (robot): là tổng hợp của rất nhiều ngành khoa học, trong đó
học máy tạo nên hệ thần kinh/bộ não của ngƣời máy
Trong nội dung của luận văn này, tôi chọn bài toán phân cụm (một dạng
của phƣơng pháp học không giám sát) để nghiên cứu và tìm hiểu cũng nhƣ
thử nghiệm các ứng dụng thực tế, phần tiếp theo sẽ trình bày các thuật ngữ,
các định nghĩa và khái niệm cơ bản, tiếp đó các thuật toán phân cụm sẽ trình
bày chi tiết ở chƣơng 2, phần thực nghiệm và đánh giá kết quả là nội dung của
chƣơng 3 sẽ tổng kết các kết quả đã làm đƣợc và hƣớng phát triển tiếp theo.
1.4 Khái niệm về bài toán phân cụm
Bài toán phân cụm (clustering) là một dạng của bài toán học không
giám sát (unsupervised learning) đƣợc phát biểu nhƣ sau: cho tập X gồm n
đối tƣợng x1, x2, …, xn trong không gian d chiều, hãy phân rã tập X ra thành k
(k ≤ n) cụm C1, C2,…, Ck (cluster) rời nhau (Ci
Cj =
,i
j) sao cho các
đối tƣợng trong cùng một cụm thì tƣơng tự nhau và các đối tƣợng ở các cụm
khác nhau thì không tƣơng tự nhau theo một tiêu chuẩn nào đó.
8
Bài toán phân cụm thuộc lớp bài toán học không giám sát nằm trong lĩnh
vực học máy (machine learning), đây là một trong những chủ đề cơ bản của
Trí tuệ nhân tạo. Mục đích chính của quá trình phân cụm là giúp cho ngƣời
dùng hiểu đƣợc cấu trúc và phân bố của dữ liệu trong tự nhiên và là khâu
quan trọng trong quá trình xử lý và khai phá dữ liệu. Hình 1.2 minh họa ví dụ
về tập dữ liệu trong bài toán phân cụm [3].
Hình 1.2 Ví dụ về dữ liệu của bài toán phân cụm: hình bên trái bao gồm 3
cụm rời nhau tuyến tính trong khi hình bên phải có các cụm hình dạng bất kỳ
và không tuyến tính.
1.5 Các yêu cầu của bài toán phân cụm
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:
9
Khả năng mở rộng:
Nhiều giải thuật phân cụm làm việc tốt trong các tập dữ liệu nhỏ chứa ít
hơn 200 đối tƣợng dữ liệu, tuy nhiên một cơ sở dữ liệu lớn có thể chứa hàng
triệu đối tƣợng. Phân cụm cho một mẫu của một tập dữ liệu lớn cho trƣớc có
thể dẫn tới các kết quả bị lệch. Ta có thể phát triển các giải thuật phân cụm có
khả năng mở rộng cao trong các cơ sở dữ liệu lớn nhƣ thế nào.
Khả năng giải quyết đối với dữ liệu có các thuộc tính hỗn hợp (số, kí
tự,…):
Nhiều giải thuật đƣợc thiết kế để phân cụm dữ liệu số dựa trên khoảng
cách. Tuy nhiên, nhiều ứng dụng có thể yêu cầu phân cụm các kiểu khác nhau
của dữ liệu nhƣ nhị phân, xác thực (tên) và dữ liệu có thứ tự hay sự pha trộn
các kiểu dữ liệu này.
Phát hiện ra các cụm với hình dạng tuỳ ý:
Nhiều giải thuật phân cụm định rõ các cụm dựa trên các phép đo khoảng
cách Euclidean và Manhattan. Các giải thuật dựa trên các phép đo khoảng
cách nhƣ thế này có khuynh hƣớng tìm các cụm hình cầu với kích thƣớc và
mật độ giống nhau. Tuy nhiên, một cụm có thể có hình dạng bất kỳ. Điều này
rất quan trọng để phát triển các giải thuật - các giải thuật này có thể phát hiện
ra các cụm có hình dạng tuỳ ý.
Các yêu cầu tối thiểu cho miền tri thức để xác định rõ các tham số đầu
vào:
Nhiều giải thuật phân cụm yêu cầu ngƣời dùng nhập vào các tham số
nào đó trong phép phân tích cụm (nhƣ số lƣợng các cụm đã đề nghị). Kết quả
phân cụm thƣờng rất nhạy cảm với các tham số đầu vào. Nhiều tham số khó
xác định, đặc biệt đối với các tập dữ liệu chứa các đối tƣợng số chiều cao.
10
Điều này không chỉ là gánh nặng cho các user mà còn làm cho chất lƣợng
phân cụm khó điều khiển.
Khả năng giải quyết dữ liệu nhiễu:
Hầu hết các cơ sở dữ liệu thế giới thực chứa các outlier hay các dữ liệu
khuyết, dữ liệu không biết hay dữ liệu sai. Nhiều giải thuật phân cụm nhạy
cảm với dữ liệu nhƣ thế này và có thể dẫn tới chất lƣợng các cụm kém.
Sự không nhạy cảm khi sắp xếp các bản ghi đầu vào:
Nhiều giải thuật phân cụm nhạy cảm với trật tự của dữ liệu đầu vào, ví
dụ: cùng một tập dữ liệu, khi trình diễn với các trật tự khác nhau trong cùng
một giải thuật, có thể phát sinh đột xuất các cụm khác nhau. Do vậy, việc
phát triển các giải thuật nhạy cảm với trật tự đầu vào thực sự quan trọng.
Số chiều lớn:
Một cơ sở dữ liệu hay một kho dữ liệu có thể chứa các chiều hay thuộc
tính khác nhau. Nhiều giải thuật phân cụm có chất lƣợng rất tốt khi vận dụng
dữ liệu với số chiều thấp, khoảng hai tới ba chiều. Mắt ngƣời rất giỏi xét đoán
chất lƣợng phân cụm cho tới ba chiều. Thách thức đang đặt ra đối với việc
phân cụm các đối tƣợng dữ liệu trong không gian có số chiều cao, đặc biệt lƣu
ý đến dữ liệu trong không gian số chiều cao có thể rất thƣa thớt và bị lệch
nhiều.
Phân cụm dựa trên ràng buộc:
Các ứng dụng thế giới thực có thể cần thực hiện phân cụm dƣới rất nhiều
loại ràng buộc. Giả sử công việc của bạn là lựa chọn vị trí để đặt một số
lƣợng cho trƣớc các trạm tiền trả tiền tự động (ATM) mới trong thành
phố. Để giải quyết điều này, bạn có thể phân cụm các hộ gia đình trong khi
xem xét các con sông và mạng lƣới đƣờng quốc lộ của thành phố và
11
các yêu cầu khách hàng trên từng vùng nhƣ là các ràng buộc. Một nhiệm vụ
đặt ra đó là tìm các nhóm dữ liệu với chất lƣợng phân cụm tốt và thoả rất
nhiều ràng buộc khác nhau.
Khả năng diễn dịch và tính tiện lợi: Các user có thể trông chờ các kết
quả phân cụm ở khả năng diễn dịch, tính toàn diện và tiện lợi. Phân cụm có
thể cần đƣợc liên kết với các cách hiểu ngữ nghĩa cụ thể và các ứng dụng cụ
thể. Việc nghiên cứu mục đích của ứng dụng ảnh hƣởng nhƣ thế nào đến việc
lựa chọn các phƣơng pháp phân cụm là thực sự quan trọng.
1.6 Các chiến lƣợc trong phƣơng pháp phân cụm dữ liệu
1.6.1 Phương pháp phân cụm phân hoạch (Partitioning Methods)
Kỹ thuật này phân hoạch một tập hợp dữ liệu có n phần tử thành k
nhóm cho đến khi xác định số các cụm đƣợc thiết lập. 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.
1.6.2 Phương pháp phân cụm phân cấp (Hierarchical Methods)
Phƣơng pháp này xây dựng một phân cấp trên cơ sở các đối tƣợng dữ
liệu đang xem xét. Nghĩa là sắp xếp một tập dữ liệu đã cho thành một cấu
trúc có dạng hình cây, cây phân cấp này đƣợc xây dựng theo kỹ thuật đệ
quy.
Phân cụm phân hoạch và phân cụm phân cấp là hai phƣơng pháp
phân cụm dữ liệu cổ điển, hiện đã có rất nhiều thuật toán cải tiến dựa trên
hai phƣơng pháp này đã đƣợc áp dụng phổ biến trong khai phá dữ liệu.
Ý tƣởng của thuật toán phân cụm thứ bậc rất đơn giản, tại bƣớc khởi
động n điểm dữ liệu coi nhƣ n cụm, tại mỗi bƣớc hai cụm có hai điểm gần
12
nhau nhất sẽ đƣợc hòa lại thành một cụm [11]. Thuật toán sẽ dừng lại khi có
đủ số cụm cần thiết đƣợc yêu cầu bởi ngƣời sử dụng.
Hình minh họa việc tạo lập các cụm bằng phƣơng pháp phân cụm thứ
bậc.
1
2
3
8
4
6
5
10
7
1
11
9
1
Hình 1.3: Minh họa các bước của thuật toán hierarchical clustering
Có hai cách tiếp cận phổ biến của kỹ thuật này đó là: hòa nhập
nhóm, thƣờng đƣợc gọi là tiếp cận (Bottom-Up); phân chia nhóm, thƣờng
đƣợc gọi là tiếp cận (Top-Down)
Phương pháp “dưới lên” (Bottom up): Phƣơng pháp này bắt đầu với
mỗi đối tƣợng đƣợc khởi tạo tƣơng ứng với các cụm riêng biệt, sau đó tiến
hành nhóm các đối tƣợng theo một độ đo tƣơng tự (nhƣ khoảng cách giữa
hai trung tâm của hai nhóm), quá trình này đƣợc thực hiện cho đến khi tất
cả các nhóm đƣợc hòa nhập vào một nhóm (mức cao nhất của cây phân
13
cấp) hoặc cho đến khi các điều kiện kết thúc thỏa mãn. Nhƣ vậy, cách tiếp
cận này sử dụng chiến lƣợc ăn tham trong quá trình phân cụm.
- Phương pháp “trên xuống” (Top Down : Bắt đầu với trạng thái là tất
cả các đối tƣợng đƣợc xếp trong cùng một cụm. Mỗi vòng lặp thành công,
một cụm đƣợc tách thành các cụm nhỏ hơn theo giá trị của một phép đo độ
tƣơng tự nào đó cho đến khi mỗi đối tƣợng là một cụm, hoặc cho đến khi
điều kiện dừng thỏa mãn. Cách tiếp cận này sử dụng chiến lƣợc chia để trị
trong quá trình phân cụm.
1.6.3 Phương pháp phân cụm dựa trên mật độ (Density-Based
Methods)
Kỹ thuật 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 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.
1.6.4 Phương pháp phân cụm dựa trên lưới (Grid-Based Methods)
Kỹ thuật phân cụm dựa trên lƣới thích hợp với dữ liệu nhiều chiều,
dựa trên cấu trúc dữ liệu lƣới để phân cụm, phƣơng pháp này chủ yếu
tập trung áp dụng cho lớp dữ liệu không gian. Mục tiêu của phƣơng pháp
này là lƣợng hóa dữ liệu thành các ô tạo thành cấu trúc dữ liệu lƣới. Sau đó,
các thao tác phân cụm chỉ cần làm việc với các đối tƣợng trong từng ô lƣới
14
chứ không phải các đối tƣợng dữ liệu.
1.6.5 Phương pháp phân cụm dựa trên mô hình (Model-Based
Clustering Methods)
Phƣơng này cố gắng khám phá các phép xấp xỉ tốt của các tham số mô
hình sao cho khớp với dữ liệu một cách tốt nhất. Chúng có thể sử dụng
chiến lƣợc phân cụm phân hoạch hoặc phân cụm phân cấp, dựa trên cấu
trúc hoặc mô hình mà chúng giả định về tập dữ liệu và cách chúng hiệu
chỉnh các mô hình này để nhận dạng ra các phân hoạch.
Phƣơng pháp phân cụm dựa trên mô hình cố gắng khớp giữa các dữ
liệu với mô hình toán học, nó dựa trên giả định rằng dữ liệu đƣợc tạo ra
bằng hỗn hợp phân phối xác suất cơ bản.
1.7 Ứng dụng của thuật toán phân cụm
Phân cụm dữ liệu đƣợc ứng dụng vào rất nhiều lĩnh vực nhƣ thƣơng mại,
sinh học, phân tích dữ liệu không gian, lập quy hoạch đô thị, nghiên cứu trái
đất, địa lý, Web…
Ứng dụng của thuật toán phân cụm có thể kể đến nhƣ:
Phân đoạn/phân cụm ảnh (Image Segmentation) là một nội dung nghiên
cứu căn bản và khó trong lĩnh vực xử lý ảnh, thị giác máy tính. Các hƣớng
tiếp cận chính trong phƣơng pháp phân đoạn ảnh là sử dụng thuật toán phân
cụm (có giám sát – supervised), không giám sát (unsupervised) hoặc nửa
giám sát (semi-supervised). Một số ví dụ có thể kể đến nhƣ sau [3]:
- Phân đoạn ảnh bất bình thƣờng (abnormal regions) trong ảnh nội soi
không dây (Capsule Endoscopy Image): Hiện nay, với khoảng 300 mẫu dữ
liệu bệnh nhân đƣợc tổng hợp mỗi năm, bác sỹ (chuẩn đoán hình ảnh) thƣờng
15
phải mất thời gian phân đoạn các vùng bất bình thƣờng (vùng chảy máu, viêm
nhiễm (ulcer), vùng có polyps, tumors …) trong quá trình chuẩn đoán ảnh.
- Phân đoạn ảnh nội soi thƣờng gặp một số thách thức nhƣ độ phân giải
thấp (256x256 pixels), ảnh thƣờng có các thành phần không có nghĩa (các
nhiễu do bong bóng nƣớc, thức ăn, …); các đặc trƣng vùng bệnh đa dạng,
biến đổi không theo quy luật, phân đoạn cho một loại ảnh bất bình thƣờng
(vùng chảy máu) (hình 1.4.a).
- Phân đoạn các đối tƣợng cần quan tâm trong ảnh thu từ thiết bị bay
không ngƣời lái (Unmanned Aerial Vehicle (UAV).
Kết quả phân đoạn này có thể hỗ trợ nhiều bài toán lớn tiếp theo nhƣ
giám sát an ninh trong môi trƣờng vừa và lớn, thống kê, xây dựng bản đồ
(hình 1.4.b).
Hình 1.4 Một số ví dụ về phân đoạn ảnh sử dụng clustering
16
Hình 1.5 Ứng dụng clustering trong việc phát hiện những vùng bị hỏng
trên trái cây
- Phân đoạn để nhận dạng các bề mặt là bình thƣờng hay bất thƣờng trên
bề mặt trái cây (hình 1.5).
Các ứng dụng của phân cụm còn phải kể đến nhƣ trong phân tích dữ
liệu trong chẩn đoán ung thƣ, trong xây dựng máy tìm kiếm (Google,
Yahoo,…) trong các hệ thống wireless sensor, trong dự đoán đặc tính của
17
thuốc dùng trong y học, trong nhận dạng và phân loại đối tƣợng, trong khai
phá dữ liệu (KDD).
1.8 Đánh giá kết quả của thuật toán phân cụm
Để đánh giá kết quả của các thuật toán phân cụm, chúng tôi sử dụng chỉ
số Rand, một trong những phƣơng pháp phổ biến để đánh giá kết quả phân
cụm [4]. Giả sử cần so sánh hai kết quả phân cụm P1 và P2 với n điểm dữ liệu
chúng ta thực hiện nhƣ sau:
Gọi a là tổng số các cặp (xi, xj) có tính chất: cả xi và xj đều nằm cùng một
cụm trong cả hai phân cụm P1 và P2. Gọi b là tổng số các cặp (xi, xj) sao cho
cả xi và xj nằm ở hai cụm khác nhau trong P1 và P2. Giá trị Rand đƣợc xác
định bởi công thức:
Rand ( P1 , P2 )
a b
nn 1 2
Giá trị của Rand nằm trong đoạn [0, 1], giá trị Rand càng lớn thể hiện
chất lƣợng phân cụm càng tốt và ngƣợc lại.
1.9 Phƣơng pháp phân cụm nửa giám sát
Các thuật toán phân cụm nửa giám sát sẽ sử dụng các thông tin có đƣợc
từ ngƣời sử dụng (side information) nhằm mục đích trợ giúp quá trình phân
cụm nhằm tăng chất lƣợng của clustering. Chú ý rằng đối với các bài toán
semi-supervised classification chúng ta cũng có cùng đầu vào nhƣ bài toán
phân cụm nửa giám sát, tuy nhiên mục đích nghiên cứu của bài toán phân lớp
nửa giám sát nhằm xây dựng hàm mục tiêu nhằm dự đoán cho các điểm dữ
liệu chƣa biết không nằm trong phạm vi nghiên cứu của đề tài này.
Hiện nay có hai hƣớng tiếp cận phƣơng pháp phân cụm nửa giám sát là:
Phương pháp dựa trên tìm kiếm
Trong hƣớng tiếp cận này, chính thuật toán phân cụm sẽ đƣợc sửa đổi
18
nhằm tìm kiếm một phân hoạch thích hợp thỏa mãn các ràng buộc thông qua
việc sử dụng các thông tin bổ trợ.
Phương pháp dựa trên độ đo tương tự
Trong phƣơng pháp này, các thông tin bổ trợ ban đầu sẽ đƣợc dùng vào
việc huấn luyện một hàm khoảng cách (hàm độ đo). Sau đó thuật toán phân
cụm sẽ sử dụng hàm độ đo nay để phân cụm các dữ liệu.