CÁC THUẬT TOÁN PHÂN CỤM PHÂN CẤP

Một phần của tài liệu Một số thuật toán phân cụm dữ liệu (Trang 55)

3.2.1 THUẬT TOÁN HERACHICAL

3.2.1.1 Nguyờn lý thực hiện

Cho một tập N phần tử cần đƣợc phõn cụm và một ma trận khoảng cỏch kớch thƣớc N*N (hoặc ma trận tƣơng tự), tiến trỡnh thực hiện thuận toỏn phõn cụm phõn cấp đƣợc xỏc định nhƣ sau:

Bƣớc 1: gỏn mỗi phần tử cho một cụm, nếu chỳng ta cú N phần từ thỡ tại bƣớc này, chỳng ta sẽ cú N cụm, mỗi cụm chỉ chứa một phần tử. Ma trận khoảng cỏch (tƣơng tự) giữa cỏc cụm sẽ bằng với ma trận khoảng cỏch (tƣơng tự) giữa cỏc phần tử của cỏc cụm đú.

Bƣớc 2: Tớm cỏc cặp cụm gần nhau nhất và hợp nhất chỳng thành một cụm, chỳng ta sẽ bớt đƣợc một cụm (N-1).

Bƣớc 3: Tớnh khoảng cỏch (độ tƣơng tự) giữa cụm mới với cỏc cụm đƣợc tạo tại bƣớc 1 (cụm cũ).

Bƣớc 4: Lặp bƣớc 2 và bƣớc 3 cho đến khi tất cả cỏc phần tử đƣợc phõn cụm thành một cụm duy nhất cú kớch thƣớc N hay N phần tử.

Tất nhiờn chỳng ta khụng muốn phõn cụm thành một cụm duy nhất, điều này cho chỳng ta thấy cỏch thức xõy dựng một cõy phõn cấp đầy đủ, tƣơng ứng với cỏc cấp khỏc nhau của cõy sẽ cho chỳng ta số cụm thớch hợp và chỳng ta cú thể dừng thuật toỏn một khi đỏp ứng đƣợc yờu cầu về số cụm. Chẳng hạn với k cụm, chỳng ta sẽ cắt sau khi thực hiện đƣợc N-k+1 bƣớc.

Bƣớc 3 cú thể đƣợc dừng với cỏc cỏch khỏc nhau, cỏc cỏch này đƣợc phõn biệt thành phõn cụm liờn kết đơn (single-linkage) và liờn kết trọn vẹn (complete-linkage) hay liờn kết trung bỡnh (average-linkage).

Với phõn cụm liờn kết đơn (single-linkage) hay cũn gọi là liờn kết rừ ràng hay phƣơng phỏp tối thiểu, chỳng ta cho rằng khoảng cỏch giữa một cụm tới cụm khỏc bằng với khoảng cỏch ngắn nhất giữa cỏc phần tử thuộc hai cụm đú. Nếu dữ liệu chứa độ tƣơng tự, chỳng ta cho rằng độ tƣơng tự giữa hai cụm bằng độ tƣơng tự lớn nhất giữa phần tử của cụm này với bất kỳ phần tử nào của cụm kia.

Với phõn cụm liờn kết trọn vẹn (complete-linkage) hay cũn gọi là phúng đại hay phƣơng phỏp lớn nhất, chỳng ta cho rằng khoảng cỏch giữa cụm này với cụm kia bằng khoảng cỏch lớn nhất giữa cỏc phần tử của hai cụm đú.

Trong phƣơng phỏp liờn kết trung bỡnh (average-linkage), cỏc giỏ trị đú đƣợc tớnh bằng trung bỡnh khoảng cỏch giữa bất kỳ phần tử nào thuộc cụm này tới phần tử thuộc cụm kia.

Phƣơng phỏp phõn cụm phõn lớp cũn đƣợc gọi là tớch tụ bởi lẽ nú kết hợp cỏc cụm một cỏch lặp lại.

Cũn cú một phƣơng phỏp gọi là phõn cụm phõn cấp phõn chia mà bắt đầu thực hiện với tấ cả cỏc phần tử trong một cụm, sau đú chia chỳng thành những phần nhỏ hơn. Phƣơng phỏp này nhỡn chung rất ớt khi đƣợc ỏp dụng trong thực tế.

3.2.1.2 Mụ tả thuật toỏn

Chỳng ta sẽ xem xột trƣờng hợp liờn kết đơn. Thuật toỏn là một lƣợc đồ vun đống và sẽ xoỏ dũng/cột của ma trận tạm thời lƣu cỏc cụm cũ để tạo cỏc cụm mới.

Ma trận N*N với D = [d(i,j)]. Thứ tự cỏc cụm sẽ đƣợc gỏn theo thứ tự 0,1,..., (n-1) và L(k) là bậc của cụm thứ k. Một cụm cú số thứ tự là m sẽ biểu thị là (m) và khoảng cỏch giữa cỏc cụm (r) và (s) sẽ biểu thị bằng d[(r),(s)]. Thuật toỏn thực hiện nhƣ sau:

1. Bắt đầu với việc gỏn mức L(0) = 0 và số thứ tự m = 0. 2. Tỡm cụm cú khoảng cỏch nhỏ nhất và gọi là (r), (s), với

d[(r),(s)] = min d[(i),(j)] với i, j = 1..n

3. Tăng số thứ tự: m = m +1. Kết hợp hai cụm (r) và (s) thành một cụm duy nhất để thực hiện bƣớc tiếp theo. Đặt mức của cụm này là L(m) = d[(r),(s)].

4. Cập nhật ma trận khoảng cỏch D bằng cỏch xoỏ cỏc dũng, cột tƣơng ứng với hai cụm (r) và (s), sau đú thờm cột và dũng cho cụm mới, biểu thị (r,s) và cụm cũ (k) đƣợc định nghĩa nhƣ sau:

d[(k), (r,s)] = min d[(k),(r)], d[(k),(s)]

5. Nếu tất cả cỏc phần tử đều thuộc một cụm thỡ dừng lại, khụng thỡ quay lại bƣớc 2.

3.2.1.3 Vớ dụ

Sử dụng phƣơng phỏp phõn cụm phõn cấp để phõn cụm cỏc địa điểm bay giữa cỏc thành phố của Italia. Khoảng cỏch đƣợc cho trong bảng (tớnh theo K-means). Chỳng ta ỏp dụng phƣơng phỏp liờn kết đơn.

Ma trận khoảng cỏch đầu vào nhƣ sau:

BA FI MI NA RM TO BA 0 662 877 255 412 996 FI 662 0 295 468 268 400 MI 877 295 0 754 564 138 NA 255 468 754 0 219 869 RM 412 268 564 219 0 669 TO 996 400 138 869 669 0

Khoảng cỏch gần nhất giữa thành phố là MI và TO, 138km. Chỳng ta kết hợp thành một cụm cú tờn là “MI/TO”. Mức của cụm mới là L(MI/TO) = 138 và số thứ tự mới m = 1.

Chỳng ta tớnh khoảng cỏch từ cụm mới hợp nhất tới tất cả cỏc cụm khỏc. Trong phõn cụm liờn kết đơn, đõy chớnh là khoảng cỏch nhỏ nhất của cỏc phần tử thuộc hai cụm. Do đú, khoảng cỏch từ “MI/TO” tới RM đƣợc chọn là 564, đú là khoảng cỏch từ MI tới RM. Cứ tiếp tục nhƣ vậy, ta đƣợc bảng sau:

BA FI MI/TO NA RM BA 0 662 877 255 412 FI 662 0 295 468 268 MI/TO 877 295 0 754 564 NA 255 468 754 0 219 RM 412 268 564 219 0

Tỡm min d(i,j) = d(NA,RM) = 219 => kết hợp NA và RM thành một cụm mới gọi là NA/RML(NA/RM) = 219, m = 2. BA FI MI/TO NA/RM BA 0 662 877 255 FI 662 0 295 268 MI/TO 877 295 0 564 NA/RM 255 268 564 0 (adsbygoogle = window.adsbygoogle || []).push({});

Tiếp tục tớnh min d(i,j) = d(BA,NA/RM) = 255, kết hợp BA và NA/RM thành một cụm mới BA/NA/RML(BA/NA/RM) = 255, m = 3. BA/NA/RM FI MI/TO BA/NA/RM 0 268 564 FI 268 0 295 MI/TO 564 295 0

Tớnh min d(i,j) = d(BA/NA/RM,FI) = 268, kết hợp BA/NA/RM với FI thành một cụm mới BA/FI/NA/RM. Tớnh L(BA/FI/NA/RM) = 268. m = 4.

BA/FI/NA/RM MI/TO

BA/FI/NA/RM 0 295

MI/TO 295 0

Cuối cựng, chỳng ta hợp nhất hai cụm ở mức 295.

3.2.1.4 Ƣu, nhƣợc điểm

Ƣu điểm

- Thuật toỏn đơn giản, dễ hiểu.

- Khụng cần biết trƣớc số lƣợng phõn cụm.

Hạn chế

Phƣơng phỏp phõn cụm phõn cấp cú một số điểm hạn chế chớnh nhƣ sau: - Cú độ phức tạp về thời gian lớn: độ phức tạp thuật toỏn về thời gian nhỏ

nhất là O(n2), với n là số lƣợng phần tử cần phõn cụm; - Khụng quay lại đƣợc sau khi đó thực hiện xong một bƣớc.

3.2.2 THUẬT TOÁN BIRCH

BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) là thuật toỏn phõn cụm phự hợp cho tập dữ liệu lớn. í tƣởng của thuật toỏn là khụng cần lƣu toàn bộ cỏc đối tƣợng dữ liệu của cỏc cụm trong bộ nhớ mà chỉ lƣu cỏc đại lƣợng thống kờ. Thuật toỏn đƣa ra hai khỏi niệm mới để theo dừi cỏc cụm hỡnh thành và phõn cụm đặc trƣng là túm tắt thụng tin về một cụm và cõy phõn cụm đặc trƣng (CF Tree). Cõy phõn cụm đặc trƣng là cõy cõn bằng đƣợc sử dụng để lƣu trữ cụm đặc trƣng. Cụm đặc trƣng là một bộ ba (n, LS, SS), trong đú n là số cỏc điểm trong phõn hoạch cụm con, LS là tổng số cỏc giỏ trị thuộc tớnh và SS là tổng bỡnh phƣơng cỏc điểm đú. Cõy CF là cõy cõn bằng lƣu trữ bộ ba này. Vớ dụ về cõy CF nhƣ hỡnh 3.11.

Hỡnh 3.11. Cõy CF đƣợc dựng trong thuật toỏn BIRCH

Cõy CF cú chứa cỏc nỳt trong và nỳt lỏ. Nỳt trong là nỳt cú chứa nỳt con, nỳt lỏ là nỳt khụng chứa nỳt con. Nỳt trong lƣu giữ tổng cỏc đặc trƣng cụm (CF) của cỏc nỳt con của nú. Một cõy CF đƣợc đặc trƣng bởi hai tham số:

 Yếu tố nhỏnh (Branching Factor – B): Nhằm xỏc định số tối đa cỏc nỳt con của một nỳt lỏ trong cõy.

 Ngƣỡng (Threshold – T): Khoảng cỏch tối đa giữa bất kỳ một cặp đối tƣợng trong nỳt lỏ của cõy, khoảng cỏch này đƣợc gọi là đƣờng kớnh của cỏc cụm con đƣợc lƣu tại cỏc nỳt lỏ.

Hai tham số này cú ảnh hƣởng đến kớch thƣớc của cõy CF. Thuật toỏn BIRCH tổng quỏt thực hiện qua giai đoạn sau:

Giai đoạn 1: Quột tất cả cỏc đối tƣợng trong cơ sở dữ liệu vào bộ nhớ để xõy dựng cõy CF. Trong giai đoạn này, cỏc đối tƣợng lần lƣợt đƣợc chốn vào nỳt lỏ gần nhất của cõy CF (nỳt lỏ đúng vai trũ là cụm con). Sau khi chốn xong thỡ tất cả cỏc nỳt trong cõy CF đƣợc cập nhập thụng tin. Quỏ trỡnh này lặp lại khi tất cả cỏc đối tƣợng đƣợc chốn vào trong cõy, khi quỏ trỡnh này kết thỳc thỡ cõy CF được khởi tạo. Trong quỏ trỡnh chốn đối tƣợng vào nỳt lỏ để tạo thành cụm con. Nếu đƣờng kớnh của cụm con này lớn hơn T thỡ nỳt lỏ đƣợc tỏch ra. Khi một đối tƣợng thớch hợp đƣợc chốn vào nỳt lỏ, tất cả cỏc nỳt của cõy đƣợc cập nhật với cỏc thụng tin cần thiết.

Giai đoạn 2: Nếu cõy CF hiện thời khụng cú đủ bộ nhớ thỡ tiến hành xõy dựng một cõy CF nhỏ hơn. Kớch thƣớc của cõy CF đƣợc điều khiển bởi tham số T, vỡ vậy việc chọn một giỏ trị lớn hơn cho nú sẽ hoà nhập một số cụm con thành một cụm, điều này làm cho cõy CF nhỏ hơn. Bƣớc này khụng cần đọc lại dữ liệu từ đầu nhƣng vẫn đảm bảo hiệu chỉnh cõy dữ liệu nhỏ hơn.

Giai đoạn 3: Thực hiện phõn cụm cỏc nỳt lỏ cõy CF đƣợc lƣu trữ cỏc đại lƣợng thống kờ của cỏc cụm con. Trong bƣớc này, Birch sử dụng cỏc đại lƣợng thống kờ này để ỏp dụng một số kỹ thuật phõn cụm cú sẵn để phõn cụm cho cỏc cụm con.

Giai đoạn 4: Phõn phối lại cỏc đối tƣợng dữ liệu bằng cỏch dựng cỏc đối tƣợng trọng tõm cho cỏc cụm đƣợc khỏm phỏ từ giai đoạn 3. Đõy là một bƣớc tuỳ chọn để duyệt lại tập dữ liệu và gỏn lại nhón cho cỏc đối tƣợng dữ liệu cho cỏc trọng tõm gần nhất. Bƣớc này nhằm để gỏn nhón cho đối tƣợng khởi tạo và loại bỏ cỏc đối tƣợng ngoại lai nhằm tỡm ra cỏc cụm mới tốt hơn. Bƣớc này cũng sử dụng một số thuật toỏn cú sẵn.

Với cấu trỳc cõy CF đƣợc sử dụng, BIRCH cú tốc độ thực hiện phõn cụm nhanh và cú thể ỏp dụng với tập cơ sở dữ liệu lớn. BIRCH cũng hiệu quả

khi ỏp dụng cho tập dữ liệu tăng trƣởng theo thời gian. Do BIRCH chỉ duyệt toàn bộ dữ liệu một lần và một lần quột thờm tuỳ chọn (thực hiện phõn cụm lại cỏc nỳt lỏ của cõy CF) nờn độ phức tạp của BIRCH là O(n2) với n là số đối tượng dữ liệu. Thuật toỏn này kết hợp cỏc cụm gần nhau và xõy dựng lại cõy CF. BIRCH vẫn cú hạn chế là khụng xử lý tốt nếu cỏc cụm khụng cú dạng hỡnh cầu, bởi vỡ nú sử dụng khỏi niệm bỏn kớnh hoặc đƣờng kớnh để kiểm soỏt ranh giới cỏc cụm và chất lƣợng của cỏc cụm khỏm phỏ khụng đƣợc tốt. Nếu BIRCH sử dụng khoảng cỏch Euclid, nú thực hiện tốt với cỏc dữ liệu số. Mặt khỏc tham số ngƣỡng T cú ảnh hƣởng rất lớn tới kớch thƣớc và tớnh tự nhiờn của cụm. Việc ộp cỏc đối tƣợng dữ liệu làm cho cỏc đối tƣợng của cụm cú thể là đối tƣợng kết thỳc của cụm khỏc, trong khi cỏc đối tƣợng gần nhau cú thể thuộc về cỏc cụm khỏc nếu chỳng đƣợc biểu diễn cho thuật toỏn theo thứ tự khỏc. BIRCH khụng thớch hợp với dữ liệu đa chiều.

í tƣởng của thuật toỏn BIRCH tuõn theo ý tƣởng chung của thuật toỏn phõn cụm phõn cấp, cụ thể đƣợc minh họa nhƣ hỡnh 3.12

Hỡnh 3.12. í tƣởng của thuật toỏn phõn cụm phõn cấp

Thuật toỏn bắt đầu với những điểm dữ liệu đơn lẻ (mỗi điểm trong cơ sở dữ liệu là một cụm). Sau đú nhúm cỏc điểm tƣơng tự nhau thành cỏc cụm riờng biệt. Quỏ trỡnh này tiếp tục đối với cỏc cụm riờng biệt cho đến khi chỉ cũn lại một cụm duy nhất [8][10].

3.2.3 THUẬT TOÁN CURE (adsbygoogle = window.adsbygoogle || []).push({});

Trong khi hầu hết cỏc thuật toỏn thực hiện phõn cụm với cỏc cụm hỡnh cầu và kớch thƣớc tƣơng tự, nhƣ vậy là khụng hiệu qủa với khi xuất hiện cỏc phần tử ngoại lai. Thuật toỏn CURE (Clustering Using REpresentatives) đƣợc đề xuất bởi Guha, Rastogi & Shim [1998] đó khắc phục đƣợc vấn đề này. Thuật toỏn này định nghĩa một số cố định cỏc điểm đại diện nằm rải rỏc trong toàn bộ khụng gian dữ liệu và đƣợc chọn để mụ tả cỏc cụm hỡnh thành. Cỏc điểm này đƣợc tạo ra bởi trƣớc hết lựa chọn cỏc đối tƣợng nằm rải rỏc cho cỏc cụm và sau đú “co lại” hoặc di chuyển chỳng về trung tõm cụm bằng cỏch co cụm. Quỏ trỡnh này đƣợc lặp lại. Trong quỏ trỡnh này cú thể đo tỷ lệ gia tăng của cụm. Tại mỗi bƣớc của thuật toỏn, hai cụm cú cỏc cặp điểm đại diện gần nhau (mỗi điểm trong cặp thuộc về mỗi cụm khỏc nhau) sẽ đƣợc hũa nhập.

Hỡnh 3.13. Cỏc điểm dữ liệu của một cụm trong CURE

Nhƣ vậy, cú nhiều hơn một điểm đại diện mỗi cụm cho phộp CURE khỏm phỏm đƣợc cỏc cụm cú hỡnh dạng khụng phải là hỡnh cầu. Việc co lại cỏc cụm cú tỏc dụng làm giảm tỏc động của phần tử ngoại lai. Nhƣ vậy, thuật toỏn này cú khả năng xử lý tốt trong trƣờng hợp cú cỏc phần tử ngoại lai và làm cho nú hiệu quả với những hỡnh dạng khụng phải hỡnh cầu và kớch thƣớc biến đổi. Hơn nữa, nú tỷ lệ tốt với cơ sở dữ liệu lớn mà khụng giảm chất lƣợng phõn cụm.

Để xử lý đƣợc cỏc cơ sở dữ liệu lớn, CURE sử dụng mẫu ngẫu nhiờn và phõn hoạch. Mẫu đƣợc xỏc định ngẫu nhiờn trƣớc khi phõn hoạch và sau đú tiến hành phõn cụm cho mỗi phõn hoạch. Nhƣ vậy, mỗi phõn hoạch là từng phần đó đƣợc phõn cụm, cỏc cụm thu đƣợc lại đƣợc phõn cụm lần thứ hai để thu đƣợc cỏc cụm con mong muốn, nhƣng mẫu ngẫu nhiờn khụng nhất thiết đƣa ra một mụ tả tốt cho toàn bộ tập dữ liệu.

Thuật toỏn CURE được thực hiện qua cỏc bước như sau:

1. Chọn một mẫu ngẫu nhiờn cú kớch cỡ s từ tập ban đầu

2. Phõn hoạch mẫu này thành p nhúm dữ liệu cú kớch thước bằng nhau là s/p.

3. Phõn cụm cỏc điểm cho mỗi nhúm, thực hiện phõn cụm dữ liệu cho cỏc nhúm cho đến khi mỗi nhúm được phõn thành s/pq cụm.

4. Loại bỏ cỏc phần tử ngoại lai

Bởi cỏc mẫu ngẫu nhiờn

Hoặc là cỏc cụm quỏ nhỏ

5. Phõn cụm cỏc cụm khụng gian: Cỏc đối tượng đại diện cho mỗi cụm di chuyển về hướng trung tõm cụm, nghĩa là chỳng được thay thế bởi cỏc đối tượng gần trung tõm hơn.

6. Đỏnh dấu dữ liệu với cỏc nhón tương ứng.

Độ phức tạp tớnh toỏn của thuật toỏn CURE là O(n2

log(n)). CURE là thuật toỏn tin cậy trong việc khỏm phỏ ra cỏc cụm với hỡnh thự bất kỳ và cú thể ỏp dụng tốt đối với dữ liệu cú phần tử ngoại lai và trờn cỏc tập dữ liệu hai chiều. Tuy nhiờn nú lại rất nhạy cảm với cỏc tham số nhƣ số cỏc đối tƣợng đại diện, tỷ lệ co của cỏc phần tử đại diện [10].

Một vớ dụ minh họa cỏc bƣớc thực hiện của thuật toỏn CURE nhƣ sau:

S=50; p=2 s/p=25; s/pq=5

Quỏ trỡnh phõn hoạch dữ liệu và phõn cụm đƣợc thể hiện nhƣ hỡnh 3.14

Hỡnh 3.14. Phõn hoạch và phõn cụm dữ liệu

Hỡnh 3.15. Co cụm cỏc điểm biểu diễn

Hiện nay, cú rất nhiều thử nghiệm thuật toỏn CURE đƣợc cài đặt. Cụ thể cú thể thực nghiệm thuật toỏn này tại địa chỉ

http://www.cs.ualberta.ca/~yaling/Cluster/Project/Src/ask_param.php

3.3 CÁC THUẬT TOÁN PHÂN CỤM DỰA TRấN MẬT ĐỘ

Cỏc phƣơng phỏp phõn cụm dựa trờn mật độ là những phƣơng phỏp phõn cụm mà cú thuật toỏn dựa trờn mật độ điểm để phõn cụm, vớ dụ nhƣ là dựa trờn mật độ cỏc điểm nối.

Những đặc điểm chớnh của phương phỏp này:

Khỏm phỏ ra cỏc cụm cú hỡnh dạng bất kỳ

Khống chế được nhiễu

Duyệt một lần

3.3.1 THUẬT TOÁN DBSCAN

Một số kiến thức liờn quan: (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Một số thuật toán phân cụm dữ liệu (Trang 55)