ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO
TÌM HIỂU CLUSTERING
Lớp : CAO HỌC KHÓA 6
GVHD : PGS-TS Đỗ Phúc
Sinh Viên : Phạm Quang Diệu
MSSV : CH1101077
Tp Hồ Chí Minh, tháng 11 năm 2012
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
GIỚI THIỆU
Phép phân tích nhóm chia dữ liệu thành những nhóm (group, cluster) có
nghóa, hữu ích, hay cả hai. Nếu mục đích là những nhóm có nghóa, thì những nhóm
nên giữ được cấu trúc tự nhiên của dữ liệu. Tuy nhiên, trong một số trường hợp,
phép phân tích nhóm chỉ là điểm khởi đầu hữu ích cho một mục đích khác, như sự
tổng kết dữ liệu. Dù trong nghiên cứu hay ứng dụng, thì phép phân tích nhóm đã
đóng một vai trò quan trọng trong rất nhiều lónh vực: tâm lý học và những ngành
khoa học xã hội khác, sinh học, khoa học thống kê, sự nhận dạng, phục hồi thông
tin, máy học, và data mining.
Có nhiều ứng dụng của phép phân tích nhóm đối với những vấn đề thực tiễn.
Chúng tôi cung cấp một vài ví dụ đặc trưng, tùy theo mục đích nghiên cứu hay ứng
dụng.
NGHIÊN CỨU
Những lớp, hay những nhóm đối tượng trừu tượng có nghóa mà chia sẻ những
đặc điểm chung, đóng một vai trò quan trọng trong việc làm thế nào con người
phân tích và mô tả thế giới. Quả thực, con người khéo léo trong việc phân chia các
đối tượng vào các nhóm (clustering) và gán những đối tượng riêng biệt vào những
nhóm này (classification). Ví dụ, những đứa bé nhanh chóng dán nhãn cho những
vật trong một tấm ảnh như những tòa nhà, xe cộ, con người, động vật, cây cối,
v.v…Trong nghiên cứu dữ liệu, những nhóm là những lớp tiềm tàng và phép phân
tích nhóm là ngành nghiên cứu những kỹ thuật tự động tìm ra những lớp. Sau đây
là một số ví dụ:
• Sinh học
Những nhà sinh học đã bỏ ra nhiều năm tạo ra một phép phân loại (phép
phân loại theo thứ bậc – hierarchical classification) đối với tất cả các sinh
vật: giới, ngành, lớp, bậc, họ, giống, và loài. Gần đây, những nhà sinh học đã
ứng dụng phép xếp nhóm để phân tích những lượng lớn thông tin có sẵn. Ví
dụ, phép xếp nhóm đã được dùng để tìm những nhóm gen có những chức
năng tương tự.
• Phục hồi thông tin
World Wide Web chứa hàng tỉ trang web, và những kết quả của một lệnh
truy vấn trong search engine có thể trả về hàng ngàn trang web. Phép xếp
nhóm có thể được dùng để nhóm những kết quả tìm kiếm này vào những
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
nhóm, mỗi nhóm đề cập một khía cạnh riêng biệt của lệnh truy vấn. Ví dụ,
tìm kiếm từ khóa “movie” có thể trả về những trang web được nhóm thành
các loại như reviews, trailers, stars, và theaters. Mỗi loại (cluster) có thể chia
thành những loại con (subcluster), sinh ra một cấu trúc thứ bậc giúp cho
người dùng dễ dàng hơn trong chọn lọc kết quả.
• Thời tiết
Nghiên cứu thời tiết Trái Đất đòi hỏi phải tìm ra những mẫu trong áp suất và
đại dương. Phép phân tích nhóm được ứng dụng để tìm những mẫu trong áp
suất khí quyển ở những vùng cực và ở những đại dương có ảnh hưởng lớn lên
áp suất mặt đất.
• Tâm lý học và Y học
Một bệnh thường xuyên có một số biến thể, và phép phân tích nhóm có thể
được dùng để nhận ra những nhóm con khác nhau này. Phép xếp nhóm có
thể dùng để nhận dạng những mẫu trong sự phân bố không gian hay thời gian
của một bệnh.
• Kinh doanh
Việc kinh doanh đòi hỏi những lượng lớn thông tin trên những khách hàng
hiện tại và tiềm năng. Phép xếp nhóm có thể được dùng để phân đoạn những
khách hàng vào những nhóm cho những hoạt động phân tích và tiếp thò.
ỨNG DỤNG
Phép phân tích nhóm cung cấp sự trừu tượng hóa từ những đối tượng dữ liệu
riêng lẻ thành những nhóm đối tượng. Ngoài ra, một số kỹ thuật xếp nhóm mô tả
đặc điểm mỗi nhóm dưới dạng nguyên mẫu nhóm; nghóa là, dùng một đối tượng
dữ liệu làm đại diện cho những đối tượng khác trong nhóm. Những nguyên mẫu
nhóm này có thể được dùng như cơ sở cho một số kỹ thuật phân tích hay xử lý dữ
liệu. Do đó, trong lónh vực ứng dụng, phép phân tích nhóm nghiên cứu những kỹ
thuật để tìm những nguyên mẫu nhóm tiêu biểu nhất.
• Sự tổng hợp
Nhiều kỹ thuật phân tích dữ liệu, như PCA, có độ phức tạp thời gian hay
không gian là O(m
2
) hay cao hơn (với m là số đối tượng), và do đó, không áp
dụng được cho những tập hợp dữ liệu lớn. Tuy nhiên, thay vì dùng thuật toán
cho toàn bộ tập hợp dữ liệu, ta có thể áp dụng đối với một tập hợp dữ liệu
được giảm chỉ chứa những nguyên mẫu nhóm. Phụ thuộc vào kiểu phân tích,
số nguyên mẫu, và độ chính xác mà nguyên mẫu đại diện cho dữ liệu, mà
kết quả có thể so sánh được với trường hợp áp dụng cho tất cả dữ liệu.
• Nén
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Những nguyên mẫu nhóm cũng có thể được dùng cho nén dữ liệu. Cụ thể là,
một bảng chứa những nguyên mẫu cho mỗi nhóm được tạo ra; nghóa là, mỗi
nguyên mẫu được gán một giá trò nguyên là chỉ số của nó trong bảng. Mỗi
đối tượng được biểu diễn bởi chỉ số của nguyên mẫu liên kết với nhóm của
nó. Kiểu nén này được gọi là lượng tử hóa vector và thường được áp dụng
cho ảnh, âm thanh, và video, do (1) nhiều đối tượng dữ liệu tương tự nhau,
(2) có thể chấp nhận một số mất mát thông tin, và (3) cần thiết phải giảm
đáng kể kích thước dữ liệu.
• Tìm láng giềng gần nhất
Việc tìm láng giềng gần nhất có thể đòi hỏi phải tính toán khoảng cách từng
đôi giữa tất cả các điểm. Thường những nhóm và những nguyên mẫu của
chúng có thể được tìm thấy hiệu quả hơn nhiều. Nếu những đối tượng tương
đối gần với nguyên mẫu của nhóm chúng, thì ta có thể dùng những nguyên
mẫu để giảm số phép tính cần thiết để tìm láng giềng gần nhất của một đối
tượng. Bằng trực giác, nếu hai nguyên mẫu nhóm xa nhau, thì những đối
tượng trong những nhóm tương ứng không thể là láng giềng gần nhất của
nhau. Do đó, để tìm được những láng giềng gần nhất của một đối tượng thì
chỉ cần tính khoảng cách đến những đối tượng ở những nhóm gần, mà hai
nhóm gần nhau hay không tùy thuộc vào khoảng cách giữa những nguyên
mẫu của chúng.
Chúng ta sẽ bắt đầu với miêu tả chung về phép xếp nhóm, bao gồm các cách
tiếp cận khác nhau để chia đối tượng vào các nhóm và những loại nhóm khác
nhau. Sau đó, chúng ta mô tả những kỹ thuật xếp nhóm cụ thể. Phần kế tiếp dành
cho những phương pháp đánh giá độ tốt của nhóm được tạo ra bởi một thuật toán
xếp nhóm.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
PHẦN 1
NHỮNG KHÁI NIỆM CƠ BẢN
Trước khi thảo luận những kỹ thuật xếp nhóm cụ thể, chúng ta xem xét một
số kiến thức nền tảng cần thiết. Đầu tiên, chúng ta đònh nghóa rõ hơn về phép phân
tích nhóm, giải thích mối liên quan của nó với những kỹ thuật nhóm dữ liệu khác.
Sau đó chúng ta xem xét hai vấn đề quan trọng: (1) những cách khác nhau để xếp
một tập hợp các đối tượng vào một tập hợp các nhóm, và (2) những loại nhóm.
1.1 THẾ NÀO LÀ PHÉP PHÂN TÍCH NHÓM?
Phép phân tích nhóm gom nhóm những đối tượng dữ liệu chỉ dựa trên thông
tin được tìm thấy trong dữ liệu mà mô tả những đối tượng đó hay và những mối
quan hệ của chúng. Mục đích là những đối tượng bên trong một nhóm tương tự
(hay liên quan) với nhau và chúng khác nhau (hay không liên quan) với những đối
tượng trong những nhóm khác. Nếu sự tương tự trong một nhóm càng lớn và sự
khác nhau giữa các nhóm càng nhiều, thì phép xếp nhóm càng tốt hơn hay dễ phân
biệt hơn.
Trong nhiều ứng dụng, khái niệm một nhóm không được đònh nghóa rõ ràng.
Để hiểu rõ hơn sự khó khăn khi quyết đònh cái gì tạo thành một nhóm, xem hình
8.1, biểu diễn hai mươi điểm và ba cách phân nhóm khác nhau. Những kí hiệu chỉ
rõ thành phần của mỗi nhóm. Hình 8.1(b) và 8.1(d) lần lượt chia dữ liệu thành hai
và sáu phần. Không thể không có lý khi cho rằng các điểm tạo thành bốn nhóm,
như trong hình 8.1(c). Hình này biểu diễn đònh nghóa một nhóm là không chính xác
và đònh nghóa tốt nhất phụ thuộc vào trạng thái nguyên thủy của dữ liệu và những
kết quả mong muốn.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Phép phân tích nhóm liên quan đến những kỹ thuật khác được dùng để chia
những đối tượng dữ liệu vào các nhóm. Ví dụ, phép xếp nhóm có thể được xem
như một dạng của phép phân loại trong đó nó tạo ra sự đánh nhãn các đối tượng.
Tuy nhiên, nó nhận được các nhãn này chỉ từ dữ liệu. Ngược lại, phép phân loại là
một supervised classification; nghóa là, những đối tượng mới chưa được đánh
nhãn được gán một nhãn sử dụng một mô hình có được từ những đối tượng đã được
đánh nhãn. Vì lý do này, phép xếp nhóm thường được xem như unsupervised
classification.
Tương tự, thuật ngữ segmentation và partitioning thường xem như đồng
nghóa trong phép xếp nhóm, những thuật ngữ này thường được dùng cho những
cách tiếp cận khác cách tiếp cận truyền thống. Ví dụ, thuật ngữ partitioning thường
được dùng trong những kỹ thuật chia những đồ thò thành những đồ thò con và
không liên quan nhiều đến phép xếp nhóm. Segmentation thường liên quan đến
phần chia dữ liệu thành các nhóm sử dụng những kỹ thuật đơn giản; ví dụ, một ảnh
có thể được chia thành những phân đoạn chỉ dựa trên cường độ pixel và màu, hay
con người có thể được chia thành các nhóm dựa trên thu nhập của họ. Tuy nhiên,
một số công việc trong graph partitioning và trong image segmentation liên quan
đến phép phân tích nhóm.
1.2 NHỮNG PHƯƠNG PHÁP XẾP NHÓM KHÁC NHAU
Trong phần này, chúng ta phân biệt những loại xếp nhóm khác nhau:
hierarchical (nested) với partitional (unnested), exclusive với overlapping với
fuzzy, và complete với partial.
Hierarchical với Partitional
Nét khác biệt được thảo luận nhiều nhất giữa những kiểu xếp nhóm khác
nhau là tập hợp các nhóm là lồng nhau hay không lồng nhau, trong thuật ngữ
truyền thống hơn, hierarchical hay partitional. Một phép xếp nhóm partitional đơn
giản là một phép chia tập hợp các đối tượng dữ liệu vào những tập con không
trùng khớp để cho mỗi đối tượng ở trong một tập con. Lần lượt làm với từng đối
tượng, mỗi tập các nhóm trong hình 8.1 (b-d) là một phép xếp nhóm partitional.
Nếu chúng ta cho phép các nhóm có các nhóm con, thì chúng ta có được
phép xếp nhóm hierarchical, mà là một tập các nhóm lồng nhau được tổ chức như
một cây. Mỗi node (cluster) trên cây (ngoại trừ node lá) là hợp của những node
con (subcluster), và node gốc là nhóm chứa tất cả các đối tượng. Thường, nhưng
không phải là luôn luôn, lá của cây là những nhóm duy nhất của những đối tượng
riêng biệt. Nếu chúng ta cho phép các nhóm lồng nhau, thì sự giải thích của hình
8.1(a) là nó có hai nhóm con (hình 8.1(b)), và nó có ba nhóm con (hình 8.1(d)).
Những nhóm trong hình 8.1(a-d), theo thứ tự, cũng tạo nên một phép xếp nhóm
hierarchical, với lần lượt 1, 2, 4, và 6 nhóm ở mỗi cấp. Cuối cùng, lưu ý rằng một
phép xếp nhóm hierarchical có thể xem như một chuỗi các phép xếp nhóm
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
partitional; nghóa là, khi cắt ra mỗi cấp của cây thứ bậc thì ta có một phép xếp
nhóm partitional.
Exclusive với Overlapping với Fuzzy
Những phép xếp nhóm trong hình 8.1 đều là exclusive, khi chúng gán mỗi
đối tượng vào một nhóm. Có nhiều trường hợp trong đó một điểm có thể được đặt
trong nhiều hơn một nhóm, và những trường hợp này là non-exclusive. Thông
thường, một phép xếp nhóm overlapping hay non-exclusive được dùng để phản
ánh sự kiện rằng một đối tượng có thể đồng thời thuộc về hơn một nhóm (class).
Ví dụ, một người ở trường đại học có thể là sinh viên được tuyển và một nhân viên
của trường. Một phép xếp nhóm non-exclusive cũng thường được dùng, ví dụ, khi
một đối tượng ở giữa nhiều hơn hai nhóm và có thể được gán đến bất kỳ nhóm
nào. Tưởng tượng một điểm nằm giữa hai nhóm trong hình 8.1. Thay vì gán tùy ý
đối tượng vào một nhóm nào đó, thì nó được đặt vào tất cả những nhóm như thế.
Trong một phép xếp nhóm fuzzy, mỗi đối tượng thuộc về một nhóm với một
trọng số giữa 0 (hoàn toàn không thuộc) và 1 (hoàn toàn thuộc). Nói cách khác,
những nhóm như những tập hợp fuzzy. (Trong toán học, một tập hợp fuzzy là tập
hợp trong đó một đối tượng thuộc bất cứ tập nào với trọng số giữa 0 và 1. Trong
phép xếp nhóm fuzzy, chúng ta thường đưa ra ràng buộc bổ sung mà tổng các
trọng số của mỗi đối tượng phải bằng 1). Tương tự, những kỹ thuật xếp nhóm theo
thống kê tính toán xác suất mà mỗi điểm thuộc về mỗi nhóm, và mỗi xác suất này
cũng phải có tổng là 1. Fuzzy clustering thích hợp nhất để tránh việc gán tùy ý một
đối tượng vào chỉ một nhóm khi nó có thể gần với nhiều nhóm. Trong thực tế,
fuzzy clustering thường được chuyển đổi thành exclusive clustering bằng cách gán
mỗi đối tượng vào nhóm trong đó trọng số hay xác suất của nó là cao nhất.
Complete với Partial
Complete clustering gán mỗi đối tượng vào một nhóm, trái lại partial
clustering thì không. Sự thúc đẩy cho phương pháp partial clustering là một số đối
tượng trong một tập dữ liệu có thể không thuộc về những nhóm được đònh nghóa
tốt. Ví dụ, một số mẫu chuyện trên báo có thể chia sẻ một chủ đề chung, như sự
ấm lên của Trái Đất. Do đó, để tìm những chủ đề quan trọng trong những câu
chuyện tháng trước, chúng ta có thể muốn chỉ tìm kiếm những nhóm tài liệu liên
quan chặt chẽ với một chủ đề chung. Trong những trường hợp khác, thì phương
pháp complete clustering được sử dụng. Ví dụ, một ứng dụng sử dụng clustering để
tổ chức tài liệu cho việc tìm kiếm cần phải đảm bảo rằng tất cả tài liệu có thể
được tìm thấy.
1.3 NHỮNG LOẠI NHÓM KHÁC NHAU
Phép xếp nhóm hướng đến việc tìm những nhóm cho những đối tượng, tùy
theo mục đích của phân tích dữ liệu. Có rất nhiều quan niệm khác nhau về một
nhóm. Để minh họa sự khác biệt giữa những loại nhóm này, ta dùng những điểm
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
hai chiều là những đối tượng dữ liệu, như trong hình 8.2. Tuy nhiên, chúng tôi
nhấn mạnh rằng những loại nhóm được đònh nghóa ở đây có giá trò như nhau với
những loại dữ liệu khác.
Well-Separated
Một nhóm là một tập các đối tượng trong đó mỗi đối tượng tương tự với mỗi
đối tượng cùng nhóm khác hơn những đối tượng không cùng nhóm. Đôi khi một
ngưỡng được dùng để chỉ rõ rằng tất cả đối tượng trong một nhóm phải đủ gần
(tương tự) nhau. Đònh nghóa này về nhóm chỉ thỏa mãn khi dữ liệu chứa những
nhóm tự nhiên thật sự xa nhau. Hình 8.2(a) cho ví dụ những nhóm well-separated
mà chứa hai nhóm điểm trong không gian hai chiều. Khoảng cách giữa bất kỳ hai
điểm khác nhóm lớn hơn khoảng cách giữa bất kỳ hai điểm cùng nhóm.
Prototype-Based
Một nhóm là một tập các đối tượng trong đó mỗi đối tượng tương tự với
nguyên mẫu (prototype) xác đònh nhóm hơn nguyên mẫu của bất kỳ nhóm nào
khác. Đối với dữ liệu có những thuộc tính liên tục, nguyên mẫu của một nhóm
thường là trung tâm, nghóa là, trung bình (mean) của tất cả các điểm trong nhóm.
Với nhiều kiểu dữ liệu, nguyên mẫu có thể xem như điểm trung tâm nhất, và trong
những trường hợp như thế, chúng ta thường xem những nhóm prototype-based như
center-based. Thường những nhóm như vậy có hình cầu. Hình 8.2(b) cho một ví
dụ nhóm center-based.
Graph-Based
Nếu dữ liệu được biểu diễn đồ thò, với các nút là các đối tượng và các cung
biểu diễn liên kết giữa các đối tượng, thì một nhóm được đònh nghóa là một thành
phần liên thông (connected component); nghóa là, một nhóm đối tượng được liên
kết với nhau, nhưng không có liên kết đến những đối tượng ngoài nhóm. Một ví dụ
quan trọng của graph-based cluster là contiguity-based cluster (cluster dựa trên sự
kề nhau), trong đó hai đối tượng chỉ được liên kết nếu chúng cách nhau một
khoảng được chỉ rõ. Điều này có nghóa là mỗi đối tượng trong contiguity-based
cluster gần với đối tượng khác trong nhóm hơn bất kỳ điểm nào trong nhóm khác.
Hình 8.2(c) cho một ví dụ với những điểm hai chiều. Đònh nghóa nhóm này hữu ích
khi các nhóm không theo quy luật hay quấn vào nhau (intertwined), nhưng có thể
gặp vấn đề khi xuất hiện nhiễu như minh họa bởi hai nhóm hình cầu trong hình
8.2(c), một cầu nhỏ của các điểm có thể kết hợp hai điểm phân biệt.
Density-Based
Một nhóm là một vùng dày đặc các đối tượng được bao quanh bởi một vùng
ít dày đặc hơn. Hình 8.2(d) biểu diễn các nhóm density-based với dữ liệu được tạo
thành bằng cách thêm nhiễu vào dữ liệu của hình 8.2(c). Hai nhóm tròn không
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
được kết hợp như trong hình 8.2(c), vì cầu giữa chúng biến mất trong nhiễu. Cũng
vậy, đường cong trong hình 8.2(c) cũng biến mất trong nhiễu và không tạo thành
nhóm trong hình 8.2(d). Đònh nghóa nhóm density-based thường được dùng khi các
nhóm không theo quy luật, và khi xuất hiện nhiễu và giá trò ngoại lệ. Ngược lại,
đònh nghóa nhóm contiguity-based không phù hợp với dữ liệu trong hình 8.2(d) có
khuynh hướng hình thành cầu giữa các nhóm.
Shared-Property (Conceptual Clusters)
Tổng quát hơn, ta có thể đònh nghóa một nhóm là một tập các đối tượng cùng
có thuộc tính nào đó. Đònh nghóa này chứa đựng tất cả những đònh nghóa trước; ví
dụ, những đối tượng trong một nhóm center-based chia sẻ thuộc tính là tất cả đều
gần với một tâm nào đó. Tuy nhiên, cách tiếp cận shared-property cũng bao gồm
những loại nhóm mới. Xem những nhóm trong hình 8.2(e). Một vùng tam giác
(cluster) kề với một vùng chữ nhật. Trong tất cả những trường hợp, một phép xếp
nhóm cần một khái niệm rất rõ ràng để tìm nhóm thành công. Quá trình tìm những
nhóm gọi là phép xếp nhóm khái niệm. Tuy nhiên, ở đầy chúng tôi chỉ xét những
loại nhóm đơn giản.
Road Map
Chúng ta sử dụng ba phương pháp đơn giản nhưng quan trọng để giới thiệu
nhiều khái niệm liên quan đến phân tích nhóm.
• K-means: Đây là một phương pháp prototype-based, partitional clustering
dùng để tìm một số nhóm (K) được chỉ đònh bởi người dùng.
• Agglomerative Hierarchical Clustering: Đây là một phương pháp
hierarchical clustering mà bắt đầu với mỗi điểm như một điểm đơn và sau đó
trộn hai nhóm gần nhất, làm đi làm lại cho đến khi chỉ còn một nhóm duy
nhất chứa tất cả. Do đó mà phương pháp này gọi là agglomerative, nghóa là
tích tụ.
• DBSCAN: Đây là một phương pháp density-based sinh ra một phép xếp
nhóm partitional, trong đó số nhóm được xác đònh tự động bởi thuật toán. Các
điểm ở các vùng ít dày đặc được phân loại như nhiễu và được loại bỏ; do đó,
DBSCAN không sinh ra một phép xếp nhóm complete.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Hình 8.2. Những loại nhóm khác nhau được minh họa bởi những tập điểm hai
chiều.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
PHẦN 2
NHỮNG THUẬT TOÁN
2.1 K-MEANS
Hai kỹ thuật quan trọng nhất là K-means và K-medoid. K-means đònh nghóa
một nguyên mẫu là một trọng tâm (centroid), thường là trung tâm của một nhóm
điểm, và được ứng dụng cho những đối tượng trong một không gian n chiều liên
tục. K-medoid đònh nghóa một nguyên mẫu là một medoid, là điểm đại diện nhất
cho một nhóm điểm, và có thể áp dụng cho một phạm vi dữ liệu rộng vì nó chỉ đòi
hỏi một phép đo lân cận cho một cặp đối tượng. Trong khi centroid không bao giờ
tương ứng với một điểm dữ liệu thật sự, thì một medoid phải là một điểm dữ liệu
thật sự. Trong phần này, chúng ta chỉ tập trung đến K-means, một trong những
phương pháp cũ nhất và được dùng rộng rãi nhất.
2.1.1 THUẬT TOÁN K-MEANS CƠ BẢN
Phép xếp nhóm K-means đơn giản, và chúng ta bắt đầu mô tả thuật toán cơ
bản. Đầu tiên ta chọn K trọng tâm, với K là tham số cho bởi người dùng, gọi là số
nhóm. Sau đó mỗi điểm được gán với một trọng tâm gần nhất, và mỗi tập điểm
được gán với một trọng tâm là một nhóm. Ta lặp lại việc gán và cập nhật các bước
cho đến khi không còn điểm nào thay đổi nhóm.
K-means được mô tả trong thuật toán 8.1. Thuật toán được minh họa cụ thể
trong hình 8.3. Trong những hình này, mỗi hình nhỏ biểu diễn (1) những trọng tâm
lúc đầu và (2) phép gán các điểm đến các trọng tâm đó. Những trọng tâm được
biểu diễn bởi dấu “+”; tất cả các điểm thuộc cùng một nhóm có cùng kí hiệu như
nhau.
Thuật toán 8.1 Thuật toán K-means cơ bản.
1: Chọn K điểm như những trọng tâm đầu tiên.
2: repeat
3: Tạo K nhóm bằng cách gán mỗi điểm đến trọng tâm gần nhất của
nó.
4: Tính toán lại trọng tâm của mỗi nhóm.
5: until Những trọng tâm không đổi.
Trong bước đầu, được biểu diễn trong hình 8.3(a), các điểm được gán đến
những trọng tâm đầu tiên, tất cả đều trong nhóm điểm lớn hơn. Như ví dụ này, ta
dùng trung bình như trọng tâm. Sau khi các điểm được gán đến một trọng tâm, thì
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
trọng tâm sẽ được cập nhật. Lặp lại, hình vẽ biểu diễn trọng tâm ở đầu mỗi bước
và phép gán các điểm đến các trọng tâm đó. Ở bước thứ hai, các điểm được gán
đến những trọng tâm đã được cập nhật, và các trọng tâm được cập nhật lại. Trong
bước 2, 3, và 4, được biểu diễn lần lượt trong hình 8.3(b), (c), và (d), hai trọng tâm
di chuyển đến hai nhóm điểm ở phần dưới của hình. Khi thuật toán K-means kết
thúc trong hình 8.3(d), những trọng tâm đã chỉ ra những phép nhóm điểm.
Kết hợp thêm một số hàm lân cận và các loại trọng tâm, K-means luôn luôn
hội tụ về một kết quả cuối cùng; nghóa là, K-means đạt đến một trạng thái trong
đó không có điểm nào dòch chuyển từ nhóm này đến nhóm khác, và do đó, các
trọng tâm không thay đổi. Tuy nhiên, điều kiện của vòng lặp trên dòng 5 của thuật
toán 8.1 thường được thay bởi một điều kiện yếu hơn, ví dụ, lặp lại cho đến khi chỉ
có 1% các điểm thay đổi nhóm.
Ta xét mỗi bước trong thuật toán K-means cơ bản một cách chi tiết hơn và
sau đó sẽ phân tích độ phức tạp không gian và thời gian của thuật toán.
Gán các điểm đến trọng tâm gần nhất
Để gán một điểm đến trọng tâm gần nhất, ta cần một phép đo độ lân cận để
xác đònh khái niệm “gần nhất”. Khoảng cách Euclid (L
2
) thường được dùng cho
những điểm dữ liệu trong không gian Euclid. Tuy nhiên, có thể có nhiều phép đo
độ lân cận thích hợp cho một nhóm dữ liệu được cho. Ví dụ, khoảng cách
Manhattan (L
1
) có thể dùng cho dữ liệu Euclid, trong khi phép đo Jaccard thường
được dùng cho những tài liệu.
Thông thường, những phép đo lân cận dùng cho K-means thường đơn giản vì
thuật toán tính toán lặp đi lặp lại sự lân cận của mỗi điểm với mỗi trọng tâm. Tuy
nhiên, trong một số trường hợp, nhưng khi dữ liệu nằm trong không gian Euclid ít
chiều, có thể tránh được việc tính toán nhiều sự lân cận, do đó tăng đáng kể tốc độ
của thuật toán K-means. Bisecting K-means (được mô tả trong phần 8.2.3) là một
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
cách tiếp cận khác làm tăng tốc độ của K-means bằng cách giảm số lượng tính
toán lân cận.
Bảng 8.1. Bảng ký hiệu
Ký hiệu Mô tả
x
C
i
c
i
c
m
i
m
K
Một đối tượng.
Nhóm thứ i.
Trọng tâm của nhóm C
i
.
Trọng tâm của tất cả các điểm.
Số đối tượng trong nhóm thứ i.
Số đối tượng trong tập dữ liệu.
Số nhóm.
Những trọng tâm và những hàm mục tiêu
Bước 4 của thuật toán K-means là “tính toán lại trọng tâm của mỗi nhóm”, vì
trọng tâm có thể thay đổi, tùy thuộc trên phép đo lân cận cho dữ liệu và mục đích
của việc xếp nhóm. Mục đích của việc gom nhóm được biểu diễn bởi một hàm
mục tiêu mà tùy thuộc trên độ lân cận của các điểm với nhau hay với trọng tâm
của nhóm; ví dụ, cực tiểu hóa khoảng cách bình phương của mỗi điểm với trọng
tâm gần nhất của nó. Ta minh họa điều này với hai ví dụ. Tuy nhiên, điểm mấu
chốt là: một khi ta đã chỉ rõ phép đo lân cận và một hàm mục tiêu, trọng tâm có
thể được tính toán (mô tả chi tiết trong phần 8.2.6).
Dữ liệu trong không gian Euclid
Xét dữ liệu với phép đo lân cận là khoảng cách Euclid. Với hàm mục đích
của chúng ta, dùng để đo chất lượng của phép xếp nhóm, ta dùng tổng sai số bình
phương (sum of the squared error – SSE). Nói cách khác, ta tính toán sai số của
mỗi điểm dữ liệu, nghóa là, khoảng cách Euclid của nó đến trọng tâm gần nhất, và
sau đó tính toán tổng các sai số bình phương. Cho hai tập hợp nhóm khác nhau
được tạo bởi hai lần chạy thuật toán K-means khác nhau, ta thích tập hợp có sai số
bình phương nhỏ nhất vì điều này có nghóa là những nguyên mẫu (trọng tâm) của
phép gom nhóm này là biểu diễn tốt cho các điểm trong nhóm của chúng. Dùng kí
hiệu trong bảng 8.1, SSE được đònh nghóa như sau:
∑∑
= ∈
=
K
i Cx
i
i
xcdistSSE
1
2
),(
(8.1)
với dist là khoảng cách Euclid chuẩn (L
2
) giữa hai đối tượng trong không gian
Euclid.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Theo những giả thuyết này, có thể nói rằng (xem phần 8.2.6) trọng tâm tối
thiểu hóa SSE của nhóm là trung bình. Dùng kí hiệu trong bảng 8.1, trọng tâm
(trung bình) của nhóm thứ i được đònh nghóa bởi phương trình 8.2.
∑
∈
=
i
Cx
i
i
x
m
c
1
(8.2)
Để minh họa, trọng tâm của một nhóm chứa ba điểm hai chiều, (1, 1), (2, 3),
và (6, 2), là ((1 + 2 + 6)/3, (1 + 3 + 2)/3) = (3, 2).
Bước 3 và 4 của thuật toán K-means cố gắng tối thiểu hóa SSE (hay tổng
quát hơn, hàm mục tiêu). Bước 3 tạo ra các nhóm bằng cách gán các điểm đến
trọng tâm gần nhất của chúng, mà tối thiểu hóa SSE với tập hợp trọng tâm được
cho. Bước 4 tính toán lại các trọng tâm để tối thiểu hóa hơn nữa SSE. Tuy nhiên,
hoạt động của K-means trong bước 3 và 4 chỉ được đảm bảo để tìm cực tiểu đòa
phương đối với SSE vì chúng dựa trên việc tối ưu hóa SSE cho những lựa chọn cụ
thể của trọng tâm và nhóm, hơn là cho tất cả những lựa chọn có thể. Sau đây
chúng ta sẽ xem một ví dụ.
Dữ liệu tài liệu
Để minh họa rằng K-means không hạn chế cho dữ liệu trong không gian
Euclid, ta xét dữ liệu tài liệu và phép đo đồng dạng cosine. Ở đây ta giả sử rằng
dữ liệu tài liệu được biểu diễn như một ma trận có số hạng document. Mục tiêu
của chúng ta là tối đa hóa độ đồng dạng của những document trong một nhóm đối
với trọng tâm nhóm; số lượng này như là cohension của nhóm. Với mục đích này
ta thấy rằng trọng tâm nhóm là trung bình, như dữ liệu Euclid. Lượng tương tự đối
với SSE tổng cộng là cohension tổng cộng.
Total Cohension =
∑∑
= ∈
K
i Cx
i
i
cxine
1
),(cos
(8.3)
Trường hợp tổng quát
Có một số lựa chọn cho hàm lân cận, trọng tâm, và hàm mục tiêu có thể
dùng trong thuật toán K-means cơ bản. Bảng 8.2 biểu diễn một số lựa chọn có thể,
bao gồm hai cái mà chúng ta vừa mới thảo luận. Lưu ý rằng khoảng cách
Manhattan (L
1
) và mục tiêu tối thiểu hóa tổng các khoảng cách, trọng tâm thích
hợp là trung vò các điểm trong một nhóm.
Bảng 8.2. K-means: Những lựa chọn thông thường cho hàm lân cận, trọng
tâm, và hàm mục tiêu
Hàm lân cận Trọng tâm Hàm mục tiêu
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Manhattan (L1) Trung vò Tối thiểu hóa tổng khoảng cách L
1
của một đối
tượng đến trọng tâm của nhóm nó.
Euclid bình phương Trung bình Tối thiểu hóa tổng khoảng cách L
2
bình phương
của một đối tượng đến trọng tâm của nhóm nó.
Cosine Trung bình Tối đa hóa tổng sự đồng dạng cosine của một
đối tượng đến trọng tâm của nhóm nó.
Sự phân kỳ Bregman Trung bình Tối thiểu hóa tổng sự phân kỳ Bregman của
một đối tượng đến trọng tâm của nhóm nó.
Sự phân kỳ Bregman thật ra là một lớp phép đo lân cận bao gồm khoảng
cách Euclid bình phương,
2
2
L
, khoảng cách Mahalanobis, và sự đồng dạng cosine.
Sự quan trọng của hàm phân kỳ Bregman là hàm bất kỳ như vậy có thể được dùng
như cơ sở của thuật toán K-means với trung bình là trọng tâm. Nếu ta dùng hàm
phân kỳ Bregman như hàm lân cận, thì thuật toán gom nhóm có những thuộc tính
thông thường của K-means đối với độ hội tụ, cực tiểu đòa phương, v.v Hơn thế
nữa, những thuộc tính của thuật toán gom nhóm có thể được phát triển cho tất cả
sự phân kỳ Bregman. Thực vậy, những thuật toán K-means sử dụng sự đồng dạng
cosine hay khoảng cách Euclid bình phương là những trường hợp riêng của thuật
toán gom nhóm tổng quát dựa trên sự phân kỳ Bregman.
Sau đây, ta dùng dữ liệu hai chiều vì nó dễ giải thích K-means và những
thuộc tính của nó đối với loại dữ liệu này. Nhưng, như đã đề cập ở các đoạn trước,
K-means là một thuật toán gom nhóm rất tổng quát và có thể dùng cho rất nhiều
loại dữ liệu, như document và chuỗi thời gian.
Chọn những trọng tâm ban đầu
Khi khởi tạo các trọng tâm ngẫu nhiên, các lần chạy khác nhau của K-means
sinh ra những tổng SSE khác nhau. Ta minh họa điều này với tập hợp các điểm hai
chiều cho trong hình 8.3 với ba nhóm điểm. Hình 8.4(a) biểu diễn một cách gom
nhóm mà là cực tiểu toàn cục của SSE cho ba nhóm, trong khi hình 8.4(b) biểu
diễn một cách gom nhóm suboptimal mà chỉ là một cực tiểu đòa phương.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Chọn những trọng tâm ban đầu chính xác là bước mấu chốt của thuật toán K-
means cơ bản. Một cách tiếp cận thông thường là chọn những trọng tâm ban đầu
một cách ngẫu nhiên, nhưng những nhóm kết quả thường xấu.
Ví du: Những trọng tâm ban đầu xấu
Những trọng tâm ban đầu được chọn ngẫu nhiên có thể xấu. Ta có một ví dụ
minh họa điều này dùng cùng bộ dữ liệu như trong hình 8.3 và 8.4. Hình 8.3 và 8.5
biểu diễn các nhóm dẫn đến hai lựa chọn đặc biệt những trọng tâm ban đầu. (Ở cả
hai hình, vò trí của những trọng tâm nhóm trong những vòng lặp khác nhau được
biểu diễn bởi dấu gạch chéo).
Ví dụ: Những giới hạn của sự khởi tạo ngẫu nhiên
Một kỹ thuật được dùng thông thường để giải quyết vấn đề chọn những trọng
tâm ban đầu là thực hiện nhiều lần chạy, mỗi lần với một bộ khác nhau các trọng
tâm ban đầu được chọn ngẫu nhiên, và sau đó chọn ra tập hợp các nhóm với SSE
nhỏ nhất. Cách này có thể không thực hiện tốt, tùy thuộc vào tập dữ liệu và số
nhóm được tìm kiếm. Chúng ta biểu diễn điều này dùng bộ dữ liệu mẫu cho trong
hình 8.6(a). Dữ liệu bao gồm hai cặp nhóm, với các nhóm trong mỗi cặp (cặp trên-
dưới) gần nhau hơn các nhóm trong cặp khác. Hình 8.6(b-d) chỉ ra rằng nếu ta bắt
đầu với hai trọng tâm ban đầu đối với mỗi cặp nhóm, thì thậm chí khi tất cả trọng
tâm ở trong một nhóm duy nhất, những trọng tâm sẽ được phân phối lại để tìm
được các nhóm đúng. Tuy nhiên, hình 8.7 chỉ ra rằng nếu một cặp nhóm chỉ có một
trọng tâm ban đầu và cặp khác có ba, thì hai trong các nhóm đúng sẽ được kết hợp
và một nhóm đúng sẽ được chia ra.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Lưu ý rằng một phép gom nhóm tối ưu sẽ đạt được cho đến khi hai trọng tâm
ban đầu rơi vào trong một cặp nhóm, vì các trọng tâm sẽ được phân phối lại đến
mỗi nhóm.
Vì những vấn đề với việc dùng những trọng tâm ban đầu được chọn ngẫu
nhiên, mà những lần chạy lặp lại có thể không vượt qua. Một cách tiếp cận hiệu
quả là lấy một mẫu các điểm và gom nhóm chúng dùng kỹ thuật gom nhóm
hierarchical. K nhóm rút ra từ phép gom nhóm hierarchical, và những trọng tâm
của những nhóm đó được dùng như những trọng tâm ban đầu. Cách này thường
hoạt động tốt, nhưng thực hiện được chỉ nếu (1) bộ mẫu tương đối nhỏ, ví dụ, vài
trăm đến vài ngàn, và (2) K tương đối nhỏ so với kích thước mẫu.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Sau đây là một cách khác để chọn những trọng tâm ban đầu. Chọn ngẫu
nhiên điểm đầu tiên hay lấy trọng tâm của tất cả các điểm. Sau đó, chọn điểm xa
nhất đối với các trọng tâm ban đầu đã chọn. Theo cách này, ta có được một tập
các trọng tâm ban đầu được đảm bảo không chỉ được chọn ngẫu nhiên mà còn tách
rời nhau. Không may là cách như vậy có thể chọn những giá trò ngoại lệ, hơn là
các điểm trong các nhóm. Nó cũng tốn kém để tính toán điểm xa nhất từ tập các
trọng tâm ban đầu hiện tại. Để khắc phục vấn đề này, cách này thường dùng cho
một bộ mẫu các điểm. Vì những giá trò ngoại lệ hiếm khi xảy ra, chúng có khuynh
hướng không xuất hiện trong một mẫu ngẫu nhiên. Ngược lại, các điểm từ mỗi
nhóm có thể được bao gồm trừ phi kích thước mẫu rất nhỏ. Việc tính toán liên
quan đến tìm những trọng tâm ban đầu cũng được giảm đáng kể vì kích thước mẫu
nhỏ hơn nhiều so với số điểm.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
Sau đây, ta sẽ thảo luận hai cách khác với chất lượng tốt hơn (SSE thấp):
dùng một biến thể của K-means ít ảnh hưởng đến vấn đề khởi tạo hơn (bisecting
K-means) và dùng hậu xử lý.
Độ phức tạp thời gian và không gian
Yêu cầu không gian cho K-means là khiêm tốn nhất vì chỉ có những điểm dữ
liệu và trọng tâm được lưu trữ. Chính xác, không gian lưu trữ đòi hỏi là O((m +
K)n), với m là số điểm và n là số thuộc tính. Yêu cầu thời gian cho K-means cũng
khiêm tốn nhất – tuyến tính với số điểm dữ liệu. Cụ thể, thời gian đòi hỏi là
O(I*K*m*n), với I là số lần lặp cần cho sự hội tụ. Như đã đề cập, I thường nhỏ và
thường bò chặn, khi hầu hết những thay đổi tiêu biểu xảy ra trong vài vòng lặp đầu
tiên. Do đó, K-means tuyến tính theo m, số điểm, và hiệu quả cũng như đơn giản.
2.1.2 BISECTING K-MEANS
Thuật toán bisecting K-means là một mở rộng đơn giản của K-means cơ bản
dựa trên một ý tưởng đơn giản: đạt được K nhóm, chia tập hợp tất cả các điểm vào
hai nhóm, chọn một trong các nhóm này để chia ra, và lặp lại, cho đến khi tạo ra K
nhóm. Chi tiết của thuật toán bisecting K-means như sau:
Thuật toán 8.2 Thuật toán bisecting K-means.
1: Khởi tạo danh sách các nhóm để chứa nhóm bao gồm tất cả các điểm.
2: repeat
3: Loại bỏ một nhóm từ danh sách các nhóm.
4: {Thực hiện nhiều lần chia đôi “thử" nhóm được chọn.}
5: for i = 1 to number of trials do
6: Chia đôi nhóm được chọn bằng phương pháp K-means cơ
bản.
7: end for
8: Chọn ra hai nhóm từ việc chia đôi với SSE tổng cộng nhỏ nhất.
9: Thêm hai nhóm này vào danh sách các nhóm
10: until Danh sách nhóm chứa K nhóm.
Có nhiều cách khác nhau trong việc chọn ra nhóm nào để chia. Ta có thể
chọn nhóm lớn nhất ở mỗi bước, chọn nhóm với SSE lớn nhất, hay dùng một tiêu
chuẩn dựa trên cả kích thước và SSE. Những lựa chọn khác nhau sẽ cho ra những
nhóm khác nhau.
Ví du: Bisecing K-means và sự khởi tạo
Để minh họa rằng bisecting K-means ít bò ảnh hưởng bởi vấn đề khởi tạo
hơn, ta biểu diễn trong hình 8.8, bisecting K-means tìm ra bốn nhóm như thế nào
trong bộ dữ liệu ban đầu biểu diễn trong hình 8.6(a). Ở bước lặp 1, hai cặp nhóm
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
được tìm thấy; ở bước lặp 2, cặp nhóm bên phải được chia ra; và ở bước 3, cặp
nhóm bên trái được chia ra. Bisecting K-means ít gặp vấn đề hơn với việc khởi tạo
bởi vì nó thực hiện nhiều lần chia đôi thử và dùng lần thử có SSE nhỏ nhất, và bởi
vì chỉ có hai trọng tâm ở mỗi bước.
Cuối cùng, bằng cách ghi lại chuỗi các phép gom nhóm có được K-means
chia đôi các nhóm, ta cũng có thể dùng bisecting K-means để tạo ra hierarchical
clustering.
2.1.3 K-MEANS VÀ NHỮNG LOẠI NHÓM KHÁC NHAU
K-means và những biến thể của nó có một số hạn chế đối với việc tìm những
loại nhóm khác nhau. Đặc biệt, K-means gặp khó khăn trong việc dò tìm các các
nhóm “tự nhiên”, khi các nhóm không có dạng hình cầu hay các kích thước khác
nhau đáng kể. Điều này được minh họa bởi hình 8.9, 8.10, và 8.11. Trong hình 8.9,
K-means không thể tìm thấy ba nhóm tự nhiên vì một trong các nhóm lớn hơn rất
nhiều so với hai nhóm kia, và do đó, nhóm lớn hơn bò bẻ gãy, trong khi một trong
các nhóm nhỏ hơn kết hợp với phần gãy của nhóm lớn hơn. Trong hình 8.10, K-
means không thể tìm thấy ba nhóm tự nhiên vì hai nhóm nhỏ hơn dày đặc hơn
nhiều so với nhóm lớn hơn. Cuối cùng, trong hình 8.11, K-means tìm thấy hai
nhóm mà trộn lẫn các phần của hai nhóm tự nhiên vì các nhóm đó không có hình
cầu.
Sự khó khăn trong ba trường hợp này là hàm mục tiêu K-means không phù
hợp cho các loại nhóm mà ta đang cố tìm vì nó được cực tiểu hóa bởi kích thước
bằng và độ dày đặc của các nhóm hình cầu hay bởi các nhóm phân tách rõ ràng.
Tuy nhiên, những hạn chế này có thể khắc phục được, trong một số trường hợp,
nếu người dùng bằng lòng chấp nhận phép gom nhóm mà chia những nhóm tự
nhiên thành các nhóm con. Hình 8.12 biểu diễn điều gì xảy ra với ba tập dữ liệu
trước nếu ta tìm thấy sáu nhóm thay vì hai hay ba.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
2.1.4 NHỮNG ƯU ĐIỂM VÀ NHƯC ĐIỂM
K-means đơn giản và có thể dùng cho rất nhiều loại dữ liệu. Nó cũng thật sự
hiệu quả, thậm chí thực hiện nhiều lần chạy. Một số biến thể, bao gồm bisecting
K-means, thậm chí hiệu quả hơn, và ít bò ảnh hưởng hơn bởi vấn đề khởi tạo. K-
means không phù hợp cho tất cả các loại dữ liệu. Tuy nhiên, K-means không thể
xử lý các nhóm không là hình cầu hay các nhóm có kích thước và độ dày đặc khác
nhau, mặc dù nó có thể tìm thấy các nhóm con nếu như đủ nhiều các nhóm được
chỉ rõ. K-means cũng có gặp vấn đề khi gom nhóm dữ liệu chứa những giá trò
ngoại lệ. Tìm và loại bỏ các giá trò ngoại lệ có thể giúp đáng kể trong các trường
hợp như vậy. Cuối cùng, K-means bò giới hạn đối với dữ liệu có trung tâm (center,
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
centroid). Một kỹ thuật liên quan, K-medoid clustering, không có hạn chế này,
nhưng tốn kém hơn.
2.1.5 K-MEANS NHƯ MỘT VẤN ĐỀ TỐI ƯU HÓA
Ở đây, ta sẽ nghiên cứu sâu vào phương pháp toán đằng sau phương pháp K-
means. Phần này, có thể được bỏ qua mà không mất tính liên tục, đòi hỏi kiến
thức giải tích thông qua những đạo hàm riêng.
Như đã đề cập từ trước, cho một hàm mục tiêu là “tối thiểu hóa SSE”, phép
gom nhóm có thể coi như vấn đề tối ưu hóa. Một cách để giải quyết vấn đề này –
tìm một điều kiện tối ưu toàn cục – là đánh số tất cả các cách khả thi để chia các
điểm vào các nhóm và sau đó chọn ra tập các nhóm mà thỏa mãn hàm mục tiêu
nhất, ví dụ, tối thiểu hóa SSE tổng. Dó nhiên, cách vét cạn này là bất khả thi về
mặt tính toán và do đó, một cách tiếp cận thực tế hơn rất cần thiết, cho dù cách
tiếp cận đó tìm ra những giải pháp không đảm bảo tối ưu. Một kỹ thuật, được biết
như gradient descent, dựa trên việc chọn một giải pháp ban đầu và sau đó lặp lại
hai bước sau: tính toán sự thay đổi đến giải pháp mà tối ưu hóa hàm mục tiêu nhất
và sau đó cập nhật giải pháp.
Ta giả sử rằng dữ liệu là một chiều, nghóa là, dist(x, y) = |x – y|. Điều này
thực chất không làm thay đổi bất cứ thứ gì, nhưng làm đơn giản hóa đáng kể khái
niệm.
Đạo hàm của K-means như một thuật toán cực tiểu hóa SSE
Trong phần này, ta biểu diễn làm thế nào trung tâm trong thuật toán K-
means có thể bắt nguồn toán học khi mà hàm lân cận là khoảng cách Euclid và
mục tiêu là tối thiểu hóa SSE. Đặc biệt, ta điều tra làm thế nào ta có thể cập nhật
một trung tâm nhóm tốt nhất để cho SSE được cực tiểu hóa. Trong thuật ngữ toán
học, ta sẽ cực tiểu hóa phương trình 8.1, ta sẽ lặp lại ở đây, đặc biệt cho dữ liệu
một chiều.
∑∑
= ∈
=
K
i Cx
i
i
xcdistSSE
1
2
),(
(8.4)
Ở đây, C
i
là nhóm thứ i, x là một điểm trong C
i
, và c
i
là trung bình của nhóm
thứ i. Xem bảng 8.1 với danh sách các ký hiệu.
Ta có thể giải quyết cho trung tâm thứ k là c
k
, mà tối thiểu hóa phương trình
8.4, bằng cách lấy vi phân SSE, gán cho nó bằng 0, và giải như dưới đây.
0).(2)()(
1
2
1
2
=−=−
∂
∂
=−
∂
∂
=
∂
∂
∑∑∑∑∑
∈= ∈= ∈
kii
Cx
k
K
i Cx
i
k
K
i Cx
i
kk
xcxc
c
xc
c
SSE
c
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
∑∑∑
∈∈∈
=⇒=⇒=−
kkk
Cx
k
k
Cx
kk
Cx
k
x
m
cxcmxc
1
0).(2
Do đó, như đề cập trước, trung tâm tốt nhất để tối thiểu SSE của một nhóm là
trung bình các điểm trong nhóm.
Đạo hàm của K-means đối với SAE
Để biểu diễn rằng thuật toán K-means có thể áp dụng cho rất nhiều hàm
mục tiêu khác nhau, ta xem làm thế nào để phân chia dữ liệu vào K nhóm mà tổng
các khoảng cách Manhattan (L
1
) của các điểm từ trung tâm của nhóm chúng được
tối thiểu hóa. Ta đang tìm cách cực tiểu hóa tổng các sai số tuyệt đối L
1
(SAE)
theo phương trình dưới đây, với
1
L
dist
là khoảng cách L
1
. Để đơn giản ý tưởng, ta
sử dụng dữ liệu một chiều, nghóa là,
xcdist
iL
−=
1
.
∑∑
= ∈
=
K
i Cx
iL
i
xcdistSAE
1
),(
1
(8.5)
Ta có thể giải quyết cho trung tâm thứ k là c
k
, mà tối thiểu hóa phương trình
8.5, bằng cách lấy vi phân SAE, gán bằng 0, và giải.
0
11
=−
∂
∂
=−
∂
∂
=−
∂
∂
=
∂
∂
∑∑∑∑∑
∈= ∈= ∈
kii
Cx
k
k
K
i Cx
i
k
K
i Cx
i
kk
xc
c
xc
c
xc
c
SSE
c
00 =−⇒=−
∂
∂
∑∑
∈∈
kk
Cx
k
Cx
k
k
cxsignxc
c
Nếu ta giải quyết cho c
k
, ta tìm
}{
kk
Cxmedianc ∈=
, trung vò của các điểm
trong nhóm.
SVTH: Phạm Quang Diệu – MSSV: CH1101077
Tìm hiểu Clustering - Khai Phá Dữ Liệu Và Kho Dữ Liệu
Trang
2.2 AGGLOMERATIVE HIERARCHICAL
CLUSTERING (AHC)
Hierarchical Clustering Techniques là một phương pháp gom nhóm quan
trọng thứ hai. Như với K-means, cách tiếp cận này là những cái cũ có quan hệ với
nhau được kết hợp thành nhiều thuật toán gom nhóm, nhưng chúng vẫn còn được
dùng phổ biến. Có hai cách tiếp cận cơ bản cho một Hierarchical Clustering thông
thường:
Agglomerative: Bắt đầu với những điểm như là những nhóm độc lập, và tại
mỗi bước, kết nối cặp nhóm lại với nhau. Điều này yêu cầu đònh nghóa được khái
niệm độ gần nhóm
Divisive: Bắt đầu với một nhóm bao gồm tất cả, và tại mỗi bước tách một
nhóm cho đến khi chỉ còn những nhóm đơn phần tử. Trong trường hợp này, chúng
ta cần quyết đònh nhóm nào để tách ra tại mỗi bước và làm thế nào để thực hiện
việc tách đó. Những kỹ thuật AHC là thông dụng nhất, và trong bài này, chúng ta
sẽ tập trung riêng trên những phương pháp này
Một Hierarchical Clustering thường biểu diễn bằng đồ thò sử dụng một cây
giống như biểu đồ gọi là biểu đồ cây (dendrogram). Những biểu diễn gồm cả hai
quan hệ nhóm và nhóm con và thứ tự nhóm được nối với nhau (quanh điểm tụ)
hoặc tách (quan điềm chia nhỏ). Với những tập hợp điểm hai chiều như trong ví dụ
mà chúng ta sẽ sử dụng, một nhóm phân cấp cũng có thể được mô tả bằng đồ thiï
sử dụng biểu đồ nhóm phân cấp. Hình 8.13 biểu diễn một ví dụ của hai dạng này
cho tập hợp bốn điểm hai chiều. Những điểm này được nhóm bằng Single Link sẽ
được mô tả trong bài 8.3.2.
2.2.1 THUẬT TOÁN AHC CƠ BẢN
SVTH: Phạm Quang Diệu – MSSV: CH1101077