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 k và tổ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ã