डेटाबेस से 1d डेटा के विभिन्न समूहों को निर्धारित करें


24

मेरे पास विभिन्न नोड्स के बीच डेटा ट्रांसफर की एक डेटाबेस तालिका है। यह एक विशाल डेटाबेस (लगभग 40 मिलियन स्थानान्तरण के साथ) है। विशेषताओं में से एक बाइट्स (nbytes) स्थानांतरण की संख्या है जो 0 बाइट्स से 2 टेरा बाइट्स तक होती है। मैं nbytes को क्लस्टर करना चाहूंगा कि दिए गए k समूहों को कुछ X1 ट्रांसफ़र k1 क्लस्टर, x2 ट्रांसफ़रर्स से k2 आदि से संबंधित हैं।

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

धन्यवाद!


"एक्स 1 ट्रांसफर", "एक्स 2 ट्रांसफर" आदि क्या हैं? क्या "हस्तांतरण प्रकार" एक दूसरा चर है?
पीटर फ्लोम -

X1 स्थानान्तरण मेरे लिए सिर्फ यह कहने का एक तरीका है कि इन 500 स्थानांतरणों का कुछ मूल्य के आसपास स्थानांतरण आकार था (यह k- साधनों में उस क्लस्टर के लिए इसका मतलब होगा)।
शॉन

5
मैं क्लस्टरिंग पर एक विशेषज्ञ नहीं हूं, लेकिन w / इतना डेटा और सिर्फ 1 आयाम, मुझे आश्चर्य है कि क्या आप बस अलग-अलग बैंडवाइड का उपयोग करके कुछ कर्नेल घनत्व प्लॉट बना सकते हैं और देख सकते हैं कि आप कितने मोड / चोटियों को ढूंढते हैं, और क्या परिणाम ऐसा लगता है यह आपके लिए उपयोगी होगा।
गुंग - को पुनः स्थापित मोनिका

1
आपने पूछा कि क्लस्टर करना है या नहीं। क्लस्टरिंग से आपका लक्ष्य क्या होगा? क्या आप किसी अन्य उद्देश्य के लिए समूहों का उपयोग करेंगे, या यह सैद्धांतिक हित है?
पीटर Flom - को पुनः स्थापित मोनिका

तालिका से कुछ अन्य विशेषताएँ उपयोगकर्ता नाम, प्रारंभ और समाप्ति दिनांक हैं। मेरी आशा स्थानांतरण आकार के आधार पर स्थानांतरण को रोककर है, मैं फिर एक विशेष हस्तांतरण की अन्य विशेषताओं का उल्लेख कर सकता हूं कि यह देखने के लिए कि वर्ष के किस महीने में कितना स्थानांतरित हो रहा है। हम इस अवलोकन के साथ क्या करेंगे, मुझे अभी तक पता नहीं है। लेकिन मैं कहाँ जा रहा हूँ की तरह है।
शॉन

जवाबों:


43

एक आयामी डेटा में, क्लस्टर विश्लेषण का उपयोग न करें।

क्लस्टर विश्लेषण आमतौर पर एक बहुभिन्नरूपी तकनीक है। या मुझे बेहतर तरीके से इसे दूसरे तरीके से रखने दें: एक आयामी डेटा के लिए - जो पूरी तरह से आदेश दिया गया है - बहुत बेहतर तकनीकें हैं। जब तक आप वास्तव में 1-d मामले के लिए उन्हें अनुकूलित करने के लिए पर्याप्त प्रयास नहीं करते हैं, तब तक k- साधन और इसी तरह की तकनीकों का उपयोग करना यहाँ एक कुल बेकार है।

बस आपको एक उदाहरण देने के लिए: k- साधनों के लिए प्रारंभिक बीज के रूप में k यादृच्छिक वस्तुओं का उपयोग करना आम है। एक आयामी डेटा के लिए, केवल एक बार डेटा को सॉर्ट करने के बाद, उचित मात्राओं (1 / 2k, 3 / 2k, 5 / 2k आदि) का उपयोग करके बेहतर करना आसान है , और फिर इस शुरुआती बिंदु से अनुकूलन करें। हालाँकि, 2D डेटा को पूरी तरह से सॉर्ट नहीं किया जा सकता है। और एक ग्रिड में, खाली कोशिकाओं की संभावना होगी।

मैं इसे क्लस्टर भी नहीं कहूंगा। मैं इसे अंतराल कहूंगा । आप वास्तव में क्या करना चाहते हैं, अंतराल सीमाओं को अनुकूलित करना है। यदि आप k-mean करते हैं, तो यह प्रत्येक ऑब्जेक्ट के लिए परीक्षण करेगा यदि इसे किसी अन्य क्लस्टर में स्थानांतरित किया जाना चाहिए। 1 डी में इसका कोई मतलब नहीं है: केवल अंतराल सीमाओं पर वस्तुओं को जांचने की आवश्यकता है। यह स्पष्ट रूप से बहुत तेज है, क्योंकि वहां केवल ~ 2k वस्तुएं हैं। यदि वे पहले से ही अन्य अंतराल पसंद नहीं करते हैं, तो अधिक केंद्रीय वस्तुएं भी नहीं होंगी।

आप उदाहरण के लिए जेनक्स नेचुरल ब्रेक्स ऑप्टिमाइज़ेशन जैसी तकनीकों पर गौर करना चाहते हैं ।

या आप कर्नेल घनत्व का आकलन कर सकते हैं और वहां विभाजित होने के लिए घनत्व की स्थानीय मिनीमा की तलाश कर सकते हैं। अच्छी बात यह है कि इसके लिए आपको k निर्दिष्ट करने की आवश्यकता नहीं है!

PS कृपया खोज फ़ंक्शन का उपयोग करें। यहाँ 1-d डेटा क्लस्टरिंग पर कुछ प्रश्न दिए गए हैं जो आप चूक गए हैं:


क्वांटाइल्स जरूरी नहीं कि क्लस्टर से सहमत हों। 1d वितरण में 3 प्राकृतिक क्लस्टर हो सकते हैं, जहां दो प्रत्येक डेटा का 10% रखते हैं और अंतिम में 80% डेटा होता है। इसलिए मुझे लगता है कि यहां क्लस्टर करना संभव है, हालांकि मैं सहमत हूं कि बीजों को स्मार्ट तरीके से उठाकर या अन्य विचारों का उपयोग करके रन का अनुकूलन करना समझ में आता है।
बिटवाइज

क्वांटाइल्स संभवतः अनुकूलन के लिए अच्छे बीज बिंदु हैं , यही मैं बात कर रहा था। और सिर्फ एक उदाहरण देने के लिए कि आप 1 डी में क्या कर सकते हैं जो 2+ आयामों में अच्छी तरह से काम नहीं करता है।
ऐनी-मूस

मैं मानता हूं कि बीज के रूप में मात्राओं का उपयोग करने के लिए यह एक शॉट के लायक होगा, लेकिन मैं अभी भी कुछ यादृच्छिक आरंभीकरण की कोशिश करूंगा (उदाहरण के लिए जैसे मैंने दिया था)। किसी भी मामले में, सबसे अच्छी विधि सिर्फ हिस्टोग्राम / घनत्व की साजिश को देखना और मैन्युअल रूप से बीज चुनना और फिर उन्हें क्लस्टरिंग के साथ अनुकूलित करना होगा। यह बहुत जल्दी एक अच्छे समाधान में परिवर्तित हो जाएगा।
बिटवाइज

3
Jenks है -1 डी का k- साधन।
whuber

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

1

क्या आपका प्रश्न यह है कि क्या आपको क्लस्टर करना चाहिए या क्लस्टर के लिए आपको किस विधि का उपयोग करना चाहिए?

क्या आपको क्लस्टर करना चाहिए, यह निर्भर करता है कि क्या आप अपने डेटा को स्वचालित रूप से विभाजित करना चाहते हैं (उदाहरण के लिए यदि आप इस विभाजन को कई बार दोहराना चाहते हैं)। यदि आप केवल एक बार ऐसा कर रहे हैं, तो आप केवल अपने मूल्यों के वितरण के हिस्टोग्राम को देख सकते हैं, और इसे आंखों से विभाजित कर सकते हैं, जैसा कि टिप्पणियों में प्रस्तावित है। मैं वैसे भी आँख से डेटा देखने की सलाह दूंगा, क्योंकि यह निर्धारित करने में आपकी मदद कर सकता है कि आपको कितने क्लस्टर चाहिए और यह भी कि क्लस्टरिंग ने "काम" किया है।

क्लस्टरिंग के प्रकार के संबंध में, डेटा में "वास्तविक" क्लस्टर होने पर, k- साधन ठीक होना चाहिए। यदि आपको हिस्टोग्राम में कोई क्लस्टर दिखाई नहीं देता है, तो इसका वैसे भी कोई अर्थ नहीं निकलता है, क्योंकि आपकी डेटा श्रेणी का कोई भी विभाजन मान्य क्लस्टर देगा (या किमी के यादृच्छिक आरंभ के मामले में, आपको अलग-अलग क्लस्टर मिलेंगे। प्रत्येक भाग)।


0

तुम कोशिश कर सकते हो:

  1. केमन्स, जीएमएम या अन्य तरीकों को निर्दिष्ट करके n_clusters = सं। कर्नेल घनत्व साजिश में चोटियों की।

  2. इष्टतम संख्या का निर्धारण करके केमियां, जीएमएम या अन्य तरीके। कुछ मैट्रिक्स के आधार पर क्लस्टर के। अधिक जानकारी: [यहाँ] https://en.wikipedia.org/wiki/Determining_the_number_of_clusters_in_a_data_set

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