Về k-nghĩa cụ thể, bạn có thể sử dụng số liệu thống kê Gap. Về cơ bản, ý tưởng là tính toán mức độ tốt của biện pháp phân cụm dựa trên độ phân tán trung bình so với phân phối tham chiếu cho số cụm tăng dần. Thông tin thêm có thể được tìm thấy trong bài báo gốc:
Tibshirani, R., Walther, G. và Hastie, T. (2001). Ước tính số lượng cụm trong một tập dữ liệu thông qua thống kê khoảng cách . Thống kê JR. Sóc. B, 63 (2): 411-423.
Câu trả lời mà tôi đã cung cấp cho một câu hỏi liên quan nêu bật các chỉ số hiệu lực chung khác có thể được sử dụng để kiểm tra xem một tập dữ liệu đã cho có thể hiện một loại cấu trúc nào đó không.
Khi bạn không có bất kỳ ý tưởng nào về những gì bạn sẽ tìm thấy nếu chỉ có tiếng ồn, một cách tiếp cận tốt là sử dụng sự ổn định của mô hình và nghiên cứu cụm. Nói cách khác, lấy mẫu lại dữ liệu của bạn (thông qua bootstrap hoặc bằng cách thêm nhiễu nhỏ vào nó) và tính toán "độ gần" của các phân vùng kết quả, được đo bằng các điểm tương đồng của Jaccard . Nói tóm lại, nó cho phép ước tính tần suất các cụm tương tự được phục hồi trong dữ liệu. Phương pháp này có sẵn trong gói fpc R như clusterboot()
. Nó nhận đầu vào là dữ liệu thô hoặc ma trận khoảng cách và cho phép áp dụng một loạt các phương thức phân cụm (phân cấp, phương tiện k, phương thức mờ). Phương pháp được thảo luận trong các tài liệu tham khảo được liên kết:
Hennig, C. (2007) Đánh giá cụm sao về độ ổn định của cụm .
Thống kê tính toán và phân tích dữ liệu , 52, 258-271.
Hennig, C. (2008) Điểm hòa tan và độ mạnh cô lập: tiêu chí độ mạnh cho các phương pháp phân tích cụm tổng quát . Tạp chí phân tích đa biến , 99, 1154-1176.
Dưới đây là một minh chứng nhỏ với thuật toán k-mean.
sim.xy <- function(n, mean, sd) cbind(rnorm(n, mean[1], sd[1]),
rnorm(n, mean[2],sd[2]))
xy <- rbind(sim.xy(100, c(0,0), c(.2,.2)),
sim.xy(100, c(2.5,0), c(.4,.2)),
sim.xy(100, c(1.25,.5), c(.3,.2)))
library(fpc)
km.boot <- clusterboot(xy, B=20, bootmethod="boot",
clustermethod=kmeansCBI,
krange=3, seed=15555)
Kết quả khá khả quan trong bộ dữ liệu nhân tạo (và có cấu trúc tốt) này vì không có cụm nào trong số ba cụm ( krange
) được hòa tan trên các mẫu và độ tương tự Jaccard cụm trung bình là> 0,95 cho tất cả các cụm.
Dưới đây là kết quả trên 20 mẫu bootstrap. Có thể thấy, các đơn vị thống kê có xu hướng nằm trong cùng một cụm, với một vài ngoại lệ cho những quan sát nằm ở giữa.
Tất nhiên, bạn có thể mở rộng ý tưởng này đến bất kỳ chỉ số hợp lệ nào: chọn một loạt các quan sát mới bằng bootstrap (có thay thế), tính toán thống kê của bạn (ví dụ: chiều rộng hình bóng, tương quan cophenetic, gamma của Hubert, trong tổng bình phương) cho một phạm vi số cụm (ví dụ: 2 đến 10), lặp lại 100 hoặc 500 lần và xem ô vuông của thống kê của bạn như là một hàm của số cụm.
Đây là những gì tôi nhận được với cùng một bộ dữ liệu mô phỏng, nhưng sử dụng phân cụm theo phân cấp của Ward và xem xét mối tương quan về cophenetic (đánh giá mức độ thông tin khoảng cách được tái tạo trong các phân vùng kết quả) và độ rộng hình bóng (một phép đo kết hợp đánh giá tính đồng nhất trong cụm và giữa các cụm tách cụm).
Tương quan cophenetic nằm trong khoảng từ 0,6267 đến 0,7511 với giá trị trung bình là 0,7031 (500 mẫu bootstrap). Chiều rộng hình bóng có vẻ là tối đa khi chúng tôi xem xét 3 cụm (trung vị 0.8408, phạm vi 0,7371-0,8769).