Bắt đầu ngayBắt đầu miễn phí

K-means: Phân tích Elbow

Trong các bài trước, bạn đã dùng dendrogram để đề xuất một cách phân cụm tạo ra 3 cụm. Trong bài này, bạn sẽ tận dụng biểu đồ elbow của k-means để đề xuất số cụm "tối ưu".

Bài tập này là một phần của khóa học

Phân cụm bằng R

Xem khóa học

Hướng dẫn bài tập

  • Dùng map_dbl() để chạy kmeans() với dữ liệu oes cho các giá trị k từ 1 đến 10 và trích xuất giá trị tổng phương sai trong cụm từ mỗi mô hình: model$tot.withinss. Lưu vector kết quả vào tot_withinss.
  • Tạo một data frame mới elbow_df chứa các giá trị k và vector tổng phương sai trong cụm.
  • Dùng các giá trị trong elbow_df để vẽ biểu đồ đường thể hiện mối quan hệ giữa ktổng phương sai trong cụm.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Use map_dbl to run many models with varying value of k (centers)
tot_withinss <- map_dbl(1:10,  function(k){
  model <- kmeans(x = ___, centers = ___)
  model$tot.withinss
})

# Generate a data frame containing both k and tot_withinss
elbow_df <- data.frame(
  k = ___,
  tot_withinss = ___
)

# Plot the elbow plot
ggplot(elbow_df, aes(x = ___, y = ___)) +
  geom_line() +
  scale_x_continuous(breaks = 1:10)
Chỉnh sửa và Chạy Mã