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

Nghiên cứu phương pháp phân cụm nửa giám sát 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 (2.08 MB, 69 trang )

i

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


ii

MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
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


iii

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


iv

DANH MỤC CÁC HÌNH
Số hiệu
hình
Hình 1.1

Tên hình

Trang

Các mô hình của học máy

5

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 nối
để tạo ra các cluster

26


v

Hình 2.5

Minh họa thuật toán Fuzzy C-Means với 4 cụm

30

(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

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:
Bảng 2.1

Hình 2.8
Hình 2.9
Hình 3.1

Hình 3.2

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

Hình 3.6

Ví dụ về phân vùng ảnh cây cối
Ví dụ về phân vùng ảnh động vật

52

55



vi

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

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


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
nn  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.


19


CHƯƠNG 2. MỘT SỐ THUẬT TOÁN PHÂN CỤM NỬA GIÁM SÁT
2.1. Giới thiệu bài toán phân cụm nửa giám sát
Một trong những hướng nghiên cứu quan trọng trong các năm gần đây
là phát triển các phương pháp phân cụm nửa giám sát (semi-supervised
clustering). 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ừ các chuyên gia (side information) nhằm mục đích trợ giúp trong quá
trình phân cụm và vì vậy cải tiến đáng kể chất lượng của clustering.

Data

Clustering
algorithm

Clusters

Hình 2.1 Bài toán phân cụm

Data
Semi-supervsed
Clustering algorithm

Constraint/seed
(Experts)

s/seeds
Hình 2.2 Bài toán phân cụm nửa giám sát

Clusters



×