Biểu đồ khuỷu tay (Scree)
Trong các bài trước, bạn đã tính tổng bình phương trong cụm cho các giá trị k từ 1 đến 10. Bạn có thể trực quan hóa mối quan hệ này bằng biểu đồ đường để tạo ra cái gọi là biểu đồ khuỷu tay (hay scree plot).
Khi xem biểu đồ khuỷu tay, bạn muốn thấy một mức giảm mạnh từ một k sang k kế tiếp, sau đó là độ dốc giảm dần đều. Giá trị k cuối cùng trước khi độ dốc của biểu đồ bắt đầu “phẳng lại” gợi ý một giá trị k “tốt”.
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
- Tiếp tục từ bài trước, 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 bình phương 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 = lineup, centers = k)
model$tot.withinss
})
# Generate a data frame containing both k and tot_withinss
elbow_df <- data.frame(
k = 1:10,
tot_withinss = tot_withinss
)
# Plot the elbow plot
ggplot(___, aes(x = ___, y = ___)) +
geom_line() +
scale_x_continuous(breaks = 1:10)