You are on page 1of 52

PHÂN CỤM DỮ LIỆU

(CLUSTERING)
Mục tiêu
 Hiểu ý nghĩa của bài toán gom cụm dữ liệu
 Vận dụng các phương pháp gom cụm dữ liệu
 Vận dụng cách đánh giá mô hình gom cụm dữ liệu
 Sử dụng phần mềm Orange để gom cụm dữ liệu

2
Nội dung
1. Gom cụm dữ liệu
2. Một số phương pháp gom cụm
3. Đánh giá mô hình gom cụm
4. Minh họa với phần mềm Orange

3
1. Gom cụm dữ liệu
 Là quá trình gom cụm/nhóm
các đối tượng/dữ liệu có đặc
điểm tương đồng vào các
cụm/nhóm tương ứng. Trong
đó:
❑ tương đồng giữa những phần
tử trong cùng cụm
❑ khác biệt với những phần tử
trong các cụm khác

4
Các ứng dụng phân cụm trong kinh tế
 Dự báo khách hàng tiềm năng
 Phân tích xu hướng hành vi khách hàng
 Phân tích cạnh tranh, xu hướng lựa chọn dịch vụ giữa
các nhà cung cấp
 Phân tích đặc tính sản phẩm dịch vụ
 Đánh giá kết quả hoạt động kinh doanh
 Phân tích hành vi người dùng mạng xã hội
Thảo luận

Phân cụm có thể được sử dụng cho


các bài toán nào ở UEH?

huybx@ueh.edu.vn
1. Gom cụm dữ liệu (tt.)
 Cụm (cluster) – Các đại lượng đối với dữ liệu định
lượng
❑ trọng tâm (centroid):
1 n
C =  xi
n i =1
❑ bán kính (radius):

1 n
R=  i
n i =1
( x − C ) 2

❑ đường kính (diameter):


1
D=  i j
n(n − 1) i  j
( x − x ) 2

7
1. Gom cụm dữ liệu (tt.)
 Gom cụm (Clustering, Data Segmentation)
❑ tìm sự tương đồng (khác biệt) giữa các phần tử trong
dataset
❑ Unsupervised Learning: không có các lớp được xác định
trước (learning by observations)

8
1. Gom cụm dữ liệu (tt.)
 Gom cụm (Clustering, Data Segmentation) – G.đoạn
tiền xử lý cho các thuật toán khác
❑ summarization: hồi quy, PCA, …
❑ compression: xử lý ảnh
❑ phát hiện outliers
❑. ..

9
Giới thiệu phân cụm dữ liệu

Mô hình quá trình phân cụm dữ liệu


1. Gom cụm dữ liệu (tt.)
 Chất lượng của clustering
❑ intra-class similarity : sự kết dính (cohesion) trong
cluster
❑ extra-class similarity : sự khác biệt (distinction) giữa
clusters

11
1. Gom cụm dữ liệu (tt.)
 Hàm khoảng cách (distance function): giữa 2 items
❑ khoảng cách Manhattan:
n
d ( x, y ) =  xi − yi
i =1

❑ khoảng cách Euclid:


1/ 2
 n 
d ( x, y ) =   ( xi − yi ) 2 
 i =1 
❑ khoảng cách Minkowski: (p > 2)

( )
n 1/ p

d ( x, y ) =  xi − yi
p

i =1

12
1. Gom cụm dữ liệu (tt.)
 Hàm khoảng cách (distance function): giữa 2 items
❑ cosin:
n

 x .y i i
d ( x, y ) = i =1
n n

x
i =1
2
i  i
y 2

i =1

❑ tích vô hướng (scalar product):

n
d ( x, y ) =  xi . yi
i =1

13
1. Gom cụm dữ liệu (tt.)
 Hàm khoảng cách (distance function): giữa 2 clusters
❑ Single-link: kh.cách ngắn nhất giữa 2 items của 2 clusters

D(Ci , C j ) = min d ( xi , x j )
xi Ci , x j C j

❑ Complete-link: kh.cách dài nhất giữa 2 items của 2 clusters

D(Ci , C j ) = max d ( xi , x j )
xi Ci , x j C j

❑ Average-link: kh.cách trung bình giữa 2 items của 2


1
clusters D(Ci , C j ) =
Ci . C j
 d (x , x )
xi Ci
i j

x j C j

14
1. Gom cụm dữ liệu (tt.)
 Hàm khoảng cách (distance function): giữa 2 clusters
❑ Centroids: kh.cách giữa 2 trọng tâm của 2 clusters
 1 
D(Ci , C j ) = d  y
1
 Ci  x ,
Cj
 
 xCi yC j

❑ Medoids: kh.cách giữa 2 phần tử trung tâm của 2 clusters

D(Ci , C j ) = d ( M i , M j )

❑ Ward’s method: gộp 2 clusters → xét trọng tâm của (Ci 


Cj)
D(Ci , C j ) =  d ( x, 
xCi C j
Ci C j )

15
Nội dung
1. Gom cụm dữ liệu
2. Một số phương pháp gom cụm
3. Đánh giá mô hình gom cụm
4. Minh họa với phần mềm Orange

16
Giới thiệu phân cụm dữ liệu
Phân loại một số phương pháp phân cụm chính
2.1 Cách tiếp cận phân hoạch
 Tập dữ liệu D được phân hoạch thành k clusters (rời
nhau)
❑ xác định một điểm ci là “đặc trưng” cho mỗi cluster Ci
❑ chọn phân hoạch tốt nhất: tổng bình phương khoảng cách (Sum
of Squared Error) từ ci đến mọi xCi của tất cả k clusters là nhỏ
nhất:
k
SSE =   d ( x, ci ) 2
i =1 xCi
❑ tối ưu toàn cục: vét cạn mọi cách
phân hoạch (khả thi?)
❑ dùng heuristic: k-Means, k-Medoids,
Fuzzy C-Means, …

18
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán k-Means (MacQueen, 67; Lloyd, 57): ci là
trọng tâm của cluster Ci
Bước 1. Chọn ngẫu nhiên k trọng tâm {c1, c2, …, ck}.
Bước 2. xD, đưa x vào cluster có trọng tâm gần với x
nhất:
C ( x) = arg min d ( x, ci )
i

Nếu phân hoạch mới không đổi so với lần trước:


DỪNG.
Bước 3. Xác định lại k trọng tâm {c1, c2, …, ck}, quay lại
Bước 2.

19
Thuật toán K-means
Ví dụ: Ta có bộ dữ liệu gồm 4 đối tượng là 4 lọ thuốc bị mất nhãn. Biết
rằng 4 lọ này thuộc 2 loại khác nhau và mỗi lọ thuốc có 2 thuộc tính là
chỉ số khối và độ pH như bảng bên dưới. Ta sẽ sử dụng thuật toán K-
means để phân 4 đối tượng này vào 2 cụm
Thuật toán K-means
✓ Do đối tượng dữ liệu D (5;4)

cho sẵn có 2 thuộc tính


nên ta có thể xem mỗi C (4;3)
đối tượng là một điểm
trong không gian hai
chiều với:

Độ pH
x: chỉ số khối.
B (2;1)
y: độ pH.
✓ Các đối tượng có thể A (1;1)
được biểu diễn trong
không gian hai chiều
như hình bên cạnh. Chỉ số khối
Thuật toán K-means

✓ Bước 1: Chọn 2 điểm


ngẫu nhiên C1 = A (1;1)
và C2 = B(2;1) làm 2
trung tâm của 2 cụm.
✓ Bước 2: Phân cụm cho

Độ pH
các điểm trong không
gian dữ liệu bằng cách
tính khoảng cách Euclid
từ mỗi điểm đến từng
trung tâm.
Chỉ số khối
Thuật toán K-means

Độ pH
Cụm 1: {A}
Cụm 2: {B,C,D}

✓ Bước 3: Cập nhật lại trung tâm của 2 cụm.


C1 = (1;1)
𝑥𝐵 +𝑥𝐶 +𝑥𝐷 𝑦𝐵 +𝑦𝐶 +𝑦𝐷 Chỉ số khối
C2 = ; = (3.67;2.67)
3 3
Thuật toán K-means
Bước 4: lặp lại bước 2: phân cụm
lại cho các đối tượng dựa theo
khoảng cách với 2 trung tâm mới

Độ pH
Cụm 1 :{A, B}
Cụm 2 :{C, D}

✓ Bước 3: Cập nhật lại trung tâm của 2 cụm. Chỉ số khối
C1 = (1.5;1) ; C2 = (4.5;3.5)
Thuật toán K-means
Bước 4: lặp lại bước 2: phân cụm
lại cho các đối tượng dựa theo
khoảng cách với 2 trung tâm mới

Độ pH
Cụm 1 :{A, B}
Cụm 2 :{C, D}
✓ Bước 3: Cập nhật lại trung tâm của 2 cụm.
C1 = (1.5;1) ; C2 = (4.5;3.5) Chỉ số khối
Kết quả phân cụm không đổi => kết thúc
Thảo luận

Phương pháp K-mean phải xác


định số cụm ban đầu, vậy làm sao
biết được phận làm bao nhiêu cụm
là tối ưu?

huybx@ueh.edu.vn
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán Fuzzy C-Means (Dunn, 73; Bezdek, 81)
❑ tậpmờ (fuzzy set) với hàm thành viên (membership
function) FD : D → [0, 1] (Zadeh, 65)
VD: Flip-Flop thuộc 2 nhóm sản phẩm { phần mềm, giải
trí }

❑1 phần tử có thể thuộc nhiều hơn 1 cluster → fuzzy clusters


{C1, …, Ck}, với mức độ thành viên (degree of
membership)

27
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán Fuzzy C-Means
❑ ma trận phân hoạch (partition matrix): W = [wij]n x k, với:
wij = membership(di, Cj)  [0, 1] (→ xác suất)
C1 C2  Ck
d1  w11 w12 ...w1k 
  tổng giá trị dòng i:
d 2  w21 w22 ... w2 k  k

       ROWi =  wij = 1
  j =1
w ... wnk 
dn  n1 wn 2

n
tổng giá trị cột j:0  COL j = w
i =1
ij  n (không có cluster rỗng)

❑ tối ưu hóa: SSE(C ) = k , với tham số p > 1


  ij i j
w p
.
j =1 xi C j
d ( d , c ) 2

28
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán Fuzzy C-Means: cải biên từ k-Means
Bước 1. Khởi tạo (ngẫu nhiên) W(0) với ROWi = 1, i=1..n
Bước 2. Xác định k trọng tâm ở vòng lặp thứ t:
n

 ij .xi
w p

cj = i =1
n

w
i =1
p
ij

Bước 3. Cập nhật ma trận phân hoạch W(t) ở vòng lặp thứ t:
1
wij = 2
k
 d ( xi , c j )  p −1
 
s =1  d ( xi , cs ) 


Bước 4. Nếu W − W
(t ) ( t −1)
  thì DỪNG; Ngược lại, quay lại Bước 2.

29
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán Fuzzy C-Means
VD: n = 6, không gian 2 chiều (F1, F2), k = 2 (C1, C2), p
=2

Khởi tạo W(0)

30
2.1 Cách tiếp cận phân hoạch (tt.)
 Thuật toán Fuzzy C-Means
Vòng lặp t = 1:

 5.58 14.28   7.38 10.48 


2 trọng tâm: c1 =  ,  = (2.4, 6.1) c 2 =  ,  = (4.8,6.8)
 2.32 2.32   2.32 2.32 
Cập nhật W(1):

Tiếp tục vòng lặp t … cho đến khi phân hoạch “ổn định”.

31
2.1 Cách tiếp cận phân hoạch (tt.)
 Ưu điểm của FCM
❑ gom cụm linh hoạt
❑ hiệu quả với tập dữ liệu lớn, các cụm chồng lắp lên nhau

 Khuyết điểm của FCM


❑ xác định tham số p
❑ phụ thuộc vào bước khởi tạo → cực trị địa phương
❑ nhạy cảm với nhiễu và giá trị bất thường

32
2.2 Cách tiếp cận phân cấp
 Xây dựng cây phân cấp cho các phần tử trong tập dữ
liệu
❑ dựa trên ma trận khoảng cách
(distance/similarity/dissimilarity matrix) giữa các phần tử
và khoảng cách giữa các cụm
❑ dựa trên điều kiện dừng thay vì tham số k của k-Means
❑ clusters sau
khi hình thành vẫn có thể phân tách, gộp
chung (khác với cách tiếp cận phân hoạch)

33
2.2 Cách tiếp cận phân cấp (tt.)
 Hai phương pháp điển hình
Agglomerative Nesting (AGNES)

Divisive Analysis (DIANA)

34
2.2 Cách tiếp cận phân cấp (tt.)
 Phương pháp AGNES (Kaufmann & Rousseeuw,
1990)
Bước 1. Khởi tạo n clusters, mỗi cluster chứa 1 phần tử.
Bước 2. Dựa trên single-link, gộp chung 2 clusters gần nhau
nhất thành 1 cluster.
Bước 3. Lặp lại Bước 2 cho đến khi gộp n phần tử vào 1
cluster

Ts.
Chương 5: Gom cụm dữ liệu Nguyễn
An Tế

35
2.2 Cách tiếp cận phân cấp (tt.)
 Biểu đồ Dendrogram: cây phân cấp các clusters
❑ phân hoạch là một nhát cắt (ngang) ở 1 mức xác định
❑ những nút được liên kết với nhau sẽ tạo thành 1 cluster

khoảng
cách

# clusters

36
2.2 Cách tiếp cận phân cấp (tt.)
 Phương pháp AGNES (Kaufmann & Rousseeuw,
1990)

37
2.2 Cách tiếp cận phân cấp (tt.)
 Phương pháp AGNES (Kaufmann & Rousseeuw,
1990)

38
2.2 Cách tiếp cận phân cấp (tt.)
 So sánh các hàm khoảng cách

39
2.2 Cách tiếp cận phân cấp (tt.)
 Phương pháp DIANA (Kaufmann & Rousseeuw,
1990)
Bước 1. Khởi tạo 1 cluster chứa tất cả n phần tử.
Bước 2. Mỗi cluster có hơn 1 phần tử được tách thành 2
clusters (top-down, ngược với AGNES).
Bước 3. Lặp lại Bước 2 cho đến khi có n clusters.
Divisive Analysis (DIANA)

40
2.2 Cách tiếp cận phân cấp (tt.)
 Ưu điểm của cách tiếp cận phân cấp
❑ giải thuật đơn giản
❑ kết quả dễ hiểu
❑ không cần tham số đầu vào (k)
 Khuyết điểm cách tiếp cận phân cấp
❑ không thể quay lui
❑ độ phức tạp O(n2), không thích hợp với tập dữ liệu lớn
❑ nhạy cảm với nhiễu, dữ liệu bị thiếu
❑ không hiệu quả với tập dữ liệu không lồi (non-convex)

41
Nội dung
1. Gom cụm dữ liệu
2. Một số phương pháp gom cụm
3. Đánh giá mô hình gom cụm
4. Minh họa với phần mềm Orange

42
3. Đánh giá mô hình gom cụm
 Bài toán phân cụm rất khó đánh giá chất lượng
 Các phương pháp đánh giá việc phân cụm dữ liệu:
đánh giá ngoài, đánh giá nội bộ, đánh giá tương đối.
 Các tiêu chí đánh giá chất lượng
❑ độ nén (compactness): các phần tử trong cụm phải gần
nhau
❑ độ phân tách (separation): các cụm phải cách nhau (rõ
ràng)

43
Đánh giá ngoài (external validation)
 Là đánh giá kết quả phân cụm dựa vào cấu trúc/ xu hướng phân
cụm được chỉ định trước cho tập dữ liệu.
❑ So sánh độ sai khác giữa các cụm

❑ So sánh với kết quả mẫu (đáp án)

 Các độ đo được sử dụng trong phương pháp này: Rand statistic,


Jaccard coefficient, Folkes và Mallows index….
3. Đánh giá mô hình gom cụm (tt.)
 Phương pháp đánh giá trong (internal validation)
❑ không có thông tin từ bên ngoài
❑ chủ yếu dựa trên ma trận xấp xỉ (proximity matrix)
❑ tối ưu hóa độ tương đồng, độ phân tách
 Một số độ đo
❑ Hubert’s statistic
❑ Silhouette index, Dunn’s index,
❑ F-ratio

❑ DBI (Davies Bouldin Index)

45
Đánh giá tương đối (relative validation)
 Đánh giá kết quả gom cụm bằng việc so sánh với:
❑ Kết quả gom cụm ứng với các bộ trị thông số khác nhau.
❑ Kết quả gom cụm của các phương pháp khác
Nội dung
1. Gom cụm dữ liệu
2. Một số phương pháp gom cụm
3. Đánh giá mô hình gom cum
4. Minh họa với phần mềm Orange

47
Demo bằng công cụ Orange
 Bài toán phân cụm khách hàng, dựa trên hành vi
mua hàng
Demo bằng công cụ Orange
 Quy trình thực hiện
Demo bằng công cụ Orange
 Kết quả
Tài liệu tham khảo
 [1] Oded Maimon, Lior Rokach, “Data Mining and Knowledge
Discovery Handbook”, Second Edition, Springer Science +
Business Media, LLC 2005, 2010
 [2] Hillol Kargupta, Jiawei Han, Philip S. Yu, Rajeev Motwani, and
Vipin Kumar, “Next Generation of Data Mining”, Taylor & Francis
Group, LLC, 2009
 [3] Jiawei Han, Micheline Kamber, “Data Mining: Concepts and
Techniques”, Second Edition, Morgan Kaufmann Publishers, 2006
 [4] Daniel T. Larose, “Data mining methods and models”, John
Wiley & Sons, Inc, 2006.
 [5]R. Xu, D. Wunsch II. Survey of Clustering Algorithms. IEEE
Transactions on Neural Networks, 16(3), May 2005, pp. 645-678
Thảo luận

52

You might also like