Ch
ng 5
ươ
Gom c m d li u
ữ ệ
ụ
Data Clustering
1
Gi Gi
i thi u i thi u
ớ ớ
ệ ệ
• S bùng n thông tin hi n nay do tác đ ng c a các ệ ủ ự ộ
siêu ph ổ . ng ti n và WWW ệ
ươ ệ ố ấ ệ
ụ ự ờ ể ố
ộ
ườ ộ
• Các h th ng truy v n thông tin d a trên vi c phân nhóm, gom c m (clustering) ra đ i đ làm tăng t c đ tìm ki m thông tin. ế • Do s bi n đ ng th ự ế ậ
ng xuyên c a thông tin nên i không th duy ng t các nhóm, ể c m (cluster) trong m t môi tr ườ ụ ộ
ủ các thu t toán clustering đang t n t ồ ạ trì t ố nh thư ế.
ấ ề ặ ể ậ
ng xuyên clustering l ệ ả ậ
01/18/13
www.lhu.edu.vn
• V n đ đ t ra là làm th nào đ c p nh t các ậ ế c c p ậ ượ ỗ i toàn ạ 2 cluster trong h th ng m i khi thông tin đ ố nh t thay vì ph i th ườ b d li u? ộ ữ ệ
Gi Gi
i thi u i thi u
ớ ớ
ệ ệ
Gom c m (clustering) là quá trình nhóm t p ậ ng thành các c m (cluster) có các đ i ố ụ
ng gi ng nhau.
ụ đ i t ố ượ t ượ
ố
ố
ụ
ạ
ượ
ộ
Cho CSDL D={t1,t2,…,tn} và s nguyên k, gom c m là bài toán xác đ nh ánh x f: ị c gán vào m t Dg{1,…,k} sao cho m i ti đ ỗ c m (l p) Kj, 1 <= j <= k . ụ
ớ
ụ
ớ
Không gi ng bài toán phân l p, các c m c.
không đ
c bi
t tr ế ướ
ố ượ
3
01/18/13
www.lhu.edu.vn
Gi Gi
i thi u i thi u
ớ ớ
ệ ệ
D a trên kho ng cách
ự
ả
4
4
Gi Gi
i thi u i thi u
ớ ớ
ệ ệ
ể
ng ụ Cách bi u di n các c m ễ – Phân chia b ng ằ ranh ườ
1 2 3
các đ i ớ gi
0.5 0.2 0.3
I1
I2
…
In
ố ầ
– Các kh i c u – Theo xác su tấ – Hình cây – …
5
5
M đ u ở ầ
ụ
ọ c gán nhãn.
ượ
ủ
ữ
ạ
ọ ụ ụ
ẫ ộ
ươ
ự
ệ
Gom c m d li u là hình th c h c không giám sát, ữ ệ ứ trong đó các m u h c ch a đ ư ẫ M c đích c a gom c m d li u là tìm nh ng m u đ i ụ ữ ệ nhau (theo m t tiêu ng t di n hoăc gom c m t chu n nào đó) thành các c m ụ
ẩ
ị
ự
Đ nh nghĩa: ộ ậ
ậ
ng t
m t t p d li u m u, các ph n t t ươ
Gom c m là quá trình xây d ng m t t p h p t ợ ừ ộ ậ trong t p đã gom c m ụ ữ ệ ầ ử c. nhau v m t vài thu c tính ch n tr ướ
ụ ẫ ề
ự
ộ
ọ
ộ
6
What Is Clustering?
Group data into clusters
– Similar to one another within the same cluster – Dissimilar to the objects in other clusters – Unsupervised learning: no predefined classes
Outliers
Cluster 1
Cluster 2
7
Application Examples
A stand-alone tool: explore data distribution A preprocessing step for other algorithms Pattern recognition, spatial data analysis,
image processing, market research, WWW, … – Cluster documents – Cluster web log data to discover groups of
similar access patterns
8
Th nào là PP gom c m t
t?
ụ
ế
ố
ng t ng t ộ ươ ộ ươ cao trong cùng c m (intra-class) ụ th p gi a các c m (inter-class) ụ
ự ự ấ ệ
• Có đ t • Có đ t • Kh năng phát hi n m u n (hidden patterns) ả • Có kh năng làm vi c hi u qu v i m u l n ệ ữ ẫ ẩ ệ ẫ ớ ả ớ
ả (scalability)
• Kh năng làm vi c v i nhi u lo i d li u khác ớ ạ ữ ệ ề ệ
ả nhau
• ….
9
Ma tr n d li u (Data Matrix)
ữ ệ
ậ
ể
ụ
• Dùng đ mô hình hóa bài toán gom c m • Ma tr n bi u di n không gian d li u g m ồ
ữ ệ
ễ
ộ
• Ma tr n bi u di n m i quan h đ i t
ậ n đ i t ố ượ ậ
ể ng theo p thu c tính ể
ố
ệ ố ượ
ễ theo thu c tính: ộ
ø Ø
x 11
x 1 f
ng x 1 p
œ Œ
œ Œ
œ Œ
œ Œ
x 1 i
x if
x ip
œ Œ
x
x
œ Œ
x 1 n
nf
np
œ Œ ß º
10
Ma tr n phân bi
t (Dissimilarity Matrix)
ậ
ệ
Bi u di n kho ng cách gi a 2 đi m (đ i ố
ữ
ễ
ể
ả
ữ ệ
ồ
ng) trong không gian d li u g m n đ i ố ng theo p thu c tính
ộ
ể t ượ t ượ
ø Ø
œ Œ
œ Œ
d d
d
œ Œ
0 (2,1) (3,1)
0 (3,2)
0
œ Œ
œ Œ
nd (
,1)
nd (
,2)
0
œ Œ ß º
11
3. Đ đo kho ng cách
ộ
ả
Distances are normally used measures Minkowski distance: a generalization
q
q
q
=
>
q
|
|
|
x
+ |
jid ),(
x
|
q (
)0
2
2
p
p
x i
x i 1
j
x i
j
++ x ... | j 1 If q = 2, d is Euclidean distance If q = 1, d is Manhattan distance Weighed distance
q
q
=
+
>
- - -
q
jid ),(
|
x
x
|
++ ...
x
q q ()|
)0
2
2
p
p
j 1
j
xpw | i
j
xw | i 1 1
xw | i 2
- - -
12
Properties of Minkowski Distance
0
Nonnegative: d(i,j) ‡ The distance of an object to itself is 0
– d(i,i) = 0
Symmetric: d(i,j) = d(j,i) Triangular inequality
– d(i,j) £
d(i,k) + d(k,j)
13
Các ph
ươ
ng pháp phân c m (Categories of ụ Clustering Approaches )
ng thành k c m:
ụ
ố ượ
ng
ố ượ ng thu c v 1 c m duy nh t ấ ụ ề c ướ
Thu t toán phân ho ch (Partitioning algorithms)
ạ
ng và t o m t c m ch a nó. ộ ụ
ứ
ỗ ố ượ ầ
ụ
ộ
i b
c 2 cho đ n khi còn 1 c m duy nh t là toàn b không gian
Thu t toán phân c p (Hierarchy algorithms) ấ
ụ
ế
ấ
ộ
1 c m duy nh t là toàn b không gian
ộ
t có ph n t
ụ ộ
ụ
ệ
ậ
ấ
ầ ử
ể
ớ
ị
ng thu c 1 c m ho c đ t đi u
ấ ỗ ố ượ
ế
ộ
– Tách: • Xu t phát t ừ ấ • Ch n c m có đ phân bi ọ ặ c 2 cho đ n khi m i đ i t ủ ố ụ
ấ t cao nh t (ma tr n phân bi ệ l n nh t ho c giá tr trung bình l n nh t) đ tách đôi ấ ớ • L p l i b ụ ặ ạ ướ ụ ừ ệ
ạ ki n d ng (đ s c m ho c kho ng cách gi a các c m đ nh ) ỏ ả
ặ ủ
ữ
ặ
ạ ậ Phân ho ch c s d li u D có n đ i t ạ ơ ở ữ ệ – M i c m có ít nh t 1 đ i t ấ ỗ ụ – M i đ i t ộ ỗ ố ượ – K là sô 1c m cho tr ụ ậ – G p: ộ • Xu t phát m i đ i t ấ • N u 2 cum g n nhau thì g p thành 1 c m ế • L p l ặ ạ ướ
ề 14
Các ph
ng pháp phân c m (ti p)
ươ
ụ
ế
ng pháp d a trên m t đ (Density-
• Ph
ậ ộ
ươ
• Ph
ng pháp d a trên l
i (Grid-based
ự based methods) ự
ướ
• Ph
ng pháp d a trên mô hình (Model-
ự
ươ methods) ươ based)
15
4 Thu t toán K-means
ậ
ố ượ
ụ
c:
ng thành k c m ồ
• Phân ho ch n đ i t ạ • Thu t toán K-means g m 4 b ướ ọ
ậ ọ đ uầ
– Ch n ng u nhiên k đi m làm tr ng tâm ban ể ẫ
i) t ng đi m vào c m có tr ng ạ ừ ặ ụ ể ọ
– Gán (ho c gán l ầ tâm g n đi m đang xét. ể
ế ụ
ừ ả ệ ậ
– N u không có phép gán nào thì d ng (các c m đã n đ nh và thu t toán không c i thi n thêm đ
ừ ụ
– Tính tr ng tâm cho t ng c m – Quay l c 2. ị ổ c n a) ữ ượ ọ i b ạ ướ
16
K-Means: Example
10
10
10
9
9
9
8
8
8
7
7
7
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
0
0
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
Update the cluster means
0
1
2
3
4
5
6
7
8
9
10
reassign
reassign
Assign each objects to most similar center
10
10
9
9
K=2
8
8
7
7
6
6
5
5
4
4
Arbitrarily choose K object as initial cluster center
3
3
2
2
1
1
0
0
Update the cluster means
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
17
Example
ể
ụ
Cho t p đi m: ậ X1={1,3} = {x11,, x12} X2={1.5,3.2} = {x21,, x22} X3={1.3,2.8} = {x31,, x32} X4={3,1} = {x41,, x42} Dùng K-mean phân c m v i k=2 ớ B c 1: Kh i t o ma tr n phân ho ch U (2 rows and ở ạ ậ ạ
ij) 1<=i<=2; 1<=j<=4
ướ 4 columns) B c 2: U=(m ướ
18
x1
x2
x3
x4
Cho n=0 (s l n l p) t o U
ố ầ ặ
ạ
0
U0= C1
1
0
0
0
Every column has 1 bit number 1
0
1
1
1
C2
B c 3: Tính các vector tr ng tâm
ướ
ọ
Do có 2 c m C1, C2 do đó có 2 vector tr ng t m
ụ
ậ
ọ
19
Vector v1 for cluster C1:
+
+
m
x 11
*11
m
*14
x
41
=
v 11
x m
m m
x 31 m 14
+
+ 21 + 12 +
=
=
1
+
*11
m
m
*14
x
42
=
v 12
m m
x 32 m 14
+ 22 + 12 +
+
=
=
3
m *12 *13 + + 11 m 13 + 3*03.1*05.0*01*1 +++ 0001 + x 12 m x *12 *13 + + 11 m m 13 + 1*08.2*02.3*03*1 +++ 0001
=
v )3,1(1
20
Vector v2 for cluster C2:
+
+
m
x 11
*21
m
*24
x
41
=
v
21
+ +
x m
x 31 m 24
+
21 22 +
=
=
=
93.1
+
+
*21
m
m
*24
x
42
=
v
22
+ +
x m
x 32 m 24
22 22 +
+
=
=
=
33.2
m m *22 + 21 m m + 3*13.1*15.1*11*0 +++ 1110 x 12 m m *22 + 21 m m + 1*18.2*12.3*13*0 +++ 1110
*23 + 23 8.5 3 *23 + 23 7 3
=
v )33.2.93.1(1
21
Computing the Euclide distance for all points to clustering:
2
2
+
=
vxd
)1,1(
x 11(
v )11
x 12(
v )12
2
2
-+
=
=
- -
)11(
)33(
0
2
2
+
=
-
vxd
)2,1(
x 11(
v
)21
x 12(
v
)22
2
2
-+
=
=
- -
)93.11(
)33.23(
14.1
G p x1 vào c m C1 vì d(x1,v1) < d(x1,v2)
ụ
ộ
T
ng t
ươ
: ự
d(x2,v1)=0.54 < 0.97 = d(x2,v2) g p x2 vào C1
ộ
d(x3,v1)=0.36 < 0.78 = d(x3,v2) g p ộ x3 vào C1
-
22
d(x4,v1)=2.83 > 1.70 = d(x4,v2) g pộ x4 vào C1
x1 x2 x3 x4
ạ
Tăng n lên 1 Ma tr n phân ho ch U s ẽ ậ là:
1
1
0
C2 0
0
0
1
U0= C1 1
L p l ặ ạ
i cho đ n khi ế Không có phép gán nào thì d ng, n u ừ ế c 3 i b sai quay l ạ ướ
23
2) Fuzzy C-means
ậ
ạ
ậ
ạ
ờ
ứ
ậ ụ ẽ ị
ộ ậ
ự
ể
c
m
2
=
(m
J
)
(
)
,
)( j Cxd i
ij
i
Thu t toán K-means phân ho ch t p d ữ li u thành các c m là các t p rõ. ụ ệ Phân ho ch m xem các c m là các ờ t p m và 2 đi m d li u s có m c đ i ộ ữ ệ ể ậ thu c v m t c m v i giá tr trong [0,1]. ớ ề ộ ụ Thu t toán Fuzzy C-means c c ti u hàm m c tiêu: ụ n
= 1
j
= 1
i
(cid:229) (cid:229)
24
2) Fuzzy C-means
ự
ể
Thu t toán Fuzzy C-means c c ti u hàm ậ m c tiêu:
ụ
c
n
m
2
=
J
(m
)
(
,
)
)( j Cxd i
i
ij
=
=
1
j
1
i
Trong đó:
ộ
ủ
ộ
ụ
hàng i c t j c a ma tr n thành ậ ộ ủ j vào c m j
– m>1 là tham s m hóa (m đi u ch nh đ ộ ỉ ng ng, ươ ứ
ụ
(cid:229) (cid:229)
25
ộ ề ủ ườ
– μij là ph n t ầ ử viên U, bi u di n đ thu c c a x ễ ể (có Cj là tr ng tâm) ọ ề ố ờ thu c v c a 1 đi m vào c m t ể ng ch n m=2) thông th ọ
Thu t toán Fuzzy C-means
ậ
ữ ệ
ể
i i=1,n. C n ầ
ồ ụ
ạ
ậ
Không gian d li u g m n đi m x
phân ho ch thành c c m (2<= c c: ướ ồ
ố ờ 1. Chon tham s m hóa m>1 nxc v i 0<=
ớ n 2. Kh i t o ma tr n thành viên U
ậ ở ạ μij <=1 n m m = m 1 sao cho ( ) ij x
i ij C j ==
1
i
n (cid:229) (cid:229) =
1
ủ m j
j c a cum j (j=1..c) m ( ) 3. Tính tr ng tâm C
ọ ij =
1 i (cid:229) Thu t toán Fuzzy C-means(ti p) ế ậ 4. C p nh t ma tr n kho ng cách D
ậ ậ ậ nxc theo đ ộ
ij là kho ng cách
ả ả
ọ ả j) đo kho ng cách đã ch n (d
xừ i đ n Cế
t 1 ậ - 1 d ij m = (cid:229) c ij = d 1 k ik ø Ø ậ
N u dế ậ
ij >0 thì - 5. C p nh t ma tr n thành viên U:
2
m (cid:246) (cid:230) œ Œ (cid:247) (cid:231) (cid:247) (cid:231) œ Œ ł Ł œ Œ ß º ij=0 thì xij trùng v i tr ng tâm ớ ọ c tr c ế ướ i l p l i t ớ ướ
c 3.
b c l
Ng
i, n u d
ế
ượ ạ
μij =1
Cj c a c m j,
ủ ụ
6. N u U thay đ i là đ nh so v i b
ủ ỏ
ổ
c l
ượ ạ ặ ạ ừ ướ thì d ng, ng
ừ Example ể ạ ờ (0),
s m=2 và tiêu chu n h i t
ộ ụ ầ
ẩ Cho t p đi m:
ậ
X1={1,3} = {x11,, x12}
X2={1.5,3.2} = {x21,, x22}
X3={1.3,2.8} = {x31,, x32}
X4={3,1} = {x41,, x42}
Dùng Fuzzy C-mean phân c m ụ
v i k=2
ớ
Phân ho ch m ban đ u U
gi
ả ử
e =0.01.
Phân ho ch m ban đ u là:
ờ ạ ầ n m m ( ) x U0= 1
0 0
1 0
1 0
1 ki ik ắ v
ij ==
1
k
n m Tính tr ng tâm ban đ u b ng
ầ
công th c sau v i m=2 ọ
ứ ớ m ( ) (cid:229) ik (cid:229) =
1 k a. V i c m 1(c=1) ớ ụ Vector v1 cho c m 1ụ m + m m + + m * * x 2
1 x
1 j 2 2
4 4 j = v
1 j m m + x
m *
+ *
+ x
3
m + + 2
3
2
3
+ *1 *1 j
2
4
x *0 x
1 j j j 4 j = + + x 2
j
2
2
2
2
1
x
x
*1
3
2
+++
0111
+
+
x
3 j x
1 j j = = = 26.1 v
11 3.15.11
3 + = = 0.3 v
12 2
3
+
8.32.33
3 b. V i c m 2(c=2) ớ ụ Vector v1 cho c m 1ụ
=
v 2 j 2 2 2
1 j
4
+++
v 22 21 2 ừ ế ể ọ ủ ế ể ừ
ả ọ ỏ ả
ụ
ng vào c m ố ượ ụ b. V i c m 2(c=2) (ti p) ớ ụ ế 2 2 = + = )26.11( )33( 26.0 d
11 2 2 = + = - - )26.15.1( )32.3( 31.0 d
12 2 2 = + = - - )26.13.1( )38.2( 20.0 d
13 2 2 = -+ = - - )26.13( )31( 65.2 d
14 2 2 = + = - d )31( )13( 82.2 21 2 2 = + = - - d )35.1( )12.3( 66.2 22 2 2 = + = - - d )33.1( )18.2( 47.2 23 2 2 = -+ = - - d )33( )11( 0.0 24 - V i đ đo kho ng cách, c p nh t U ớ ộ ả ậ ậ 1 c + )1 m = ( PT )1.6 (
r
ik d
d =
1 k r
)(
ik
)(
r
jk - ø Ø (cid:246) (cid:230) (cid:247) (cid:231) œ Œ (cid:229) (cid:247) (cid:231) œ Œ ł Ł ß º 1 1 1 2 2 2 2 c d d d 11 11 11 = = = = m 2
+(cid:247) 991.0 11 +(cid:247) d 26.0
36.0 26.0
82.2 d =
1 j d
11 21 j 1 - - - ø Ø ø Ø ø Ø (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:247) (cid:231) œ Œ (cid:247) (cid:231) (cid:247) (cid:231) œ Œ (cid:247) (cid:231) (cid:231) œ Œ (cid:229) (cid:247) (cid:231) (cid:231) (cid:247) (cid:231) œ Œ ł Ł ł Ł œ Œ œ Œ ł Ł ł Ł ł Ł ß º ß º ß º 1 1 2 2 2 d d 12 12 m = = + = 1 968.0 12 +(cid:247) d 31.0
66.2 d
12 22 - - ø Ø ø Ø (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:247) (cid:231) (cid:247) (cid:231) œ Œ (cid:247) (cid:231) œ Œ (cid:247) (cid:231) (cid:231) ł Ł œ Œ œ Œ ł Ł ł Ł ß º ß º 1 1 2 2 2 d d 13 13 m = = + = 1 .0 993 13 +(cid:247) d 20.0
47.2 d
13 23 - - ø Ø ø Ø (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:247) (cid:231) (cid:247) (cid:231) œ Œ (cid:247) (cid:231) œ Œ (cid:247) (cid:231) (cid:231) ł Ł œ Œ œ Œ ł Ł ł Ł ß º ß º 1 1 2 2 2 m = = + = = 1 0 ICho 0 14 4 +(cid:247) d
14
d 65.2
0 d
14
d
14 24 - - ø Ø ø Ø (cid:246) (cid:230) (cid:246) (cid:230) (cid:246) (cid:230) (cid:247) (cid:231) (cid:247) (cid:231) œ Œ (cid:247) (cid:231) œ Œ (cid:247) (cid:231) (cid:231) ł Ł œ Œ œ Œ ł Ł ł Ł ß º ß º ạ ị
c t o ra t vi c c p nhât phân ho ch μ2j (j=1..4). Các
ạ Dùng PT 6.1 chi các giá tr phân ho ch
hàm thành viên m i đ
ừ ệ ậ
ớ ượ ạ
m cho b i:
ờ
ờ
U0= 0.991 0.986 0.993 0 ch a, xét chu n c a ma tr n, ch ng ẩ ạ ộ ụ ư ẳ ậ ậ ị > 0.009 0.014 0.007 1 ẩ ủ
ặ
0134 01.0 max | Xét đ t tiêu chu n h i t
h n giá tr tuy t đ i l n nh t c a t ng c p trong ma tr n:
ệ ố ớ
ạ
ấ ủ ừ
m
m
=
1
1
.0|
ik
ik ki
, i: Tính tr ng tâm v i ế ả ư ộ ụ ế ớ ọ , ti n hành l p l
Do k t qu ch a h i t
ặ ạ
các giá tr trong ma tr n phân ho ch m i
ớ
ạ
ậ ị - V i c m 1(c=1) ớ ụ Vector v1 cho c m 1ụ 2 2 + + + 2
*) x *)991.0( 2
*)0( x x
1 4 j = v
1 j 2 j
2 2 986.0(
+
2 *)993.0(
+ + )993.0( j
)991.0( x
j
3
)0( 2 2 + = = = 26.1 v
11 2 2 + + = = = 0.3 v
11 2
)986.0(
+
2
3.1*)993.0(5.1*)986.0(1*)991.0(
94.2
2
8.2*)993.0(2.3*)986.0(3*)991.0(
94.2 17.3
94.2
816.8
94.2 = )3,26.1( V
1 V i c m 2(c=2) ớ ụ + + + .0( 009 2
*) 2
*) x .0( 2
*)1( 007 x 4 j = v 2 j .0(
2 j
2 2 014
+ + 2
*)
+
2 .0( ) .0(
2 2 2
)014
+ .0( 009 x
j
1
.0(
)009
+
2
.0(1*) x
j
3
007
)1(
+
2
3*)1(3.1*) .0(5.1*)014 007 = = v 0.3 21 00.1 2 2 + + .0(2.3*)014.0(3*)009.0( 007 2
8.2*) = = v 0.1 22 94.2 = )0.1,0.3( V
2 ế ế ậ ạ ỏ ng. Ti p tuc cho đ n khi th a tiêu chu n h i tu. Khi đó, ma tr n phân ho ch s
ẽ
ộ
ẩ
xác đ nh m i phân c m m i các đ i t
ố ượ ụ ờ ộ ị26
27
28
29
x
2
0
0
=
=
1
0
,3
v
=
}1,3{
ả
v
Ti p theo tính kho ng cách t ng đi m đ n tr ng
ế
tâm c a nó. Tính kho ng cách t ng đi m đ n các
c m C1,C2 và ch n c m có kho ng cách nh nh t
ụ
ấ
đ đ a đ i t
ể ư
30
31
32
33
34
35