Tải bản đầy đủ (.docx) (51 trang)

Tiểu luận môn khai phá thông tin MỘT SỐ THUẬT TOÁN VỀ GOM CỤM

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 (487.75 KB, 51 trang )

KHAI PHÁ DỮ LIỆU
Phụ lục
Giới thiệu trang 5
PHẦN A
Một số thuật toán gom cụm trang 6
1. Gom cụm bằng phân hoạch trang 7
a. Thuật toán K-Means trang 7
b. Thuật toán PAM trang 12
c. Thuật toán CLARA trang 15
d. Thuật toán CLARANS trang 17
2. Gom cụm dữ liệu bằng phân cấp trang 21
a. Thuật toán BIRCH trang 21
b. Thuật toán CURE trang 26
c. Thuật toán ANGNES trang 28
d. Thuật toán DIANA trang 28
e. Thuật toán ROCK trang 30
f. Thuật toán CHAMELEON trang 31
3. Gom cụm dựa trên mật độ trang 32
a. Thuật toán DBSCAN trang 32
b. Thuật toán OPTICS trang 34
c. Thuật toán DENCLUDE trang 35
4. Gom cụm dữ liệu dựa trên mô hình trang 36
a. Thuật toán EM trang 36
b. Thuật toán COBWEB trang 38
5. Gom cụm mờ trang 38
a. Thuật toán FCM trang 39
6. Các phương pháp gom cụm khác trang 40
PHẦN B
Ứng dụng thuật toán k-means phân nhóm màu ảnh trang 41
Kết luận trang 56
1


KHAI PHÁ DỮ LIỆU
Giới thiệu
Trong cuộc sống, với khối lượng thông tin khổng lồ trong mọi lĩnh vực kinh tế, tự
nhiên, khoa học, lịch sử… và cả khoa học huyền bí. Việc đưa ứng dụng công nghệ thông
tin nhầm tìm ra những quy luật tồn tại trong khối dữ liệu đó là một yêu cầu cần thiết giúp
con người nghiên cứu, đánh giá, đưa ra những định hướng cho hoạt động ngành nghề của
mình.
Từ những yêu cầu trên, lĩnh vực Data Mining đã được ra đời với mục đích giải quyết
vấn đề phân tích dữ liệu nhầm tìm ra những quy luật, thông tin quý giá.
Với sự hướng dẫn của PGS.TS. Đỗ Phúc tôi được tiếp cận một môn khoa học khởi
đầu cho những giá trị tư duy. Tôi xin chân thành cám ơn Thầy đã tận tình hướng dẫn,
chia sẽ những kiến thức, kinh nghiệm trong thực tiển để, làm tiền đề cho quá trình học
tập và phát triển sau này. Xin cảm ơn!
2
KHAI PHÁ DỮ LIỆU
Phần A
MỘT SỐ THUẬT TOÁN VỀ GOM CỤM
Có nhiều thuật toán để giải quyết vấn đề Data Mining:
1. Gom cụm dữ liệu bằng phân hoạch
a. Thuật toán K-Means
b. Thuật toán PAM
c. Thuật toán CLARA
d. Thuật toán CLARANS
2. Gom cụm dữ liệu bằng phân cấp
a. Thuật toán BIRCH
b. Thuật toán CURE
c. Thuật toán ANGNES
d. Thuật toán DIANA
e. Thuật toán ROCK
f. Thuật toán Chameleon

3. Gom cụm dữ liệu dựa trên mật độ
a. Thuật toán DBSCAN
b. Thuật toán OPTICS
c. Thuật toán DENCLUDE
4. Gom cụm dữ liệu dựa trên mô hình
a. Thuật toán EM 60
b. Thuật toán COBWEB
5. Gom cụm mờ
a. Thuật toán FCM
6. Các phương pháp gom cụm dữ liệu khác
a. Thuật toán di truyền GAS
b. J-Means
c. Sting
d. Thuật toán CLIQUE
e. Thuật toán WaveCluste
3
KHAI PHÁ DỮ LIỆU
I. Gom cụm dữ liệu bằng phân hoạch
1. Thuật thoán k-means
K- means là thuật toán phân cụm mà định nghĩa các cụm bởi 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.
Nó được xem như là trung tâm của cụm. Như vậy, nó cần khởi tạo một tập trung tâm
các trung tâm cụm ban đầu, và thông qua đó nó lặp lại các bước gồm gán mỗi đối tượng
tới cụm mà trung tầm gần, và tính toán tại trung tâm của mỗi cụm trên cơ sở gán mới cho
các đối tượng.
Quá trình này dừng khi các trung tâm hội tụ
Được phát triển bởi nhiều nhà nghiên cứu khác nhau, điển hình là Lloyd (1957,
1982), Forgey (1965), Friedman và Rubin (1967), McQueen (1967).
Thuật thao tác trên một tập các vectơ d-chiều, D = {xi| i = 1 N} trong đó xi ∈R
d


là điểm dữ liệu thứ i. Thuật toán bắt đầu bằngcách chọn k điểm làm trọng tâm.Kỹ
thuật để chọn các điểm hạt giống này là “ngẫu nhiên”. Sau đó thuật toán gọi hai bước
sau cho đến khi hội tụ (không còn thay đổi nữa):
*Bước 1. Gán dữ liệu: Mỗi điểm dữ liệu được gán vào nhóm nào gần nhất. Đây là việc
phân chia dữ liệu.
*Bước 2. Tính lại trọng tâm: đại diện của mỗi nhóm được tính lại bằng với trung bình
(mean) của các điểm dữ liệu thuộc nhóm.
4
KHAI PHÁ DỮ LIỆU
Nếu các điểm dữ liệu được tính bởi xác suất (probability measure/ weights) thì đại
diện được tính bằng giá trị kì vọng (expectation) của dữ liệu.
Khoảng cách giữa hai đối tượng
Khoảng cách Minkowski:
Trong đó i=(X
i1
, X
i2
, X
ip
) và j=(X
j1
, X
j2
, X
jp
) là hai đối dữi liệu p-chiều và q là số
nguyên dương
Nếu q = 1, d là khoảng cách Manhattan
Khoảng cách giữa hai đối tượng

Nếu q = 2, d là khoảng cách Euclidean:
Các tính chất của khoảng cách Euclidean
d(i,j)>0
d(i,i)=0
5
KHAI PHÁ DỮ LIỆU
d(i,j)=d(j,i)
d(i,j)≤d(i,k)+d(k,j)
Các bước cơ bản của thuật toán K-means
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 thuật toán
K-means chi tiết được trình bày :
6
Input : Số cụm k và các trọng tâm cụm
Output : các cụm C [i ](1 ≤ i ≤ 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 ban đầu trong không gian Rd (d là số k chiều của dữ liệu).
Việc lựa chọn này có thể là 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 X i (1 ≤ i ≤ k ) , tính toán khoảng cách của nó tới mỗi trọng
tâm m j (1 ≤ i ≤ k ) . Sau đó tìm trọng tâm gần nhất đối với điểm.
Bước 3 : Cập nhật lại trọng tâm
Đối với mỗi (1 ≤ i ≤ k ) , cập nhật trọng tâm cụm mj bằng cách xác định trung
bình cộng các vecto đối tượng dữ liệu.
Đ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.
BEGIN
1. Nhập n đối tượng dữ liệu
2. Nhập k cụm dữ liệu

3. MSE = +∞
4. For I = 1 to k do mi = X i+(i−1)*[n/k ] ; // khởi tạo k trọng tâm
5. Do {
6. OldMSE = MSE
7. MSE’ = 0
8. for j = 1 to k do
9. {m’[j]=0; n’[j]=0}
10. End for
11. For I =1 to n do
12. For j =1 to k do
13. Tính toán khoảng cách Euclide bình phương :
D2(x[i]; m[j]
14. Endfor
15. Tìm trọng tâm gần nhất m[h] tới X[i]
16. m’[h] = m’[h] + X[i] ; n’[h] = n’[h]+1;
17. MSE’=MSE’ + D2(x[i]; m[j]
18. Endfor
19. n[j] = max(n’[j], 1); m[j] = m’[j]/n[j];
20. MSE’=MSE’
21. } while (MSE’<=OldMSE)
END
KHAI PHÁ DỮ LIỆU
Trong đó :
- MSE : Sai số hay là hàm tiêu chuẩn
- D2(x[i]; m[j] : Khoảng cách Euclide từ đối tượng thứ i tới trọng tâm j;
- OldMSE m’[j], n’[j] : Biến tạm lưu giá trị cho trạng thái trung gian cho các biến tương
ứng
Chất lượng của thuật toán K –mean 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 khởi tạo 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 cụm tự nhiên thì kết quả phân cụm của K – means

là rất thấp, nghĩa là các cụm dữ liệu được khám phá rất lệch so với các cụm trong thực tế.
7
KHAI PHÁ DỮ LIỆU
Trên thực tế, chưa có một giải pháp nào để chọn 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 , giải pháp thường được sử dụng nhất
là thử nghiệm với giá trị đầu vào k khác nhau rồi sau đó chọn giải pháp tốt nhất.
2. Thuật toán PAM
Thuật toán PAM là thuật toán mở rộng của thuật toán K-means nhằm có khả năng
xử lý hiệu quả đối với dữ liệu nhiễu hoặc phần tử ngoại lai, PAM sử dụng các đối tượng
medoid để biểu diễn cho các cụm dữ liệu, một đối tượng medoid là đối tượng đặt tại vị trí
trung tâm nhất bên trong mỗi cụm. Vì vậy, đối tượng medoid ít bị ảnh hưởng của các đối
tượng ở rất 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ị
tác động bởi các điểm 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 đố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.
Giả sử Oj là đối tượng không phải medoid mà Om là một đối tượng medoid, khi
đó ta nói O
j
thuộc về cụm có đối tượng medoid là O
m
làm đại diện nếu d(O
j
, O
m
) =
min
Oe
(O
j
, O

e
); trong đó d(O
j
, O
m
) là độ phi tương tự giữa O
j
và O
e
, min
Oe
là giá trị nhỏ
nhất của độ phi tương tự giữa O
j
và tất cả các đối tượng medoid của các cụm dữ liệu. chất
lượng của mỗi cụm được khám phá được đánh giá thông qua độ phi tương tự trung bình
giữa một đối tượng và đối tượng medoid tương ứng với cụm của nó, nghĩa là chất lượng
phân cụm được đánh giá thông qua chất lượng của tất cả các đối tượng medoid. Độ phi
tương tự được xác định bằng độ đo khoảng cách, thuật toán PAM được áp dụng cho dữ
liệu không gian.
8
KHAI PHÁ DỮ LIỆU
Để xác định các medoid, PAM được áp dụng cho dữ liệu không gian.
Để xác định các medoid, PAM bắt đầu bằng cách lựa chon 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 là 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 phân cụm không thay đổi.
Chất lượng phân cụm được đánh giá thông qua hàm tiêu chuẩn, 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.
PAM tính giá trị C

jmp
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 được 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ể được 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
Các bước thực hiện thuật toán PAM
9
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 đối tượng Om, Op. Trong đó, Om là đối
tượng medoid và Op là đối tượng không phải medoid;
3. Chọn cặp đối tượng Om và 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.
KHAI PHÁ DỮ LIỆU
3. Thuật toán CLARA
Thuật toán CLARA được đưa ra nhằm khắc phục nhược điểm của thuật toán PAM
trong trường hợp giá trị k và n là 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 các đố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ì các 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. Để đo chính xác, chất lượng của các 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. Kết quả thực nghiệm chỉ ra rằng, 5 mẫu dữ liệu có kích thước 40 +2k cho kết quả
tốt. Các bước thực hiện của thuật toán CLARA :
10
KHAI PHÁ DỮ LIỆU
Phương pháp medoid không hiệu quả với trường hợp tập dữ liệu lớn, như vậy,
phương pháp dựa trên mẫu được gọi là CLARA. Ở đây, một phần nhỏ dữ liệu hiện thời
được chọn như 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ó có thể
cần phải đại diện tập dữ liệu gốc. Các đối tượng đại diện (medoids) đượ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ý với tập dữ
liệu lớn hơn PAM.
11
CLARA
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 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á rị 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.
KHAI PHÁ DỮ LIỆU
4. Thuật toán CLARANS
CLARANS cũng sử dụng kiểu k-medoids , nó kết hợp thuật toán PAM với chiến

lược tìm kiếm kinh nghiệm mới. Ý 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ó ngay
lập tức thay thế các đối tượng tâm này nếu việc thay thế này có tác động tốt đến chất
lượng phân cụm chứ không cần xác định cách thay thế tối ưu nhất.
CLARANS lấy ngẫu nhiên một đối tượng của k đối tượng medoid trong tâm cụm
và cố gắng thay thế nó với một đối tượng 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 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 số láng giềng đượ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 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, thì 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ư
12
KHAI PHÁ DỮ LIỆU
đối với CLARA, và trong cùng một lượng thời gian thì chất lượng của các cụm phân
được là lớn hơn CLARA.
Một số khái niệm sử dụng trong thuật toán CLARANS được định nghĩa như sau:
Giả sử O là một tập có n đối tượng và M ⊆Olà tập các đối tượng tâm mediod,
NM = O- M là tập các đố tượng không phải tâm. Các đối tượng dữ liệu sử dụng trong
thuật toán CLARANS là các khối đa diện. Mỗi đối tượng được diễn tả bằng một tập các
cạnh, mỗi cạnh được xác định bằng hai điểm.
Giả sử P ⊆R
3
là một tập tất cả các điểm . Nói chung, các đối tượng ở đây là

các đối tượng dữ liệu không gian và chúng ta định nghĩa tâm của một đối tượng chính là
trung bình cộng toán học của tất cả các đỉnh hay còn gọi là trọng tâm :
center :O→P
Giả sử dist là một hàm khoảng cách, khoảng cách thường được chọn ở đây là
khoảng cách Eucliean : dist : PxP →
Hàm khoảng cách dist có thể mở rộng cho các điểm của khối đa diện
thông qua hàm tâm : dist : OxO → sao cho
dist(o
i
, o
j
) =dist (center (o
i
), center (o
j
))
Mỗi đối tượng được gán cho một tâm medoid của cụm nếu khoảng
cách từ trọng tâm của đối tượng đó tới tâm medoid của nó là nhỏ nhất. Vì vậy,
định nghĩa tâm medoid như sau : medoid : OM sao cho
medoid (o) =m
i
, m
i
∈M , ∀m
i
∈M : dis(o, m
i
) ≤ dist (o, m
j
), o ∈O. Cuối cùng định

nghĩa một cụm tới tâm mediod m
i
tương ứng là một tập con các đối tượng trong O
13
KHAI PHÁ DỮ LIỆU
với medoid(o) = m
i
Giả sử C0 là tập tất cả các phân hoạch của O. Hàm tổng để đánh giá chất lượng
một phân hoạch được định nghĩa như sau : total_distance C
0
→ sao cho
total_distance(c)= dist (o, m
i
) với m
i
∈ M , o ∈ cluster ( m
i
)
Thuật toán chi tiết CLARANS :
14
Input : O,k, dist, numlocal và maxneighbor;’
Output : k cụm dữ liệu;
CLARANS(int k, function dist, int numlocal, int maxneighbor)
BEGIN
For (i = 1 ; 1 <= numlocalk; i++
{
current.creat_randomly(k);
j = 1 ;
while (j <= maxneighbor)
{

current.select_radom(old, new);
diff = current.caculate_distance_difference(old,
new);
if (diff < 0)
{
current.exchange(old, new);
j = 1;
}
Else
j++;
//end if
} //end while
Dist = current.caculate_total_distance();
If (disr < smallest_dist)
{
Best = current;
Smallest_dist= dist;
} // end if
}// end for
END.
KHAI PHÁ DỮ LIỆU
15
KHAI PHÁ DỮ LIỆU
II. Gom cụm dữ liệu bằng phân cấp
1. Thuật toán BIRCH
Thuật toán phân cụm khác cho tập dữ liệu lớn, được gọi là BIRCH. Ý 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 , 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(cây CF) là cây cân bằng được sử dụng lưu trữ cụm đặc trưng( được sử dụng để mô

tả cụm tóm tắt). Trước tiên được gọi là 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ích và SS là
tổng bình phương của các điểm đó. Đặc trưng tiếp theo là cây CF, mà đơn giản là cây cân
bằng mà lưu bộ ba này. Có thể chứng mình rằng, các đại lượng thống kê chuẩn, như là độ
đo khoảng cách, có thể xác định từ cây CF. Hình 1 dưới đây biểu thị một ví dụ về cây
CF. Có thể thấy rừng, tất cả các nút trong cây lưu tổng các đặc trưng cụm CF, các nút
con, trong khi đó các nút là lưu trữ các đặc trưng của các cụm dữ liệu.
Cây CF chứa các nút trong và nút là, nút trong là nút chứa các nút con và nút lá thì
không có con. Nút trong lưu trữ các tổng đặ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 (Braching Factor – B) : Nhằm xác định tối đa các nút con của một
nút lá trong của 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òn gọi là đường kính của các cụm con được lưu tại các
nút lá.
16
KHAI PHÁ DỮ LIỆU
Hai tham số này có ảnh hưởng đến kích thước của cây CF. thuật toán BIRCH thực
hiện gồm hai giai đoạn:
Giai đoạn 1 : BIRCH quét tất cả các đối tượng trong CSDL để xây dựng cây CF
khởi tọa, mà được lưu trữ trong bộ nhớ. 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á của cây đó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ật thông tin. Nếu đường kính
của cụm con sau khi chèn là lớn hơn ngưỡng T, thì nút lá được tách. Quá trình lặp lại cho
đến khi tất cả các đối tượng trong cây chỉ được đọc một lần, để lưu toàn bộ cây CF trong
bộ nhớ thì cần phải điều chỉnh kích thước của cây CF thông qua điều chỉnh ngưỡng T.
Giai đoạn 2 : BIRCH lựa chọn một thuật toán phân cụm(như thuật toán phân cụm
phân hoạch) để thực hiện phân cụm cho các nút lá của cây CF
17
KHAI PHÁ DỮ LIỆU

18
Hình 1: Cây CF sử dụng trong
BIRCH
KHAI PHÁ DỮ LIỆU
19
1. Các đối tượng dữ liệu lần lượt được chèn vào cây C, sau khi chèn hết các
đối tượng thì thu được cây CF khởi tạo. Một đối tượng được chèn vào nút
là gần nhất 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 trỏ tới gốc của cây được cập nhật với thông tin cần thiết
2. Nếu cây CF hiện thời không có đủ bộ nhớ trong khi 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ố
F và vì vậy việc chọn một giá trị lớn hơn cho nó sẽ hòa 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 yêu cầu đọc dữ liệu lại từ đầu nhưng vẫn đảm bảo hiệu chỉnh cây dữ
liệu nhỏ hơn.
3. Thực hiện phân cụm: Các nút lá cây CF 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, ví dụ K-means và tạo ra một
khởi tạo cho phân cụm.
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ừ bước 3: Đây là một bước tùy 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 tới các trọng
tâm gần nhất. Bước này nhằm để gán nhãn cho các dữ liệu khởi tạo và loại
bỏ các đối tượng ngoại lai
KHAI PHÁ DỮ LIỆU
Với cấu trúc cây CF được sử dụng, BIRCH có tốc độ thực hiện PCDL nhanh và có
thể áp dụng đối với tập CDSL lớn, BIRCH cũng có hiệu quả khi áp dụng với tập dữ liệu
tăng trưởng theo thời gian. BIRCH thực hiện tính toán khá tốt, độ phức tạp tính toán của
BIRCH là tuyến tính tỷ lệ với số các đối tượng, do BIRCH chỉ duyệt toàn bộ dữ liệu một

lần với một lần quét thêm tùy chọn( thực hiện phân cụm lại các nút lá cây của CF), có thể
được đo trong thời gian O(n) 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, tuy nhiên mỗi nút trong cây CF có thể chỉ lưu trữ
một số hữu hạn bởi kích thước của nó. BIRCH vẫn có một hạn chế : thuật toán này có thể
không xử lý tốt nếu các cụm không có hình dạng 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 được
khám phá không được tốt. Nếu BIRCH sử dụng khoảng cách Eucle, nó thực hiện tốt chỉ
với các dữ liệu số, mặt khác tham số vào T có ảnh hưởng rất lớn tới kích thước tự nhiên
của cụm. Việc ép các đối tượng dữ lieeujlamf 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ể bị hút bởi các cụm
khác nếu chúng được biểu diễn cho thuật toán theo một thứ tự khác. BIRCH không thích
hợp với dữ liệu đa chiều.
20
KHAI PHÁ DỮ LIỆU
2. Thuật toán CURE
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 quả khi xuất hiện các phần tử ngoại lai. 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 được 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 trong cụm và sau đó “ co lại” hoặc di chuyển
chúng về trung tâm cụm bằng nhân tố co cụm. Quá trình này được lặp lại và như vậy
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ặp các đ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)
được hòa nhập
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á
đượ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 các 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 lại và làm cho hiệu quả với những hình dạng
không phải là hình cầu và kích thước độ rộng biến đổi. Hơn nữa, nó tỷ lệ tốt với CSDL
lớn mà không làm giảm chất lượng phân cụm.

Để xử lý được các CSDL lớn, CURE sử dụng ngẫu nhiên và phân hoạch, một mẫu
là được xác định ngẫu nhiên trước khi được phân hoạch, và sau đó được tiến hành phân
cụm trên 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 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
21
KHAI PHÁ DỮ LIỆU
đượ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 cơ bản:
22
1. Chọn một mẫu ngẫu nhiên từ tập dữ liệu ban đầu.
2. Phân hoạch mẫu này thành nhiều nhóm dữ liệu có kích thước
bằng nhau : ý tưởng ở đây là phân hoạch mẫu thành p nhóm dữ
liệu bằng nhau, kích thước của mỗi phân hoạch là n’/p(n’ là kích
thước mẫu).
3. Phân cụm các điểm của mỗi nhóm : Thực hiện PCDL cho các
nhóm cho đến khi mỗi nhóm được phân thành n’/pq(với q>1).
4. Loại bỏ các phần tử ngoại lai : Trước hết, khi các cụm được hình
thành cho đến khi số các cụm giảm xuống một phần so với số các
cụm ban đầu. Sau đó, trong trường hợp các phần tử ngoại lai được
lấy mẫu cùng với quá trình khởi tạo mẫu dữ liệu, thuật toán
sẽ tự động loại bỏ các nhóm nhỏ
5. Phân cụm các cụm không gian : các đối tượng đại diện cho các
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.
KHAI PHÁ DỮ LIỆU
Độ phức tạp tính toán của thuật toán CURE là O(n
2
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.
3. Thuật toán ANGNES
Phương pháp phân hoạch ANGNES là kỹ thuật kiểu tích tụ. ANGNES bắt đầu ở
ngoài với mỗi đối tượng dữ liệu trong các cụm riêng lẻ. Các cụm được hòa nhập theo một
số loại của cơ sở luật, cho đến khi chỉ có một cụm ở đỉnh của phân cấp, hoặc gặp điều
kiện dừng. Hình dạng này của phân cụm phân cấp cũng liên quan đến tiếp cận bottom-up
bắt đầu ở dưới với các nút lá trong mỗi cụm riêng lẻ và duyệt lên trên phân cấp tới nút
gốc, nơi tìm thấy cụm đơn cuối cùng với tất cả các đối tượng dữ liệu được chứa trong
cụm đó.
4. Thuật toán DIANA
DIANA thực hiện đối lập với AGNES. DIANA bắt đầu với tất cả các đối tượng dữ
liệu được chứa trong một cụm lớn và chia tách lặp lại, theo phân loại giống nhau dựa trên
luật, cho đến khi mỗi đối tượng dữ liệu của cụm lớn được chia tách hết. Hình dang của
cụm phân cấp cùng liên quan đế tiếp cận top-down bắt đầu tại mức đỉnh nút gốc, với tất
cả các đối tượng dữ liệu, trong một cụm, và duyệt xuống các nút lá dưới cùng nơi tất cả
các đối tượng dữ liệu từng cái được chứa trong cụm của chính mình.
Trong mỗi phương pháp của hai phương pháp, có thể số các cụm dẫn tới các mức
khác nhau trong phân cấp bằng cách duyệt lên hoặc xuống cây.
23
KHAI PHÁ DỮ LIỆU
Mỗi mức có thể khác nhau số các cụm và tất nhiên kết quả cũng khác nhau.
Một hạn chế lớn của cách tiếp cận này là các cụm được hòa nhập hoặc phân chia
một lần, không thể quay lại quyết định đó, cho dù hòa nhập hoặc phân chia không phải là
thích hợp ở mức đó
24
KHAI PHÁ DỮ LIỆU
5. Thuật toán ROCK
25

Main module
Procedure cluster(S,k)
Begin
1. link:=compute_links(S)
2. for each s ∈ S do
3. q[s]:= build_local heap(link, s)
4. Q:=build_global heap(S, q)
5. while size(Q)> k do{
6. w:= extract_max(Q)
7. v:= max(q[u])
8. delete(Q, v)
9. w:= merge(u,v)
10. for each x ∈ q[u] ∪ q[v] do {
11. link[x, w]:=link[x, u]+ link[x, v]
12. delete(q[x], u); delete(q[x], v)
13. insert(q[x], w, g(x, w); insert(q[x], w, g(x, w)
14. update(Q, x, q[x])
15. }
-34-
16. insert(W, w, q[w]
17. deallocate(q[u]); deallocate(q[v])
18. }
end
Compute_links Procedure
Procedure compute_links(S)
Begin
1. Compute nbrlist[i] for every point i in S
2. Set link[i,j] to be zero all i,j
3. for i:=1 to n do {
4. N:= nbrlist[i]

5. for j:=1 to [N]-1 do
6. for 1:= j+1 to [N]-1 do
7. link[N[j], N[l]:=link[N[j], N[l]+1
8. }
End

×