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độ 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ã