Có bao nhiêu cụm?

Phân cụm trong Python

Shaumik Daityari

Business Analyst

Cách tìm k phù hợp?

  • Không có phương pháp tuyệt đối để tìm số cụm (k) đúng trong k-means
  • Phương pháp khuỷu tay (elbow)

Phân cụm trong Python

Ôn lại độ méo

  • Độ méo (distortion): tổng bình phương khoảng cách từ điểm tới tâm cụm
  • Giảm khi tăng số cụm
  • Bằng 0 khi số cụm bằng số điểm
  • Đồ thị khuỷu tay: đường nối giữa số cụm và độ méo

Phân cụm trong Python

Phương pháp khuỷu tay

  • Đồ thị khuỷu tay: biểu đồ giữa số cụm và độ méo
  • Giúp gợi ý số cụm trong dữ liệu
Phân cụm trong Python

Phương pháp khuỷu tay trong Python

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Phân cụm trong Python

Phân cụm trong Python

Lưu ý khi dùng phương pháp khuỷu tay

  • Chỉ gợi ý giá trị k tối ưu (số cụm)
  • Không phải lúc nào cũng xác định chính xác số k
  • Phương pháp khác: silhouette trung bình, thống kê gap
Phân cụm trong Python

Tiếp theo: bài tập

Phân cụm trong Python

Preparing Video For Download...