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)

26

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

ớ ọ

27

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)

28

= 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

29

b. V i c m 2(c=2)

ớ ụ

Vector v1 cho c m 1ụ = v

2

j

2

x 2

2

0

2 1

0 =

=

j 4 +++ v

1

0 ,3

v

22

21

=

2

}1,3{ ả

ế

ế

ừ ả

ả ụ ng vào c m

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

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

-

31

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) ł Ł œ Œ œ Œ ł Ł ł Ł ß º ß º

32

ị 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 ớ ạ ậ

-

33

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

34

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 ố ượ

35