अंतरिक्ष-कुशल क्लस्टरिंग


9

अधिकांश क्लस्टरिंग एल्गोरिदम मैंने सभी बिंदुओं के बीच एक-से-एक दूरी बनाने के साथ शुरू किए हैं, जो बड़े डेटासेट पर समस्याग्रस्त हो जाता है। वहाँ एक है कि यह नहीं करता है? या यह आंशिक / अनुमानित / कंपित दृष्टिकोण के कुछ प्रकार में है?

कौन सा क्लस्टर एल्गोरिदम / कार्यान्वयन O (n ^ 2) से कम जगह लेता है?

क्या कहीं एल्गोरिदम और उनके समय और स्थान की आवश्यकताओं की सूची है?


2
शायद चलती खिड़की प्रकार क्लस्टरिंग (उदाहरण के लिए SaTScan, satscan.org ) आपकी आवश्यकताओं को पूरा करेगा। यह विशिष्ट कार्यक्रम स्थानिक / लौकिक डेटा के लिए है, इसलिए वास्तव में उच्च आयामों के लिए नहीं है, लेकिन शायद आपको कुछ विचार या शुरुआत करने के लिए जगह देगा।
एंडी डब्ल्यू

जवाबों:


5

K- मीन्स और मीन-शिफ्ट कच्चे नमूना विवरणकों का उपयोग करते हैं (आत्मीयता मैट्रिक्स की पूर्व-गणना करने की आवश्यकता नहीं है)।

अन्यथा, वर्णक्रमीय क्लस्टरिंग या पावर पुनरावृत्ति क्लस्टरिंग के लिए, आप k-निकटतम पड़ोसी आत्मीयता मैट्रिक्स (कुछ दूरी या आत्मीयता मेट्रिक के लिए) का एक विरल मैट्रिक्स प्रतिनिधित्व (जैसे संपीड़ित विरल पंक्तियाँ) का उपयोग कर सकते हैं। यदि k छोटा है (5 या 10 कहते हैं)। आपको डबल सटीक फ़्लोटिंग पॉइंट मानों के लिए एक बहुत ही स्थान कुशल प्रतिनिधित्व (2 * n_samples * k * 8 बाइट्स) मिलेगा।


2

कुछ क्लस्टरिंग एल्गोरिदम स्थानिक सूचकांक संरचनाओं का उपयोग कर सकते हैं। यह उदाहरण के लिए DBSCAN और प्रकाशिकी को चलाने की अनुमति देता हैहे(nलॉगn) समय (जब तक सूचकांक अनुमति देता है हे(लॉगn) क्वेरी)।

जाहिर है, एक एल्गोरिथ्म जो इस जटिलता में चलता है, निर्माण नहीं करता है हे(n2) दूरी मैट्रिक्स।

कुछ एल्गोरिदम के लिए, जैसे एकल-लिंकेज और पूर्ण-लिंकेज के साथ पदानुक्रमिक क्लस्टरिंग, उपलब्ध एल्गोरिदम उपलब्ध हैं (SLINK, CLINK)। यह सिर्फ इतना है कि ज्यादातर लोग जो कुछ भी प्राप्त करते हैं उसका उपयोग करते हैं और जो लागू करना आसान है। और पदानुक्रमित क्लस्टरिंग भोलेपन से लागू करना आसान है, उपयोग करनाn पुनरावृत्तियों पर एक n2 दूरी मैट्रिक्स (जिसके परिणामस्वरूप हे(n3) कलन विधि ...)।

मैं क्लस्टरिंग एल्गोरिदम की तुलना करने वाली एक पूरी सूची से अवगत नहीं हूं। शायद 100+ क्लस्टरिंग एल्गोरिदम हैं, आखिरकार। उदाहरण के लिए, कम से कम एक दर्जन के-साधन वेरिएंट हैं। साथ ही, रन-टाइम जटिलता के साथ-साथ मेमोरी जटिलता भी है; औसत-मामला और सबसे खराब मामला है। कार्यान्वयन के भारी अंतर हैं (उदाहरण के लिए ऊपर उल्लिखित एकल-लिंक, और DBSCAN कार्यान्वयन जो किसी इंडेक्स का उपयोग नहीं करते हैं, और इस प्रकार में हैंहे(n2), और जबकि उन्हें पूर्ण स्टोर करने की आवश्यकता नहीं है n×nदूरी मैट्रिक्स, वे फिर भी सभी जोड़ीदार दूरी की गणना करने की आवश्यकता है)। इसके अलावा मानकों के टन कर रहे हैं। के-साधनों के लिए,नाजुक है। बहुत अधिक किसी भी एल्गोरिथ्म के लिए, दूरी फ़ंक्शन एक बड़ा अंतर बनाता है (किसी भी कई कार्यान्वयन केवल यूक्लिडियन दूरी की अनुमति देते हैं ...)। और एक बार जब आप महंगी दूरी के कार्यों (यूक्लिडियन जैसे तुच्छ सामान से परे) को प्राप्त करते हैं, तो दूरी की गणना की संख्या जल्दी से मुख्य भाग हो सकती है। तो आपको कुल संचालन की संख्या और आवश्यक दूरी की गणना के बीच अंतर करने की आवश्यकता होगी। तो एक एल्गोरिथ्म जो अंदर हैहे(n2) संचालन लेकिन केवल हे(n) दूरी की गणना आसानी से एक एल्गोरिथ्म को बेहतर बना सकती है हे(nलॉगn) दोनों में, जब दूरी के कार्य वास्तव में महंगे हैं (कहते हैं, दूरी समारोह ही है हे(n))।


बहुत अच्छा जवाब।
मॉन्स्टरमोरपीजी

1

अच्छा प्रश्न। 3 निकटतम पड़ोसियों को कहने के लिए एक पुआल विधि है प्रत्येक डेटा बिंदु के पड़ोसियों को नमूना करना, निकटतम रखना 3. जबकि तुच्छ है, इसे एनएसपीएल के कुछ मूल्यों के लिए चलाने से आपको संकेत / शोर अनुपात, निकट / पृष्ठभूमि शोर के कुछ विचार मिलेंगे। , आसानी से अपने डेटा के लिए साजिश रची । एक अतिरिक्त चाल यह है कि पड़ोसियों के पड़ोसियों की जांच करें, यह देखने के लिए कि क्या उनमें से कोई भी प्रत्यक्ष पड़ोसियों की तुलना में निकट है। इसके अलावा, यदि इनपुट डेटा पहले से ही अच्छी तरह से फेरबदल किया गया है, तो ब्लॉक में नमूना, अन्यथा कैश थ्रश होगा।

(जोड़ा गया): R में फास्टक्लस्टर देखें और मैं SciPy v0.11 में विश्वास करता हूं।
पाठ के लिए, Google-अखिल जोड़े-समानता-खोज देखें

दोहराएँ, "क्लस्टरिंग एल्गोरिथ्म की पसंद की तुलना में क्लस्टरिंग के साथ सफलता प्राप्त करने में एक उपयुक्त असमानता उपाय अधिक महत्वपूर्ण है" - चुनना-क्लस्टरिंग-विधि

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