Những điều cơ bản về phân cụm k-means

Phân cụm trong Python

Shaumik Daityari

Business Analyst

Vì sao dùng k-means?

  • Hạn chế lớn của phân cụm phân cấp: thời gian chạy
  • K-means chạy nhanh hơn đáng kể trên dữ liệu lớn
Phân cụm trong Python

Bước 1: Tạo tâm cụm

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: quan sát đã chuẩn hóa
  • k_or_guess: số cụm
  • iter: số vòng lặp (mặc định: 20)
  • thres: ngưỡng (mặc định: 1e-05)
  • check_finite: có kiểm tra quan sát chỉ chứa số hữu hạn hay không (mặc định: True)

Trả về hai đối tượng: tâm cụm, độ méo

Phân cụm trong Python

Độ méo được tính thế nào?

Phân cụm trong Python

Bước 2: Tạo nhãn cụm

vq(obs, code_book, check_finite=True)
  • obs: quan sát đã chuẩn hóa
  • code_book: tâm cụm
  • check_finite: có kiểm tra quan sát chỉ chứa số hữu hạn hay không (mặc định: True)

Trả về hai đối tượng: danh sách nhãn cụm, danh sách độ méo

Phân cụm trong Python

Lưu ý về độ méo

  • kmeans trả về một giá trị độ méo
  • vq trả về danh sách độ méo.
Phân cụm trong Python

Chạy k-means

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Phân cụm trong Python

Phân cụm trong Python

Tiếp theo: bài tập!

Phân cụm trong Python

Preparing Video For Download...