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

K-means: Độ rộng silhouette trung bình

Vậy phân cụm phân cấp cho ra 3 cụm, còn phương pháp khuỷu tay gợi ý 2. Trong bài tập này, hãy dùng độ rộng silhouette trung bình để khám phá xem giá trị k “tối ưu” nên là bao nhiê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 pam() với dữ liệu oes cho các giá trị k từ 2 đến 10 và trích xuất giá trị độ rộng silhouette trung bình từ mỗi mô hình: model$silinfo$avg.width. Lưu vector kết quả vào sil_width.
  • Tạo một data frame mới sil_df chứa các giá trị k và vector độ rộng silhouette trung bình.
  • Dùng các giá trị trong sil_df để vẽ biểu đồ đường thể hiện mối quan hệ giữa k và độ rộng silhouette trung bình.

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
sil_width <- map_dbl(2:10,  function(k){
  model <- pam(___, k = ___)
  model$silinfo$avg.width
})

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

# Plot the relationship between k and sil_width
ggplot(___, aes(x = ___, y = ___)) +
  geom_line() +
  scale_x_continuous(breaks = 2:10)
Chỉnh sửa và Chạy Mã