K-mean के लिए क्लस्टर चुनना: 1 क्लस्टर केस


9

क्या किसी को यह निर्धारित करने के लिए एक अच्छी विधि पता है कि अगर किमी का उपयोग करके क्लस्टरिंग करना उचित है? यही है, क्या होगा यदि आपका नमूना वास्तव में समरूप है? मैं एक मिश्रण मॉडल की तरह कुछ जानता हूं (आर में mclust के माध्यम से) 1: k क्लस्टर मामले के लिए फिट आंकड़े प्रदान करेगा, लेकिन ऐसा लगता है कि सभी तकनीकों का मूल्यांकन करने के लिए कम से कम 2 समूहों की आवश्यकता होती है।

क्या किसी को किमी के लिए 1 और 2 क्लस्टर मामलों की तुलना करने की तकनीक का पता है?

जवाबों:


10

अंतराल आँकड़ा ऐसा करने का एक शानदार तरीका है; तिब्शीरानी, ​​हस्ती और वाल्थर (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 के पहले मान की तलाश कर रहे हैं, जहाँ टेस्ट 'फेल' है, यानी गैप स्टैटिस्टिक में काफी गिरावट है। ऊपर दिए गए लूप में इस तरह की एकक छपेगी, हालाँकि बस cgap की साजिश रचने से आपको निम्नलिखित आंकड़ा मिलता है:
यहाँ छवि विवरण दर्ज करें देखें कि कैसे G = 1 से k = 2 तक गैप में एक महत्वपूर्ण डुबकी है, जो दर्शाता है कि वास्तव में कोई क्लस्टर (अर्थात 1 क्लस्टर) नहीं हैं।


एकल लिंकेज के साथ पदानुक्रमित क्लस्टरिंग के लिए समान कैसे करें? क्या आप कृपया क्लसगैप के FUN तर्क की व्याख्या कर सकते हैं? मैंने श्रेणीबद्ध किमीमैक्स = 20 cgap <- clusGap (क्लस्टर_feat_base [, 2: ncol (क्लस्टर_फेट_बेस))], FUN = hclust, Kax = kmax, B = 100) के लिए नीचे की पंक्ति चलाई। लेकिन इसकी त्रुटि देने में त्रुटि कहते हुए FUNcluster (X, kk, ...): अमान्य क्लस्टरिंग विधि 2
जॉर्जऑफ TheRF

4

आप एक और हालिया विधि भी आजमा सकते हैं: ए। कलोगेराटोस और ए.लिकास, डिप- मीन्स : क्लस्टर की संख्या का आकलन करने के लिए एक वृद्धिशील क्लस्टरिंग विधि , एनआईपीएस 2012।

इस विचार का एक बिंदु और सेट के बाकी बिंदुओं के बीच समानता / दूरी वाले वैक्टर पर असमानता के लिए सांख्यिकीय परिकल्पना परीक्षण का उपयोग करना है। परीक्षण हार्टिगन-हार्टिगन डिप टेस्ट , एन का उपयोग करके किया जाता है । सांख्यिकीविद। 13 (1): 70-84।

यह विधि सभी डेटासेटों के साथ शुरू होती है क्योंकि एक क्लस्टर के रूप में और जब तक कि असमानता की परिकल्पना को अस्वीकार नहीं किया जाता है तब तक यह विभाजन होता है (यानी एक से अधिक क्लस्टर मौजूद हैं)।

तो यह विधि इंगित करेगी कि क्या डेटा (आपके प्रश्न) में एक से अधिक क्लस्टर हैं, लेकिन यह अंतिम क्लस्टरिंग भी प्रदान कर सकता है।

यहां आप मतलाब में कुछ कोड पा सकते हैं


0

मान लीजिए मैं उसी उदाहरण पर विचार कर रहा हूं,

पुस्तकालय (क्लस्टर) cgap <- clusGap (पारगमन, FUN = kmeans, K.max = kmax, B = 100) के लिए (k में 1: (kmax-1)) {if (cgap टैब) [(k + 1), 3] -कैप $ टैब [(k + 1), 4]) {प्रिंट (k)}; टूटना; }Tab[k,3]>cgap

मैं अधिकतम अंतर के आंकड़ों के आधार पर सबसे अच्छे क्लस्टरिंग समाधान के अनुरूप समूहों के तत्वों को कैसे कम कर सकता हूं? ताकि मैं इसका प्रत्येक क्लस्टर्स पर आगे के विश्लेषण के लिए उपयोग कर सकूं।

मुझे पता है कि एक कमांड होती है जिसे सबसेट कहा जाता है। इस आदेश का उपयोग करते समय कोई समस्या नहीं होती है जब हमने अपने इच्छित समूहों की संख्या दी है। लेकिन जब हम गैप का उपयोग करके प्राप्त किए गए इष्टतम k के आधार पर इसे कम करना चाहते हैं, तो (यदि लूप है, तो समूहों के तत्वों को कम करके)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.