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
Hướng dẫn bài tập
- Dùng
map_dbl()để chạypam()với dữ liệuoescho 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àosil_width. - Tạo một data frame mới
sil_dfchứ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)