Tải bản đầy đủ
PHƯƠNG PHÁP PHÂN CỤM TRỪ MỜ

PHƯƠNG PHÁP PHÂN CỤM TRỪ MỜ

Tải bản đầy đủ

dữ liệu để giải quyết cho trường hợp này. Cách thức kết hợp này được gọi là phân
cụm mờ.
Phân cụm mờ là phương pháp phân cụm dữ liệu mà cho phép mỗi điểm dữ
liệu thuộc về hai hoặc nhiều cụm thông qua bậc thành viên. Ruspini (1969) giới
thiệu khái niệm phân hoạch mờ để mô tả cấu trúc của tập dữ liệu và đề xuất một
thuật toán để tính toán tối ưu phân hạch mờ. Dunn (1973) mở rộng phương pháp
phân cụm và đã phát triển thuật toán phân cụm mờ. Ý tưởng của thuật toán là 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 mục tiêu. Bezdek
(1981) cải tiến và tổng quát hóa hàm mục tiêu mờ bằng cách đưa ra trọng số mũ để
xây dựng thuật toán phân cụm mờ và được chứng minh độ hội tụ của các thuật toán
là cực tiểu cục bộ.
Các thuật toán trong phân cụm mờ:
- Thuật toán C-means mờ là thuật toán phân cụm mờ tương ứng của thuật toán
K-means, hai thuật toán này cùng sử dụng chung một chiến lược phân cụm dữ liệu.
Thuật toán C-means mờ hay còn gọi tắt là thuật toán FCM (Fuzzy C-means) đã
được áp dụng thành công trong giải quyết một số bài toán lớn về phân cụm dữ liệu
như nhận dạng mẫu (nhận dạng vân tay, ảnh), xử lý ảnh (phân tách các cụm ảnh
màu, cụm màu), y học (phân loại bệnh nhân, phân loại triệu chứng),… Tuy nhiên,
nhược điểm lớn nhất của thuật toán FCM là tập dữ liệu lớn, tập dữ liệu nhiều chiều,
nhạy cảm với các nhiễu và phần tử ngoại lai trong dữ liệu, nghĩa là các trung tâm
cụm có thể nằm xa so với trung tâm thực của cụm.
- Đã có nhiều các phương pháp đề xuất để cải tiến cho nhược điểm trên của
thuật toán FCM bao gồm: Phân cụm dựa trên xác suất (keller, 1993), phân cụm
nhiễu mờ (Dave, 1991), phân cụm dựa trên toán tử LP Norm (Kerten, 1999) và
thuật toán ε-Insensitive Fuzzy C-means (εFCM) và thuật toán FCM cải tiến.
- Với thuật toán FCM, số lượng cụm phải được khởi tạo trước. Một hướng tiếp
cận khác có thể tự xác định được số lượng cụm và các tâm cụm là giải thuật
Mountain. Cải tiến của giải thuật Mountain được đưa ra là thuật toán phân cụm trừ
và phân cụm trừ mờ.

20

2.1.2. Thuật toán phân cụm C-Means mờ (FCM)
Kỹ thuật này phân hoạch một tập n đối tượng dữ liệu X = {x1, x2, …, xn} ⊂ Rs
thành C cụm mờ dựa trên tính toán cực tiểu hóa hàm mục tiêu để đo chất lượng của
phân hoạch và tìm trung tâm cụm trong mỗi cụm sao cho chi phí hàm đo độ phi
tương tự là nhỏ nhất. Một phân hoạch mờ trên tập dữ liệu X = {x1, x2, …, xn} ⊂ Rs
với đặc trưng ban đầu được biểu diễn bởi ma trận U = [ uik ] sao cho điểm dữ liệu đã
cho chỉ có thể thuộc về một số cụm với bậc được xác định bởi độ thuộc nằm trong
đoạn [0, 1]. Như vậy, ma trận U được sử dụng để mô tả cấu trúc cụm của X bằng
cách giải thích uik như bậc thành viên của xk với cụm i.
Cho U = (u1, u2, ….uC) là phân hoạch mờ gồm C cụm. Ma trận UC x n như sau:

U Cxn

 u11 u12

u
u
=  21 22
 ... ...

 uc1 uc 2

... u1n 

... u 2 n 
... ... 

... ucn 

Hàm mục tiêu của thuật toán FCM được Dunn định nghĩa như sau:
C

n

J m (U ,V ) = ∑ ∑ uik xk − vi

2

i =1 k =1

Bezdek khái quát hóa hàm mục tiêu mờ bằng cách đưa ra trọng số mũ m > 1 là
bất kỳ số thực nào như sau:
C

n

J m (U ,V ) = ∑ ∑ (uik ) m xk − vi
i =1 k =1

2

,1≤m≤∞

(2.1)

Trong đó:
X = [x1,….., xn] ⊂ Rs là n vectơ dữ liệu trong không gian vectơ Rs.
m ∈ [1, +∞] là trọng số mũ.
vi ∈ Rs là trung tâm cụm thứ i.
d ik = xk − xi là khuôn mẫu bất kỳ để đo khoảng cách giữa phần tử dữ liệu
xk với trung tâm cụm thứ i.
uik ∈ [0,1] là bậc của phần tử dữ liệu xk thuộc về cụm thứ i.

21

V = [vi] = [vl,…, vC] ∈ Rs x C là ma trận biểu diễn các giá trị trung tâm cụm.
U = [ uik ] là ma trận phân hoạch mờ của X thành C phần.
Một trong các nhân tố chính ảnh hưởng quyết định tới phân cụm là vấn đề
chọn phép đo độ phi tương tự. Thực vậy, tính toán bậc thành viên uik phụ thuộc vào
định nghĩa của phép đo khoảng cách d ik trên không gian Rs. Khoảng cách và bình
phương khoảng cách giữa vectơ mẫu xk và trung tâm cụm thứ i được định nghĩa như
sau:
d ik = xk − xi = ( xk − vi )T A( xk − vi )
d ik2 = xk − xi

2

= ( xk − vi )T A( xk − vi )

Trong đó:
A là ma trận hữu hạn dương đối xứng cấp (p x p) bất kỳ.
xk − vi

2

biểu diễn độ lệch của dữ liệu xk với vi, dik là tích vô hướng trên Rs.

Bậc thành viên của xk với cụm i thỏa mãn ràng buộc sau:

0 ≤ u ≤ 1
ik

n

0 < ∑ uik < n ,
 k =1
C
∑ uik = 1
i =1

1 ≤ i ≤ C ,1 ≤ k ≤ n

(2.2)

Để thuận tiện, coi mảng đối tượng dữ liệu {x1, x2, …, xn} là các cột trong ma
trận đối tượng dữ liệu X = [xjk] = [x1,….,xn] ∈ Rs x C. Ma trận phân hoạch U là một
công cụ tiện lợi để mô tả cấu trúc cụm trong dữ liệu {x1,…xn}; định nghĩa tập tất cả
các ma trận thực phân hoạch mờ không suy thoái cấp C x n cho phân hoạch n đối
tượng thành C cụm dữ liệu trong không gian RC x n được viết gọn như sau:
C


M fcn = U ∈ R Cxn | ∀i, k : uik ∈ [0,1]; ∑ uik = 1 < n 
i =1



(2.3)

RC x n là không gian của tất cả các ma trận thực cấp C x n.

22

Thông thường người ta gọi bài toán phân cụm mờ là bài toán tìm các bậc
thành viên uik nhằm tối thiểu hàm mục tiêu ở trên Jm (U, V) với các điều kiện sau:
Định lý 1: Nếu m và C là các tham số cố định và I k là một tập được định
nghĩa như sau:
∀ I k = { i | 1 ≤ i ≤ C , d ik = 0}

1≤ k ≤ n

(2.4)

thì hàm mục tiêu Jm(U, V) đạt giá trị cực tiểu:
n C


min  J m (U ,V ) = ∑∑ (uik ) m d ik2  khi và chỉ khi:
k =1 i =1



1

; Ik = ∅
2

 C  d  m −1
 ∑  ik 
 d 
uik =  j =1 jk 
0; i ∉ I k

; Ik ≠ ∅
 u = 1; i ∈ I
ik
k
i∈∑
 I k

; 1 ≤ i ≤ C ,1 ≤ k ≤ n

(2.5)

Và:
n

vi =

∑ (uik ) m xk

k =1
n

∑ (uik )

m

;1 ≤ i ≤ C

(2.6)

k =1

Định lý đã được Bezdek chứng minh (nếu m ≥ 1, d2ik > 0, 1 ≤ i ≤ C) là đúng
đắn.
Một phân hoạch tối ưu, nghĩa là hàm mục tiêu đạt giá trị cực tiểu, mà chủ yếu
dựa trên đó độ tương tự giữa xk và trung tâm cụm vi, điều này tương đương với hai
điều kiện (2.5) và (2.6) phải thỏa mãn. Từ đó thuật toán phân cụm mờ FCM được
xây dựng như sau.
Thuật toán FCM: Thuật toán FCM là một quá trình lặp qua lại giữa biểu thức
(2.5) và (2.6) để tối ưu (xấp xỉ cực tiểu) hàm mục tiêu dựa trên đo đạc độ tương tự
có trọng số giữa xk và trung tâm cụm vi. Sau mỗi vòng lặp, thuật toán tính toán và
cập nhật các phần tử uik trong ma trận phân hoạch U. Phép lặp sẽ dừng khi
23

max ik { uik( j +1) − uik( j ) } ≤ ε , trong đó ε là tiêu chuẩn kết thúc giữa 0 và 1, với j là các
bước lặp. Thuật toán FCM tính toán ma trận phân hoạch U và kích thước của các
cụm để thu được các mô hình mờ từ ma trận này.
Mô tả thuật toán FCM như sau:
Input: Vùng dữ liệu X, Số cụm C, tham số mũ m cho hàng mục tiêu J và
ngưỡng ε.
Ouput: C cụm dữ liệu sao cho hàm mục tiêu J m (U ,V ) đạt giá trị cực tiểu.
Thuật toán:
Begin
1. Khởi tạo:
- Nhập số cụm C (1< C - Khởi tạo ma trận V = [vi], V(0) ∈ Rs x c, j = 0;
2. Repeat
2.1. j = j + 1
2.2. Tính ma trận phân hoạch mờ U(j) theo công thức (2.5)
2.3. Cập nhật các trung tâm cụm V(j) = [v1(j), v2(j),…, vC(j)]

(

dựa vào công thức (2.6) và U(j).

( j +1)
−U
3. Until U

j
F

)

≤ε ;

4. Trình diễn các cụm kết quả
End.
Trong đó * F là tiêu chuẩn Frobenious được định nghĩa như sau:
U

2
F

= ∑i ∑ k uik2

Việc chọn các tham số cụm rất ảnh hưởng đến kết quả phân cụm, tham số này
thường được chọn theo phép ngẫu nhiên hoặc theo Huristic.
Chưa có quy tắc nào nhằm lựa chọn tham số m đảm bảo cho việc phân cụm
hiệu quả, nhưng thông thường chọn m = 2.

24

2.2. Thuật toán phân cụm trừ (SC - Subtractive Clustering)
Các thuật toán K-means và c-mean mờ (FCM) đã được ứng dụng rộng rãi. Cả
hai thuật toán này đều bắt đầu với việc khởi tạo số lượng cụm C và các tâm cụm
ban đầu x1, x2, ..., xC. Hiệu quả phân cụm phụ thuộc vào việc lựa chọn các giá trị ban
đầu này. Vấn đề đặt ra là cần xác định các giá trị khởi tạo đó để thuật toán đạt hiệu
quả nhất.
Yager và Filev đã đưa ra một thuật toán đơn giản và hiệu quả là giải thuật
Mountain để xác định số lượng cụm và các tâm cụm ban đầu. Phương pháp này đưa
ra một không gian lưới, và đánh giá khả năng trở thành tâm cụm của các điểm lưới
dựa vào khoảng cách tới các điểm dữ liệu thực. Giải thuật Mountain tuy đơn giản
nhưng việc tính toán phức tạp lên tới hàm mũ.
Chiu đã đưa ra một dạng cải tiến của giải thuật Mountain đó là thuật toán phân
cụm trừ. Thuật toán phân cụm trừ được xây dựng trên cơ sở thuật toán phân cụm
Mountain với việc đưa ra hàm tính mật độ để tính toán khả năng trở thành tâm cụm
cho từng điểm dữ liệu dựa vào khoảng cách của điểm dữ liệu này với tất cả các
điểm dữ liệu còn lạị. Giải thuật này chỉ xem xét đến từng điểm dữ liệu mà không
cần xét đến các điểm lưới lân cận điểm dữ liệu, điều này làm cho giải thuật trở nên
đơn giản hơn so với giải thuật Mountain và tốc độ tính toán được cải thiện đáng kể.
Thuật toán phân cụm trừ (Subtractive Clustering - SC) đánh giá khả năng trở
thành tâm cụm của các điểm dữ liệu dựa vào mật độ các điểm lân cận. Để tính mật
độ cho từng điểm dữ liệu, SC đưa ra một giá trị r gọi là bán kính cụm. Điểm dữ liệu
có mật độ lớn nhất sẽ trở thành tâm cụm.
Giả sử tập hợp dữ liệu gồm n điểm X = {x1, x2, ..., xn}, mật độ ban đầu của mỗi
điểm dữ liệu được tính như sau:
Pi =

n

∑e
j =1

−α x i − x j

2

(2.7)

25

trong đó: α =

4
, ra là bán kính cụm, Pi là mật độ của điểm dữ liệu thứ i, n là số
ra2

điểm dữ liệu, xi − x j

là khoảng cách Euclid giữa điểm dữ liệu thứ i với điểm dữ

liệu thứ j. Lựa chọn điểm có mật độ lớn nhất làm tâm cụm thứ nhất. Gọi x1* là vị trí
n

tâm cụm đầu tiên, có mật độ là P1* với P1* = max Pi . Giả sử đã tìm được tâm cụm
i =1

thứ k là xk* có mật độ là Pk* . Khi đó mật độ của các điểm còn lại được tính như sau:
Pi = Pi −
trong đó: β =

− β xi − x k*
Pk*e

2

(2.8)

4
, rb = η * ra , hệ số η là một hằng số lớn hơn 1, Pi là mật độ của
rb2

điểm dữ liệu thứ i. Hằng số rb là một giá trị lớn hơn ra để tâm cụm tiếp theo (nếu có)
sẽ nằm ngoài phạm vi bán kính ra so với tâm cụm thứ k.
Để tìm tâm cụm thứ (k + 1), tìm điểm x* có mật độ lớn nhất P* trong các
điểm còn lại và đánh giá khả năng trở thành tâm cụm của điểm x*. Thuật toán sử
dụng 2 hằng số gọi là hằng số chấp nhận e và hằng số từ chối e để đánh giá khả
năng trở thành tâm cụm mới của x*. Nếu P* > e * Pk* thì x* là tâm cụm thứ (k + 1)
tìm được. Nếu P* < e * Pk* thì thuật toán dừng và kết quả thu được k tâm cụm. Nếu
e * Pk*

*

≤P ≤e
k

{

* Pk* thì

d min = min x* − x*j
j =1

xét

giá

trị

của

biểu

thức

d min P *
F=
+ *,
ra
Pk

với

} là khoảng cách nhỏ nhất giữa điểm x* tới k tâm cụm trước đó,

nếu F ≥ 1 thì x* là tâm cụm thứ (k + 1), ngược lại thiết lập P* = 0 và lặp lại việc
tìm tâm cụm thứ (k + 1).

26

Khi kết thúc thuật toán, để đưa ra kết quả là các cụm dữ liệu xét độ phụ thuộc
của từng điểm dữ liệu vào các tâm cụm. Độ phụ thuộc của điểm dữ liệu xi vào tâm
cụm thứ k được tính theo công thức:

µik = e

−α xi − x k*

2

(2.9)

Thuật toán SC:
Input: Vùng dữ liệu X, các tham số ra, η (hay rb), e , e .
Output: Số lượng cụm và các tâm cụm.
Các bước của thuật toán:
Bước 0: Tính mật độ ban đầu cho các điểm dữ liệu theo công thức (2.7).
n

Bước 1: Chọn điểm x1* có mật độ lớn nhất P1* = max Pi làm tâm cụm thứ nhất.
i =1

Tính lại mật độ cho các điểm còn lại theo công thức (2.8).
Bước k (k > 1): Đã tìm được tâm cụm thứ k là xk* có mật độ là Pk* . Tìm x* là
điểm có mật độ lớn nhất P*.
- Nếu P * > e * Pk* : Chấp nhận x* là tâm cụm thứ (k + 1); Tính lại mật độ cho
các điểm còn lại theo công thức (2.8); Và sang bước (k + 1).
- Nếu P* < e * Pk* : thuật toán dừng, kết quả thu được k tâm cụm.
- Ngược lại:
d min P*
+ * ≥ 1 : Chấp nhận x* là tâm cụm thứ (k + 1); Tính lại mật độ
+ Nếu
ra
Pk
cho các điểm còn lại theo công thức (2.8); Và sang bước (k +1).
+ Ngược lại: Thiết lập P* = 0 và lặp lại bước k.
Nhận xét:
Các thuật toán phân cụm trước đó như K-means, K-medoids, C-means mờ yêu
cầu phải xác định trước số lượng cụm và đưa ra các tâm cụm khởi tạo ban đầu. Kết
quả phân cụm phụ thuộc vào các tâm cụm ban đầu này. Việc tìm ra các tâm cụm
khởi tạo để thu được kết quả tốt là vấn đề khó. Giải thuật mountain và phân cụm trừ

27

đã giải quyết được vấn đề này, tự xác định số lượng cụm và các tâm cụm dựa vào
cấu trúc của tập dữ liệu.
So với giải thuật mountain thì phân cụm trừ tính toán đơn giản và tốc độ tính
toán cải thiện hơn rất nhiều. Vì giải thuật mountain đưa ra một không gian lưới, và
đánh giá khả năng trở thành tâm cụm của các điểm lưới dựa vào khoảng cách tới
các điểm dữ liệu thực; còn thuật toán phân cụm trừ đánh giá khả năng trở thành tâm
cụm của các điểm dữ liệu thực dựa vào mật độ các điểm lân cận.
Tuy nhiên, thuật toán phân cụm trừ lại phải thiết lập 4 tham số đầu vào là ra,

η (hay rb), e , e . Kết quả phân cụm phụ thuộc nhiều vào lựa chọn các tham số ban
đầu và việc tìm các tham số để thuật toán cho kết quả tốt nhất là vấn đề khó khăn.
Theo Chiu, các tham số ban đầu thường được chọn là ra = 0.25, η = 1.5, e = 0.5,
e = 0.15. Tuy nhiên, việc lựa chọn bán kính ra tùy thuộc vào tập dữ liệu ban đầu.
Bán kính ra quá nhỏ hoặc quá lớn đều đẫn đến kết quả kém chính xác, nếu chọn bán
kính ra quá nhỏ thì hàm mật độ sẽ không ảnh hưởng tới các điểm dữ liệu lân cận,
nếu chọn bán kính ra quá lớn thì hàm mật độ sẽ ảnh hưởng tới tất cả các điểm dữ
liệu trong vùng. Một hướng cải tiến của thuật toán phân cụm trừ được đưa ra đó là
thuật toán phân cụm trừ mờ.
2.3. Thuật toán phân cụm trừ mờ (FSC – Fuzzy Subtractive Clustering)
Như đã trình bày ở trên, kết quả phân cụm phụ thuộc nhiều vào lựa chọn các
tham số ban đầu. Để điều khiển kết quả phân cụm sao cho không phụ thuộc nhiều
vào các tham số ban đầu, đưa tham số m vào hàm tính mật độ cho các điểm dữ liệu
như sau:
n

Pi = ∑ e

−α x i − x j

2
m −1

(2.10)

j =1

Nếu xk* là vị trí tâm cụm thứ k, có mật độ là Pk* thì mật độ cho các điểm dữ
liệu còn lại được tính theo công thức:
Pi = Pi −

− β xi − xk
Pk*e

2
m −1

(2.11)

28

Đưa ra kết quả phân cụm dựa vào độ phụ thuộc của điểm dữ liệu xi vào tâm
cụm thứ k tính theo công thức:

µik = e

−α xi − x k*

2
m −1

(2.12)

Khi đó việc lựa chọn giá trị của tham số m sẽ ảnh hưởng rất lớn tới kết quả
phân cụm. Như vậy với việc điều chỉnh tham số m cũng có thể thu được kết quả
phân cụm là tương đối tốt mà không phụ thuộc nhiều vào việc lựa chọn bốn tham số
ban đầu.
Hình dưới đây là một ví dụ về phân cụm trừ mờ trong không gian hai chiều và
kết quả là hai nhóm.

Hình 2.1: Hai nhóm dữ liệu của phân cụm trừ mờ
Thuật toán FSC:
Input: Vùng dữ liệu X, các tham số ra, η (hay rb), e , e và tham số m.
Output: Số lượng cụm và các tâm cụm.
Các bước của thuật toán:
Bước 0: Tính mật độ ban đầu cho các điểm dữ liệu theo công thức (2.10).
n

Bước 1: Chọn điểm x1* có mật độ lớn nhất P1* = max Pi làm tâm cụm thứ nhất.
i =1

Tính lại mật độ cho các điểm còn lại theo công thức (2.11).

29

Bước k (k > 1): Đã tìm được tâm cụm thứ k là xk* có mật độ là Pk* . Tìm x* là
điểm có mật độ lớn nhất P*.
- Nếu P * > e * Pk* : Chấp nhận x* là tâm cụm thứ (k + 1); Tính lại mật độ cho
các điểm còn lại theo công thức (2.11); Và sang bước (k +1).
- Nếu P* < e * Pk* : thuật toán dừng, kết quả thu được k tâm cụm.
- Ngược lại:
d min P*
+ * ≥ 1 : Chấp nhận x* là tâm cụm thứ (k + 1); Tính lại mật độ
+ Nếu
ra
Pk
cho các điểm còn lại theo công thức (2.11); Và sang bước (k +1).
+ Ngược lại: Thiết lập P* = 0 và lặp lại bước k.

30