Nhãn cụm trong phân cụm thứ bậc

Unsupervised Learning bằng Python

Benjamin Wilson

Director of Research at lateral.io

Nhãn cụm trong phân cụm thứ bậc

  • Không chỉ là công cụ trực quan hóa!
  • Có thể lấy nhãn cụm ở bất kỳ giai đoạn trung gian nào
  • Dùng cho ví dụ như bảng chéo

Phân cụm thứ bậc Eurovision

Unsupervised Learning bằng Python

Các phân cụm trung gian & chiều cao trên dendrogram

  • Ví dụ tại mức 15:
    • Bulgaria, Cyprus, Greece là một cụm
    • Russia và Moldova là một cụm khác
    • Armenia là một cụm riêng

Phóng to cụm với đường ngang tại mức 15

Unsupervised Learning bằng Python

Dendrogram thể hiện khoảng cách cụm

  • Chiều cao trên dendrogram = khoảng cách giữa các cụm được gộp
  • Ví dụ cụm chỉ gồm Cyprus và Greece có khoảng cách xấp xỉ 6

Phóng to cụm với cụm Cyprus/Greece được tô sáng

Unsupervised Learning bằng Python

Dendrogram thể hiện khoảng cách cụm

  • Chiều cao trên dendrogram = khoảng cách giữa các cụm được gộp
  • Ví dụ cụm chỉ gồm Cyprus và Greece có khoảng cách xấp xỉ 6
  • Cụm mới này cách cụm chỉ gồm Bulgaria khoảng 12

Phóng to cụm với cụm Cyprus/Greece và cụm Cyprus/Greece/Bulgaria được tô sáng

Unsupervised Learning bằng Python

Các phân cụm trung gian & chiều cao trên dendrogram

  • Chiều cao trên dendrogram cho biết khoảng cách tối đa giữa các cụm được gộp
  • Không gộp các cụm xa hơn mức này (ví dụ 15)

Phóng to cụm với đường ngang tại mức 15

Unsupervised Learning bằng Python

Khoảng cách giữa các cụm

  • Xác định bởi "phương pháp liên kết"
  • Với liên kết "complete": khoảng cách giữa cụm là khoảng cách lớn nhất giữa các mẫu của chúng
  • Chỉ định qua tham số method, ví dụ linkage(samples, method="complete")
  • Khác phương pháp liên kết → phân cụm thứ bậc khác!
Unsupervised Learning bằng Python

Trích xuất nhãn cụm

  • Dùng hàm fcluster()
  • Trả về mảng NumPy các nhãn cụm

Phóng to cụm với đường ngang tại mức 15

Unsupervised Learning bằng Python

Trích xuất nhãn cụm bằng fcluster

from scipy.cluster.hierarchy import linkage
mergings = linkage(samples, method='complete')
from scipy.cluster.hierarchy import fcluster

labels = fcluster(mergings, 15, criterion='distance') print(labels)
[ 9  8 11 20  2  1 17 14 ... ]
Unsupervised Learning bằng Python

Ghép nhãn cụm với tên quốc gia

Cho danh sách chuỗi country_names:

import pandas as pd
pairs = pd.DataFrame({'labels': labels, 'countries': country_names})
print(pairs.sort_values('labels'))
               countries  labels
5                Belarus       1
40               Ukraine       1
...
36                 Spain       5
8               Bulgaria       6
19                Greece       6
10                Cyprus       6
28               Moldova       7
...
Unsupervised Learning bằng Python

Ayo berlatih!

Unsupervised Learning bằng Python

Preparing Video For Download...