Từ đó, chúng ta có thể tìm hiểu sâu hơn các giai đoạn của CACTUS: Trong pha tóm tắt (summarization), có hai kiểu summaries:
–Tổng kết liên thuộc tính (inter-attribute summaries): đếm tất cả các cặp giá trị thuộc tính kết nối mạnh từ các thuộc tính khác nhau.
–Tổng kết nội bộ thuộc tính (intra-attribute summaries): tính toán các tương tự giữa các giá trị của thuộc tính giống nhau.
Trong pha phân cụm, CACTUS phân tích từng thuộc tính, để tính toán tất cả các phép chiếu cụm. Với mỗi thuộc tính Ai, phép chiếu của nó là một tập con các giá trị từ thuộc tính này, và được liên kết mạnh với giá trị của các thuộc tính Aj khác,
ij, được ký hiệu bởi j i
S . Ví dụ, nếu chúng ta xem xét thuộc tính A trong hình 3.25, thì chúng ca có thể tính SAB a a a a1, 2, 3, 4 và SCA a a1, 2 và phép chiếu của A là SABSCA. Sau đó, tổng hợp pha phân cụm, các cụm có thể chọn trong tập hợp các thuộc tính từ phép chiều cụm trên các thuộc tính riêng lẻ. Bằng trực giác, bước này mở rộng bước trước bởi việc tăng hạng bậc của cụm.
Cuối cùng, trong pha “thừa nhận”(validation), thuật toán đoán nhận giả các ứng cử viên bằng việc kiểm tra nếu sự hỗ trợ của mỗi ứng cử viên cụm lớn hơn một ngưỡng được yêu cầu.
CACTUS là một thuật toán có thể mở rộng khi nó yêu cầu chỉ một bước chuyển của tập dữ liệu. Một chuyển tiếp thứ hai là cần thiết cho pha validation, mà không có bất kỳ sự liên quan nào đến việc mở rộng.
Bảng 3.2. Bảng tổng kết các thuộc tính của các thuật toán PCDL hạng mục
Các phƣơng pháp phân cụm dữ liệu hạng mục
Thuật toán Tham số đầu vào Thích hợp với Xử lý phần tử ngoại lai Độ phức tạp tính toán
k-modes Số các cụm Tập dữ liệu lớn Có O(n)
ROCK Số các cụm Tập dữ liệu nhỏ chứa nhiễu Có O(n2 + nmmma + n2logn)
STIRR Cấu hình khởi tạo, hoạt động trộn, điều kiện dừng
Tập dữ liệu lớn chứa nhiễu Có O(n)
CACTUS Hàm hỗ trợ ngưỡng , xác nhận ngưỡng
Tập dữ liệu lớn với số chiều và kích thước miền thuộc tính nhỏ
Có O(n)
3.7. Phân cụm dữ liệu hỗn hợp
3.7.1. Cơ sở toán học
Giả sử X = {X1, X2, …, Xn} là tập n đối tượng trong đó mỗi đối tượng Xi = [xi1, xi2, …, xim] có m giá trị thuộc tính. Giả sử k là một số nguyên dương. Mục tiêu phân cụm dữ liệu X là tìm một phân hoạch để chia các đối tượng trong X thành k các cụm độc lập [25].
3.7.1.1. Hàm tiêu chuẩn
Hàm tiêu chuẩn được định nghĩa là:
1 1 ( , ) k n il i l l i E y d X Q (1)
Trong đó, Q = [ql1, ql2, …, qlm] là vectơ đặc trưng (representative vector) hay đối tượng mẫu (prototype) cho cụm l, và yil là một phần tử của ma trận phân hoạch
Ynl . d là độ đo tương tự thường được tính bằng khoảng cách Euclidean.
Y có hai thuộc tính sau: 0 yil 1 và
1 1 k il l y
. Y được gọi là phân hoạch rõ nếu yil {0, 1}, ngược lại, là một phân hoạch mờ. Trong một phân hoạch rõ, yil = 1 biểu thị rằng đối tượng Xi được gán cho cụm l bởi ma trận Y. Chúng ta chỉ xem xét phân hoạch rõ.
Thành phần bên trong của công thức (1):
1 ( , ) n l il i l i E y d X Q là giá trị tổng của phép gán X cho cụm l, ví dụ, tổng độ phân tán của các đối tượng trong cụm l từ nguyên mẫu Ql của nó. El đạt giá trị tối thiểu nếu:
1 1 n lj il ij i l q y x n với j=1,…,m (2) trong đó 1 n l il i n y
là số các đối tượng trong cụm l.
Khi X có các thuộc tính hạng mục, chúng ta có thể sử dụng một độ đo tương
tự như sau: 2 1 1 ( , ) ( ) ( , ) c r m m r r c c i l ij lj l ij lj j j d X Q x q x q (3)
trong đó ( , )p q 0 nếu p = q và ( , ) 1p q nếu p q; xijr và qljr là các giá trị của các thuộc tính kiểu số; c
ij
của đối tượng thứ i và đối tượng mẫu của cụm l. mr và mc là số các thuộc tính số và thuộc tính hạng mục. l là trọng số của các thuộc tính hạng mục của cụm l.
Chúng ta có thể viết lại El như sau:
2 1 1 1 1 ( ) ( , ) c r m m n n r r c c l il ij lj l il ij lj i j i j r c l l E y x q y x q E E (4) trong đó, r l
E là tổng giá trị của tất cả các thuộc tính số của các đối tượng trong cụm l. c
l
E đạt giá trị tối thiểu nếu qljr thỏa mãn (2).
Giả sử Cj là tập chứa tất cả các giá trị duy nhất trong thuộc tính hạng mục j và
( j j )
p c C l là xác suất của giá trị cj xuất hiện trong cụm l. Elc trong công thức (4) có thể được viết lại như sau:
1 (1 ( )) c m c c l l l lj j j E n p q C l (5)
với nl là số các đối tượng trong cụm l. Giải pháp để tối thiểu hoá c l
E được cho bởi bổ đề dưới đây:
Bổ để: c l
E được gọi là đạt giá trị tối thiểu nếu và chỉ nếu: ( ljc j ) ( j j )
p q C l p c C l với qljc cj cho tất cả các thuộc tính hạng mục. Cuối cùng, chúng ta có thể viết lại E như sau:
1 1 1 ( ) k k k r c r c r c l l l l l l l E E E E E E E (6)
Công thức (6) là hàm tiêu chuẩn để phân cụm một tập dữ liệu với giá trị kiểu hạng mục và kiểu số. Khi cả Er và Ec đều không âm, việc cực tiểu E có thể đạt được bằng việc cực tiểu Er và Ec. Trong đó, Er có thể được cực tiểu bằng việc tính các phần tử kiểu số của k các nguyên mẫu cụm trong công thức (2), ngược lại, Ec
có thể được cực tiểu hoá bằng việc lựa chọn các phần tử kiểu hạng mục của k nguyên mẫu cụm theo bổ đề trên. Như vậy, công thức (2) và bổ đề trên định nghĩa một cách để chọn các đối tượng mẫu cụm nhằm tối thiểu hàm giá trị trong công thức (6).
3.7.1.2. Độ đo sự tương tự
Hàm đo độ tương tự được định nghĩa trong công thức (3) để tính hàm tiêu chuẩn trong công thức (6), là sự kết hợp giữa độ đo tương tự trên các thuộc tính số
với độ đo tương tự trên các thuộc tính hạng mục giữa các đối tượng và các nguyên mẫu cụm. Độ đo tương tự trên các thuộc tính số được xác định bằng khoảng cách Eclidean, trong khi đó, độ tương tự trên các thuộc tính hạng mục được xác định bằng số ghép đôi không tương xứng giữa các đối tượng và các prototypes. Trọng số
l
được đưa vào nhằm ngăn ngừa ảnh hưởng của các kiểu thuộc tính.
Ảnh hưởng của trọng số l trong phân cụm có thể được mô tả trong hình 3.26 dưới đây. Giả sử các hình tam giác và các hình thoi mô tả một tập các đối tượng đại diện cho một thuộc tính hạng mục và hai thuộc tính số. Hình tam giác và hình thoi mô tả hai giá trị của thuộc tính hạng mục trong khi đó các giá trị thuộc tính kiểu số được phản ánh bởi vị trí của các đối tượng. Các đối tương này được phân hoạch thành hai cụm.
Hình 3.26. Ảnh hƣởng của ltrong phân cụm
Nếu l= 0, phân cụm chỉ phụ thuộc vào các thuộc tính kiểu số, ví dụ, các vị trí của các đối tượng. Kết quả sẽ là hai cụm dữ liệu được tách bởi đường thẳng đứng.
Nếu l> 0, thì đối tượng c có thể thay đổi tới cụm bên phải bởi vì nó gần với
cụm này hơn và giá trị thuộc tính hạng mục của nó giống với phần lớn các đối tượng trong cụm đó. Tương tự, đối tượng d có thể di chuyển tới cụm bên trái. Tuy
nhiên, đối tượng a có thể vẫn trong cụm bên trái bởi vì nó quá xa so với cụm bên
phải, mặc dù nó có một giá trị hạng mục giống với phần lớn các đối tượng trong cụm đó. Tương tự, đối tượng e có thể vẫn trong cụm bên phải. Đối tượng b trở
thành bất định, phụ thuộc vào l là thiên về thuộc tính hạng mục hay thuộc tính số. Nếu l thiên về thuộc tính hạng mục, đối tượng b có thể thay đổi tới cụm bên phải, ngược lại, nó vẫn ở lại cụm bên trái.
Sự lựa chọn l phụ thuộc vào sự phân phối cỉa các thuộc tính số. Nói chung thì l có liên quan đến l - độ lệch chuẩn trung bình của các thuộc tính số trong
cụm. Trong thực tế, l có thể được sử dụng như một định hướng để xác định l. Tuy nhiên, khi không xác định được l trước khi phân cụm, độ lệch chuẩn trung bình toàn cục của các thuộc tính số có thể được sử dụng cho tất cả các l. Trong thuật toán lặp, l có thể được tính toán từ một kết quả phân cụm có trước.
3.7.2. Thuật toán k-prototypes
Thuật toán k-prototypes có thể được mô tả như sau:
Bước 1: Lựa chọn k đối tượng mẫu khởi tạo từ một tập dữ liệu X.
Bước 2: Phân phối từng đối tượng trong X tới một cụm mà nguyên mẫu là tương tự nhất với nó theo công thức (3). Cập nhật nguyên mẫu của cụm sau mỗi lần phân phối.
Bước 3: Sau khi tất cả các đối tượng được phân phối tới các cụm, kiểm tra lại độ tương tự của các đối tượng dựa vào các nguyên mẫu hiện tại. Nếu tìm thấy một đối tượng gần nguyên mẫu nhất thuộc về cụm khác thì thay thế đối tượng tới cụm đó và cập nhật lại các nguyên mẫu cho cả hai cụm này.
Bước 4: Lặp bước 3 cho tới khi không đối tượng nào có thể thay đổi các cụm. Thuật toán được xây dựng dựa trên ba quá trình: Khởi tạo các prototypes, phân phối ban đầu và phân phối lại. Quá trình đầu tiên lựa chọn ngẫu nhiên đơn
giản k đối tượng là các prototypes khởi tạo cho các cụm. Quá trình thứ hai được mô tả trong hình 3.27 dưới đây.
FOR i =1 TO NumberOfObject Mindistance=Distance(X[i],O_prototypes[1])+gamma*Sigma(X[i],C_prototypes[1]); FOR j =1 TO NumberOfClusters distance=Distance(X[i],O_prototypes[j])+gamma*Sigma(X[i],C_prototypes[j]); IF (distance < Mindistance) Mindistance=distance; Cluster=j; ENDIF; ENDFOR Clustership[i]=cluster; ClusterCount[cluster]=+1; FOR j=1 TO NumberOfNumericAttributes SumInCluster[cluster,j] = +X[i,j];
ENDFOR FOR j=1 TO NumberOfCategoricAttributes FrequencyInCluster[cluster,j,X[i,j]] + 1 C_prototypes[cluster,j]= HighestFreq(FrequencyInCluster,cluster,j) ENDFOR ENDFOR
Hình 3.27. Thủ tục phân phối ban đầu trong thuật toán k-prototypes
X[i] lưu giữ đối tượng i và X[i,j] là giá trị của thuộc tính thứ j đối với đối
tượng i. O_prototypes[] và C_prototypes[] lưu giữ các phần thuộc tính số và thuộc
tính hạng mục của các prototypes cụm tương ứng. O_prototypes[i,j] và C_prototypes[i,j] là hai phần tử hạng mục và số tương ứng của prototype với cụm i. Distance() là hàm khoảng cách Euclidean và Sigma() là một thể hiện của hàm ()
trong công thức (3). Clustership[] và ClusterCount[] ghi lại thành phần cụm của các đối tượng và số các đối tượng trong các cụm. SumInCluster[] tính tổng các giá trị số của các đối tượng trong cụm và được sử dụng để cập nhật lại các thuộc tính số của các prototypes của cụm. FrequencyInCluster[] ghi lại tần xuất của thuộc tính hạng
mục có giá trị khác nhau trong các cụm. Hàm HighestFreq() thi hành bổ đề nhằm
cập nhật các thuộc tính hạng mục của các prototypes.
Quá trình cập nhật lại được mô tả trong hình 3.28 dưới đây:
moves=0 FOR i = 1 TO NumberOfObjects … //Hình 3.27 … IF (Clustership[i]<>cluster) moves+1 oldcluster=Clustership[i] ClusterCount[cluster] + 1 ClusterCount[oldcluster] - 1 FOR j=1 TO NumberOfNumericAttributes SumInCluster[cluster,j] + X[i,j] SumInCluster[oldcluster,j] - X[i,j] O_prototypes[cluster,j]=SumInCluster[cluster,j]/ClusterCount[cluster] O_prototypes[oldcluster,j]= SumInCluster[oldcluster,j]/ClusterCount[oldcluster] ENDFOR
FOR j=1 TO NumberOfCategoricAttributes FrequencyInCluster[cluster,j,X[i,j]] + 1 FrequencyInCluster[oldcluster,j,X[i,j]] - 1 C_prototypes[cluster,j]= HighestFreq(cluster,j) C_prototypes[oldcluster,j]= HighestFreq(oldcluster,j) ENDFOR ENDIF ENDFOR
Hình 3.28. Thủ tục phân phối lại(re-allocation) trong k-prototypes
Hình 3.29 dưới đây là một thực nghiệm chỉ ra đường cong hội tụ của thuật toán, thực hiện trên tập dữ liệu gồm 75808 bản ghi và 20 thuộc tính. Số cụm là 64.
Hình 3.29. Quá trình hội tụ của thuật toán k-prototypes
Chúng ta có thể nhận thấy rằng số các đối tượng thay đổi trong các cụm giảm xuống rất nhanh trong khoảng thời gian đầu. Sau đó tốc độ này bị chậm dần và tiến gần đến trạng thái không thay đổi trong một số giai đoạn. Nó cũng tăng lên một ít sau khi thay đổi về 0. Điều này có nghĩa là, thuật toán có thể kết thúc ở trạng thái mà số các đối tượng thay đổi trong các cụm còn lại là đủ nhỏ nhằm làm giảm thời gian thực hiện của thuật toán.
Độ phức tạp tính toán của thuật toán là O((t+1)kn), trong đó n là số các đối
tượng, k là số các cụm và t là số vòng lặp của quá trình phân phối lại. Đặc biệt, nếu
CHƢƠNG 4.
PHÂN CỤM DỮ LIỆU MỜ
4.1. Giới thiệu
Thông thường, các phương pháp PCDL phân một tập dữ liệu ban đầu thành các cụm dữ liệu có tính tự nhiên và mỗi đối tượng dữ liệu chỉ thuộc về một cụm dữ liệu, phương pháp này chỉ phù hợp với việc khám phá ra các cụm có mật độ cao và rời nhau. Tuy nhiên, trong thực tế, các cụm dữ liệu lại có thể xếp chồng lên nhau, nghĩa là một số các đối tượng dữ liệu thuộc về nhiều cụm khác nhau. Lý thuyết tập mờ (Zadeh, 1965) mô tả một cách tự nhiên hoàn cảnh này. Trong phương pháp phân cụm mờ, độ phụ thuộc của đối tượng dữ liệu xk tới cụm thứ i (uik) có giá trị thuộc
khoảng [0,1]. Ý tưởng trên đã được giới thiệu đầu tiên bởi Ruspini (1969) và đã được Dunnn (1973) áp dụng nhằm xây dựng một phương pháp phân cụm mờ dựa trên tối thiểu hóa hàm tiêu chuẩn. Bezdek (1982) đã tổng quát hóa cách tiếp cận này để xây dựng thành thuật toán phân cụm mờ c-means có sử dụng trọng số mũ.
Nói chung, các phương pháp phân cụm có thể được phân chia thành các loại dưới đây (Duda và Hart, 1973; Fukunaga,1990; Tou and Gonzalez, 1974): phân cấp, lý thuyết đồ thị, phân tích một hàm mật độ, tối thiểu hoá một hàm tiêu chuẩn. Thuật toán phân cụm mờ hay còn gọi là thuật toán FCM (Fuzzy C Means) đã được áp
dụng thành công khi giải quyết một số lớn các bài toán PCDL như trong nhận dạng mẫu, xử lý ảnh, y học,… và phân cụm sử dụng tối thiểu hoá hàm tiêu chuẩn. Tuy nhiên, một trong những bất lợi lớn nhất của phương pháp này là tính nhạy cảm của nó với các nhiễu và phần tử ngoại lai trong dữ liệu. Trong trường hợp này, các trung tâm cụm được tính toán có thể nằm xa so với trung tâm thực của cụm. Đã có nhiều phương pháp đề xuất nhằm giảm bớt các phần tử ngoại lai như phân cụm dựa trên xác suất (Krishnapuram và Keller, 1993), phân cụm nhiễu mờ (fuzzy noise clustering) (Davé, 1991), Phân cụm Lp Norm (0 < p < 1) (Hathaway và Bezdek,
2000) và Phân cụm L1 Norm (Jajuga, 1991; Kersten, 1999), thuật toán -Insensitive Fuzzy C-means (FCM). [13].
4.2. Thuật toán FCM
4.2.1. Hàm mục tiêu
Một cách phổ biến trong PCDL là tối thiểu hoá hàm tiêu chuẩn để đo chất lượng của phân hoạch. Trong cách tiếp cận mờ (Bezdek, 1982), tổng tất cả các phân hoạch mờ của c cụm dữ liệu trong tập dữ liệu có N đối tượng trong không gian D
chiều được xác định như sau:
1 1 1 1 0,1 , 1, 0 c N fc cN ik ik ik i c k N i k E U R u u u N (4.1)
trong đó: RcN là không gian của tất cả các ma trận thực cấp c*N, uik là các phần tử của ma trận U.
Hàm tiêu chuẩn của thuật toán FCM được định nghĩa như sau:
2 1 1 ( , ) ( ) c N m m ik ik i k J U V u d (4.2)
trong đó: UEfc, V v v1, ,...,2 vcRpclà ma trận mẫu biểu diễn các giá trị đối tượng tâm của cụm, m là trọng số mũ trong [1, ). Hơn nữa, dikđược xác định như sau:
ik2 k i ( k i)T ( k i)
A
d x v x v A x v (4.3) trong đó: A là ma trận hữu hạn dương.
Hàm tiêu chuẩn (4.2) với m = 2 được giới thiệu bởi Dunn (1973). Một họ các
hàm tiêu chuẩn FCM với m[1, ) được đề xuất bởi Bezdek (1982). Sử dụng kỹ thuật các hàng số nhân Lagrange, định lý dưới đây là cần thiết nhằm tối thiểu hàm