Nhiều giá trị K, nhiều mô hình
Mặc dù bộ dữ liệu lineup rõ ràng có giá trị k đã biết, nhưng nhiều khi số cụm tối ưu không được biết trước và phải ước tính.
Trong bài tập này, bạn sẽ tận dụng map_dbl() từ thư viện purrr để chạy k-means với các giá trị k từ 1 đến 10 và trích xuất chỉ số tổng phương sai trong cụm từ mỗi mô hình. Đây là bước đầu để trực quan hóa biểu đồ khuỷu tay (elbow plot).
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ạykmeans()trên dữ liệulineupvới 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 thu được vàotot_withinss. - Tạo data frame mới
elbow_dfchứa các giá trị k và vector 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.
library(purrr)
# 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 = ___
)