क्लस्टरिंग (k- साधन, या अन्यथा) न्यूनतम क्लस्टर आकार की बाधा के साथ


14

मुझे क्लस्टर (WSS) के समूह-योग को कम करने के लिए क्लस्टर्स में इकाइयों को क्लस्टर करने की आवश्यकता है , लेकिन मुझे यह सुनिश्चित करने की आवश्यकता है कि प्रत्येक क्लस्टर में कम से कम इकाइयां हों। किसी भी विचार अगर आर के क्लस्टरिंग कार्यों में से कोई एक न्यूनतम क्लस्टर आकार की बाधा के अधीन समूहों में क्लस्टरिंग के लिए अनुमति देता है ? kmeans () एक आकार बाधा विकल्प प्रदान नहीं करता है।kmk

जवाबों:


6

EM क्लस्टरिंग का उपयोग करें

EM क्लस्टरिंग में, एल्गोरिथ्म डेटा को फिट करने के लिए प्रारंभिक क्लस्टर मॉडल को परिष्कृत करता है और एक क्लस्टर में डेटा बिंदु मौजूद होने की संभावना निर्धारित करता है। एल्गोरिथ्म प्रक्रिया को समाप्त करता है जब संभाव्य मॉडल डेटा को फिट करता है। फिट को निर्धारित करने के लिए उपयोग किया जाने वाला फ़ंक्शन मॉडल को दिए गए डेटा की लॉग-संभावना है।

यदि प्रक्रिया के दौरान खाली क्लस्टर उत्पन्न होते हैं, या यदि किसी एक या अधिक समूहों की सदस्यता किसी दिए गए सीमा से नीचे आती है, तो कम आबादी वाले समूहों को नए बिंदुओं पर पुनर्निर्धारित किया जाता है और ईएम एल्गोरिथ्म फिर से शुरू होता है।


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

4

मुझे लगता है कि यह सिर्फ क्लस्टर आकार के लिए एक परीक्षण के साथ एक लूप के भाग के रूप में k का मतलब है, के रूप में चलाने का मामला होगा, यानी क्लस्टर k में गणना n - यह भी याद रखें कि k का अर्थ है एक ही डेटा पर प्रत्येक रन के लिए अलग-अलग परिणाम देगा। आपको संभवतः "सर्वश्रेष्ठ" परिणाम निकालने के लिए इसे लूप के हिस्से के रूप में चलाना चाहिए


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

4

इस समस्या को इस पत्र में संबोधित किया गया है:

ब्रैडली, पीएस, केपी बेनेट, और अहान डेमिरिज़। "विवश कश्मीर का मतलब है क्लस्टरिंग।" माइक्रोसॉफ्ट रिसर्च, रेडमंड (2000) : 1-8।

मेरे पास अजगर में एल्गोरिथ्म का कार्यान्वयन है।


यह एकदम सही है, धन्यवाद! मैंने rPythonइस कार्यान्वयन के लिए एक इंटरफ़ेस बनाने के लिए R में पैकेज का उपयोग किया जिसे मैंने अपनी R स्क्रिप्ट से एक्सेस किया।
माइकल ओहलोग ने

@MichaelOhlrogge क्या आपके पास एक उदाहरण है (github?) इंटरफ़ेस पर आपने उस अजगर पैकेज आर को कॉल करने के लिए लिखा था? धन्यवाद!
Matifou

क्षमा करें, मैंने अपने पुराने कोड को देखा, लेकिन अब और नहीं मिला।
माइकल ओहलोगेज

1

आपका डेटा सेट कितना बड़ा है? हो सकता है कि आप एक श्रेणीबद्ध क्लस्टरिंग चलाने की कोशिश कर सकते हैं और फिर तय कर सकते हैं कि कौन से क्लस्टर आपके डेंड्रोग्राम के आधार पर बनाए रखें।

यदि आपका डेटा सेट बहुत बड़ा है, तो आप दोनों क्लस्टरिंग विधियों को भी जोड़ सकते हैं: एक प्रारंभिक गैर-श्रेणीबद्ध क्लस्टरिंग और फिर गैर-श्रेणीबद्ध विश्लेषण से समूहों का उपयोग करके एक श्रेणीबद्ध क्लस्टरिंग। आप इस दृष्टिकोण का एक उदाहरण Martínez-Pastor et al (2005) में पा सकते हैं


धन्यवाद, मैनुअल। यह वास्तव में एक बहुत ही पेचीदा संभावना की तरह लगता है। मुझे इस बारे में सोचने की ज़रूरत है कि क्या पदानुक्रमित विभाजन कुछ बाधाओं को लागू करेगा जो कि एल्गोरिथ्म को सीधे आकार की बाधा के तहत इष्टतम क्लस्टर विभाजन को प्राप्त करने से रोक देगा। लेकिन सहज रूप से, मैं देख सकता हूं कि यह काम कर सकता है।
सायरस S

0

इसे न्यूनतम लागत प्रवाह (MCF) रैखिक नेटवर्क अनुकूलन समस्या के रूप में तैयार करके क्लस्टर असाइनमेंट चरण (ईएम में ई) को संशोधित करके प्राप्त किया जा सकता है।

मैंने एक अजगर पैकेज लिखा है जो Google के ऑपरेशंस रिसर्च टूल के SimpleMinCostFlow का उपयोग करता है जो कि तेजी से C ++ कार्यान्वयन है। इसकी एक मानक स्किट-लीन एपीआई है।

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