สถิติช่องว่างเป็นวิธีที่ดีในการทำเช่นนี้ Tibshirani, Hastie & Walther (2001)
http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/clusGap.html - แพ็คเกจ R ที่เกี่ยวข้อง
แนวคิดก็คือมันทำการทดสอบสมมติฐานตามลำดับของการจัดกลุ่มข้อมูลของคุณสำหรับ K = 1,2,3, ... เทียบกับสมมติฐานว่างของเสียงแบบสุ่มซึ่งเทียบเท่ากับหนึ่งคลัสเตอร์ จุดแข็งของมันคือมันให้การบ่งชี้ที่น่าเชื่อถือว่า K = 1 คือว่าไม่มีกลุ่มหรือไม่
นี่คือตัวอย่างฉันกำลังตรวจสอบข้อมูลทางดาราศาสตร์เมื่อไม่กี่วันก่อนที่มันเกิดขึ้นนั่นคือจากการสำรวจดาวเคราะห์นอกระบบที่ผ่านการเปลี่ยนสถานะ ฉันต้องการทราบว่ามีหลักฐานอะไรบ้างสำหรับกลุ่ม (นูน) ข้อมูลของฉันคือ 'การขนส่ง'
library(cluster)
cgap <- clusGap(transit, FUN=kmeans, K.max=kmax, B=100)
for(k in 1:(kmax-1)) {
if(cgap$Tab[k,3]>cgap$Tab[(k+1),3]-cgap$Tab[(k+1),4]) {print(k)};
break;
}
ด้วยสถิติช่องว่างที่คุณกำลังมองหาค่าแรกของ K ที่การทดสอบ 'ล้มเหลว' นั่นคือสถิติของช่องว่างลดลงอย่างมีนัยสำคัญ การวนรอบด้านบนจะพิมพ์ ak ดังกล่าวอย่างไรก็ตามเพียงแค่วางแผน cgap ให้รูปต่อไปนี้:
ดูว่ามีการจุ่มที่สำคัญในช่องว่างจาก k = 1 ถึง k = 2 ซึ่งหมายความว่าไม่มีกลุ่ม (เช่น 1 คลัสเตอร์)