Thuật toỏn K-MEANS

Một phần của tài liệu Một số vấn đề về phân cụm dữ liệu (Trang 40)

K-means là một trong những thuật toỏn hc khụng giỏm sỏt đơn giản nhất để giải quyết vấn đề phõn cụm dữ liệu. K-means được cụng bố lần đầu tiờn bởi J.B. MacQueen vào năm 1967, cho đến nay đó cú nhiều dạng biến đổi khỏc nhau của thuật toỏn này. Trong thuật toỏn K-means, cỏc cụm được định nghĩa dựa trờn trung tõm của cỏc phần tử. Phương phỏp này dựa trờn độ đo khoảng cỏch của cỏc đối tượng dữ liệu trong cụm. Trong thực tế, nú đo khoảng cỏch của mỗi đối tượng dữ liệu tới trung tõm của cụm. Trung tõm của cụm được xem là giỏ trị trung bỡnh của cỏc đối tượng. Như vậy, nú cần khởi tạo một tập trung tõm cỏc cụm ban đầu, thụng qua đú lặp lại cỏc bước như gỏn

mỗi đối tượng vào cụm mà cú trung tõm gần nú nhất, tớnh toỏn lại trung tõm của mỗi cụm trờn cơ sở cú thờm cỏc đối tượng vừa gỏn mới. Quỏ trỡnh này dừng khi trung tõm hội tụ. Hỡnh 3.4 minh họa sự khởi tạo ranh giới cho cỏc cụm ban đầu trong khụng gian hai chiều [7].

Hỡnh 3.4. Xỏc định ranh giới của cỏc cụm khởi tạo

Trong phương phỏp k-means, chọn một giỏ trị k và sau đú chọn ngẫu nhiờn k trung tõm của cỏc đối tượng dữ liệu. Tớnh toỏn khoảng cỏch giữa đối tượng dữ liệu và trung bỡnh mỗi cụm để tỡm kiếm phần tử nào là tương tự và thờm vào cụm đú. Từ khoảng cỏch này cú thể tớnh toỏn trung bỡnh mới của cỏc cụm và lặp lại quỏ trỡnh đú cho đến khi mỗi một đối tượng dữ liệu là một bộ phận của một cụm k.

Mục đớch của thuật toỏn k-means là sinh k cụm dữ liệu {C1,C2,…,Ck} từ một tập dữ liệu chứa n đối tượng trong khụng gian d chiều Xi=(xi1,xi2,…,xid), i=1ữn, sao cho hàm tiờu chuẩn: E= ( )

1 2 i k i x Ci m x D − ∑∑ = ∈ đạt giỏ trị tối thiểu.

Trong đú, mi là trọng tõm của cụm Ci, D là khoảng cỏch giữa hai đối tượng.

Hỡnh 3.5. Tớnh toỏn trọng tõm của cỏc cụm mới

Trọng tõm của một cụm là một vectơ, trong đú giỏ trị của mỗi phần tử của nú là trung bỡnh cộng của cỏc thành phần tương ứng của cỏc đối tượng dữ liệu trong cụm đang xột. Tham số đầu vào của thuật toỏn là số cụm k, tham số đầu ra của thuật toỏn là cỏc trọng tõm của cỏc cụm dữ liệu. Độ đo khoảng cỏch của cỏc đối tượng dữ liệu thường dựng là khoảng cỏch Eclidean. Hàm tiờu chuẩn và độ đo khoảng cỏch cú thể được xỏc định cụ thể hơn tựy thuộc vào từng ứng dụng.

Thut toỏn k-means bao gm cỏc bước cơ bn sau:

Input: Số cụm k và cỏc trọng tõm cụm {mj}, j=1ữk.

Output: Cỏc cụm C[i] (i=1ữk) và hàm tiờu chuẩn E đạt giỏ trị tối thiểu.

Begin

Bước 1: Khởi tạo

Chọn k trọng tõm {mj} (j=1ữk) ban đầu trong khụng gian Rd (d là số chiều của dữ liệu). Việc lựa chọn cú thể ngẫu nhiờn hoặc theo kinh nghiệm.

Bước 2: Tớnh toỏn khoảng cỏch

Đối với mỗi điểm Xi (i=1ữk), tớnh toỏn khoảng cỏch của nú tới mỗi trọng tõm mj (j=1ữk), sau đú tỡm trọng tõm gần nhất đối với mỗi điểm.

Bước 3: Cập nhập lại trọng tõm

Đối với mỗi (j=1ữk), cập nhập lại trọng tõm cụm mj bằng cỏch xỏc định trung bỡnh cộng của vectơ đối tượng dữ liệu.

Bước 4: Điều kiện dừng

Lặp lại cỏc bước 2 và 3 cho đến khi cỏc trọng tõm của cụm khụng thay đổi.

End.

Cỏc bước thực hiện k-means với k=2

Hỡnh 3.6. Vớ dụ của thuật toỏn K-MEANS với k=2

Thuật toỏn k-means cú một sốđặc điểm cần chỳ ý

- Luụn cú k cụm dữ liệu

- Cỏc cụm khụng phõn cấp (khụng cú thứ bậc) và khụng bị chồng chộo lờn nhau.

- Mọi thành viờn của một cụm là gần với chớnh cụm đú hơn bất cứ một cụm nào khỏc.

K-means biểu diễn cỏc cụm bởi cỏc trọng tõm của cỏc đối tượng trong cụm đú. Thuật toỏn k-means được chứng minh là hội tụ và cú độ phức tạp tớnh toỏn là O((3nkd)ιTflop). Trong đú, n là số đối tượng dữ liệu, k là số cụm dữ liệu, d là số chiều, ι là số vũng lặp, Tflop là thời gian để thực hiện một phộp tớnh cơ sở như nhõn, chia,…Trong khi thi hành, một vấn đề là làm sao gỡ cỏc nỳt thắt trong cỏc trường hợp mà ở đú cú nhiều trung tõm cú cựng khoảng cỏch với một đối tượng. Trong trường hợp này, cú thể gỏn cỏc đối tượng ngẫu nhiờn cho một trong cỏc cụm thớch hợp hoặc xỏo trộn cỏc đối tượng để vị trớ mới của nú khụng gõy ra cỏc nỳt thắt. Như vậy, do k-means phõn tớch phõn cụm đơn giản nờn cú thể ỏp dụng đối với tập dữ liệu lớn. Tuy nhiờn, nhược điểm của k-means chỉ là ỏp dụng với dữ liệu cú thuộc tớnh số và rất phự hợp với cỏc cụm cú dạng hỡnh cầu, k-means cũn rất nhạy cảm với nhiễu và cỏc

phần tử ngoại lai trong dữ liệu.

Hơn nữa, chất lượng PCDL của thuật toỏn k-means phụ thuộc nhiều vào cỏc tham số đầu vào như: số cụm k và k trọng tõm ban đầu. Trong trường hợp, cỏc trọng tõm khởi tạo ban đầu mà quỏ lệch so với cỏc trọng tõm tự nhiờn của cụm thỡ kết quả phõn cụm của k-means rất thấp, nghĩa là cỏc cụm được khỏm phỏ rất lệch so với thực tế. Trờn thực tế, chưa cú một giải phỏp tối ưu nào để chọn cỏc tham số đầu vào, giải phỏp thường được sử dụng nhất là thử nghiệm với cỏc giỏ trịđầu vào k khỏc nhau rồi chọn ra giải phỏp tốt nhất.

Một số hỡnh dạng cụm dữ liệu được khỏm phỏ bởi k-means như hỡnh 3.7.

Hỡnh 3.7. Một số dạng cụm được khỏm phỏ bởi k-means 3.2.2. Thuật toỏn PAM

Thuật toỏn Pam (Partition Around Medoids) là thuật toỏn mở rộng của k-means được đưa ra bởi (Kaufman and Rousseeuw, 1987). So với k-means, Pam cú khả năng xử lý hiệu quả đối với dữ liệu nhiễu hoặc ngoại lai, Pam sử dụng cỏc đối tượng medoid để biểu diễn cỏc cụm dữ liệu. Medoid là đối tượng đặt ti v trớ trung tõm bờn trong mi cm. Vỡ vậy, đối tượng medoid ớt bị ảnh hưởng bởi những đối tượng ở xa trung tõm. Trong khi đú, cỏc trọng tõm của thuật toỏn k-means lại rất bị ảnh hưởng bởi những đối tượng ở xa trung tõm này. Ban đầu, Pam khởi tạo k đối tượng medoid và phõn phối cỏc đối tượng cũn lại vào cỏc cụm với cỏc đối tượng medoid đại diện tương ứng sao cho chỳng tương tđối với medoid trong cụm nhất [3][13].

Để xỏc định cỏc medoid, Pam bắt đầu bằng cỏch lựa chọn k đối tượng medoid bất kỳ. Sau mỗi bước thực hiện, Pam cố gắng hoỏn chuyển giữa đối tượng medoid Om và một đối tượng Op khụng phải medoid, miễn là sự hoỏn chuyển này nhằm cải tiến chất lượng của phõn cụm, quỏ trỡnh này kết thỳc khi chất lượng cỏc cụm khụng thay đổi. Chất lượng phõn cụm được đỏnh giỏ thụng qua hàm tiờu chun, chất lượng phõn cụm tốt nhất khi hàm tiờu chuẩn đạt giỏ trị tối thiểu. Thut toỏn Pam ỏp dng cho lp d liu khụng gian.

Pam tớnh giỏ trị Cjmp cho tất cả cỏc đối tượng Ojđể làm căn cứ cho việc hoỏn chuyển giữa Om và Op.

Om: Là đối tượng medoid hiện thời cần thay thế. Op: Là đối tượng medoid mới thay thế cho Om.

Oj: Là đối tượng dữ liệu (khụng phải medoid) cú thể di chuyển sang cụm khỏc.

Oj,2: Là đối tượng medoid hiện thời gần đối tượng Oj nhất. v Cú bn cỏch tớnh khỏc nhau cho mi trường hp Cjmp

Trường hp 1: Giả sử Oj hiện thời thuộc về cụm cú đại diện là Om và Oj tương tự với Oj,2 hơn là Op (d(Oj,Op)≥d(Oj,Oj,2)). Trong khi đú, Oj,2 là đối tượng medoid xếp thứ 2 tới Oj trong số cỏc medoid. Trong trường hợp này, thay thế Om bởi đối tượng medoid mới Op và Oj sẽ thuộc về cụm cú đối tượng đại diện là Oj,2. Vỡ vậy, giỏ trị hoỏn chuyển Cjmpđược xỏc định như sau:

Cjmp = d(Oj,Oj,2)-d(Oj,Om) (1) Giỏ trị Cjmp là khụng õm

Trường hp 2: Oj hiện thời thuộc về cụm cú đại diện là Om, nhưng Oj ớt tương tự với Oj,2 hơn so với Op (d(Oj,Op)<d(Oj,Oj,2)). Nếu Om được thay thế bởi Op thỡ Oj sẽ thuộc về cụm cú đại diện là Op. Vỡ vậy, giỏ trị Cjmp được xỏc định như sau:

Cjmp = d(Oj,Op)-d(Oj,Om) (2) Giỏ trị Cjmp cú thể là õm hoặc dương

Hỡnh 3.10. Trường hợp Cjmp cú thể õm hoặc dương

Trường hp 3: Giả sử Oj hiện thời khụng thuộc về cụm cú đối tượng đại diện là Om mà thuộc về cụm cú đại diện là Oj,2. Mặt khỏc, giả sử Oj tương tự với Oj,2 hơn so với Op. Khi đú, nếu Omđược thay thế bởi Op thỡ Oj vẫn sẽ ở lại trong cụm cú đại diện là Oj,2.

Do đú: Cjmp=0 (3)

Hỡnh 3.11. Trường hợp Cjmp=0

Trường hp 4: Oj hiện thời thuộc về cụm cú đại diện là Oj,2 nhưng Oj ớt tương tự tới Oj,2 hơn so với Op. Vỡ vậy, nếu thay thế Om bởi Op thỡ Oj sẽ chuyển từ cụm Oj,2 sang cụm Op. Do đú, giỏ trị hoỏn chuyển Cjmp được xỏc định:

Giỏ trị Cjmp là luụn õm

Hỡnh 3.12. Trường hợp Cjmp luụn õm

Kết hợp cả bốn trường hợp trờn, tổng giỏ trị hoỏn chuyển Om bằng Op được xỏc định: TCmp=

j jmp

C (5)

Thut toỏn Pam gm cỏc bước cơ bn như sau:

Input: Tập dữ liệu cú n phần tử, số cụm k

Output: K cụm dữ liệu sao cho chất lượng phõn hoạch là tốt nhất

Begin

1. Chọn k đối tượng medoid bất kỳ.

2. Tớnh TCmp cho tất cả cỏc cặp Om, Op. Trong đú Om là đối tượng medoid, Op khụng phải là đối tượng medoid.

3. Chọn cặp đối tượng Om, Op. Tớnh minOm, minOp, TCmp. Nếu TCmp là õm, thay thế Om bởi Op và quay lại bước 2. Nếu TCmp dương, chuyển sang bước 4.

4. Với mỗi đối tượng khụng phải medoid, xỏc định đối tượng medoid tương tự với nú nhất, đồng thời gỏn nhón cụm cho chỳng.

End.

Trong bước 2 và 3, Pam phải duyệt tất cả là k(n-k) cặp Om,Op. Với mỗi cặp, việc tớnh toỏn TCmp yờu cầu kiểm tra (n-k) đối tượng. Vỡ vy, độ phc tp tớnh toỏn ca Pam là O(Ik(n-k)2), trong đú I là s vũng lp. Như vậy, thuật toỏn Pam kộm hiệu quả về thời gian tớnh toỏn khi giỏ trị k và n là lớn.

Thut toỏn Pam cú mt s đặc đim cn chỳ ý

- Pam xử lý hiệu quả hơn k-means đối với dữ liệu nhiễu hoặc ngoại lai bởi vỡ một đối tượng medoid ớt chịu ảnh hưởng bởi ngoại lai.

- Pam làm việc hiệu quả với những tập dữ liệu nhỏ, nhưng khụng hiệu quả với những tập dữ liệu lớn.

Cỏc bước thực hiện của thuật toỏn Pam với k=2

Hỡnh 3.13. Thuật toỏn Pam với k=2 3.2.3. Thuật toỏn CLARA

Thuật toỏn Clara (Clustering LARge Applications) được đưa ra bởi (Kaufmann and Rousseeuw, 1990) nhằm khắc phục những nhược điểm thuật toỏn Pam trong những trường hợp tập dữ liệu lớn. Clara tiến hành trớch mẫu cho tập dữ liệu cú n phần tử, nú ỏp dụng thuật toỏn Pam cho mẫu này và tỡm ra đối tượng trung tõm medoid cho mẫu được trớch ra từ dữ liệu này. Nếu mẫu dữ liệu được trớch theo một cỏch ngẫu nhiờn, thỡ medoid của nú xấp xỉ với cỏc medoid của toàn bộ tập dữ liệu ban đầu. Để tiến tới một xấp xỉ tốt hơn, Clara

đưa ra nhiều cỏch lấy mẫu và thức hiện phõn cụm cho mỗi trường hợp, sau đú tiến hành chọn kết quả phõn cụm tốt nhất khi thực hiện phõn cụm trờn mẫu này. Để cho chớnh xỏc, chất lượng của cụm được đỏnh giỏ thụng qua độ phi tương tự trung bỡnh của toàn bộ cỏc đối tượng dữ liệu trong tập đối tượng dữ liệu ban đầu.

Vớ dụ thực nghiệm với năm mẫu dữ liệu cú kớch thước là 40+2k cho kết quả tốt. Cỏc bước thực hiện của thuật toỏn Clara với 5 mẫu dữ liệu được mụ tả như sau:

Clara(5) Begin

1. For i=1 to 5 do

2. Lấy một mẫu cú 40+2k đối tượng dữ liệu ngẫu nhiờn từ tõp dữ liệu và ỏp dụng thuật toỏn Pam cho mẫu dữ liệu này nhằm để tỡm cỏc đối tượng medoid đại diện cho cỏc cụm.

3. Đối với mỗi đối tượng Oj trong tập dữ liệu ban đầu, xỏc định đối tượng medoid tương tự nhất trong số k đối tượng medoid.

4. Tớnh độ phi tương tự trung bỡnh cho phõn hoạch cỏc đối tượng thu được ở bước trước, nếu giỏ trị này bộ hơn giỏ trị tối thiểu hiện thời thỡ sử dụng giỏ trị này thay cho giỏ trị tối thiểu ở trạng thỏi trước, như vậy tập k đối tượng medoid xỏc định ở bước này là tốt nhất cho đến thời điểm này.

5. Quay về bước 1

End.

Độ phức tạp của thuật toỏn Clara trong trường hợp này là O(k(40+k)2+k(n-k)), Clara cú thể ỏp dụng cho tp d liu ln. Cần chỳ ý đối với kỹ thuật tạo mẫu trong PCDL, kết quả phõn cụm cú thể khụng phụ thuộc vào tập dữ liệu khởi tạo nhưng kết quả này chỉ là tối ưu cục bộ. Chẳng hạn

như nếu cỏc đối tượng medoid của dữ liệu khởi tạo khụng nằm trong mẫu thỡ kết qủa thu được khụng được đảm bảo là tốt nhất.

Phương phỏp medoid khụng hiệu quả với tập dữ liệu lớn, trong trường hợp đú Clara phỏt huy tỏc dụng. Trong phương phỏp Clara, một phần nhỏ dữ liệu hiện thời được chọn như là một đại diện của dữ liệu thay vỡ sử dụng toàn bộ dữ liệu và sau đú medoid được chọn từ mẫu sử dụng Pam. Nếu mẫu được chọn theo cỏch ngẫu nhiờn thỡ nú phải cú đại diện từ tập dữ liệu gốc. Cỏc đối tượng đại diện medoid được chọn là tương tự mà đó được chọn từ tập dữ liệu. Nú đưa ra nhiều mẫu của tập dữ liệu, ỏp dụng Pam trờn mỗi mẫu và trả lại cụm tốt nhất ở đầu ra. Như vậy, Clara cú thể xử lý được tập dữ liệu lớn hơn Pam [13].

3.2.4. Thuật toỏn CLARANS

Thuật toỏn CLARANS (A Clustering Algorithm Based On Randomized Search, Ng and Han’94) cũng sử dụng kiểu k-medoids, nú kết hp thut toỏn Pam vi chiến lược tỡm kiếm kinh nghim mi. í tưởng cơ bản của Clarans là khụng xem xột tất cả cỏc khả năng cú thể thay thế cỏc đối tượng tõm medoids bởi một đối tượng khỏc, nú thay thế cỏc đối tượng tõm này ngay lập tức nếu việc thay thế này cú tỏc động tốt tới chất lượng phõn cụm chứ khụng cần cỏch xỏc định tối ưu nhất.

Clarans lấy ngẫu nhiờn một đối tượng của k đối tượng medoid trung tõm của cụm và cố gắng thay thế nú với một đối tượng được chọn ngẫu nhiờn trong (n-k) đối tượng cũn lại. Cụm thu được sau khi thay thế đối tượng trung tõm được gọi là một lỏng giềng của phõn hoạch cụm trước đú. Số cỏc lỏng giềng được hạn chế bởi tham số do người dựng đưa vào là Maxneighbor, quỏ trỡnh lựa chọn cỏc lỏng giềng này là hoàn toàn ngẫu nhiờn. Tham số

Numlocal cho phộp người dựng xỏc định số vũng lặp tối ưu cục bộ được tỡm kiếm. Khụng phải tất cả cỏc lỏng giềng được duyệt mà chỉ cú Maxneighbor

được duyệt. Nếu một lỏng giềng tốt hơn được tỡm thấy, thỡ Clarans di chuyển lỏng giềng đú tới nỳt và quỏ trỡnh bắt đầu lặp lại. Nếu khụng thỡ kết quả cụm hiện thời là tối ưu cục bộ, nếu tối ưu cục bộ được tỡm thấy, Clarans bắt đầu với lựa chọn nỳt ngẫu nhiờn mới trong tỡm kiếm tối ưu cục bộ mới.

Clarans khụng thớch hợp với tập dữ liệu lớn bởi vỡ nú lấy phần nhỏ của toàn bộ tập dữ liệu và phần này được chọn để đại diện toàn bộ tập dữ liệu và thực hiện sau đú. Clarans khụng bị giới hạn khụng gian tỡm kiếm như đối tượng Clara. Và trong cựng một lượng thời gian thỡ chất lượng của phõn cụm là lớn hơn Clara.

Như vậy, quỏ trỡnh hoạt động của Clarans tương tự với quỏ trỡnh hoạt động của Clara nhưng ở giai đoạn lựa chọn cỏc trung tõm medoid của dữ liệu,

Một phần của tài liệu Một số vấn đề về phân cụm dữ liệu (Trang 40)

Tải bản đầy đủ (PDF)

(118 trang)