क्लस्टर बिग डेटा आर में और नमूना प्रासंगिक है?


13

मैं डेटा साइंस में नया हूं और 200,000 पंक्तियों और 50 कॉलमों वाले डेटा सेट में क्लस्टर खोजने में समस्या है।

चूँकि डेटा में संख्यात्मक और नाममात्र दोनों चर होते हैं, इसलिए K-Mean जैसे तरीके जो यूक्लिडियन दूरी माप का उपयोग करते हैं, एक उपयुक्त विकल्प नहीं लगता है। इसलिए मैं PAM, एग्नेस और hclust की ओर मुड़ता हूं जो एक दूरी मैट्रिक्स को इनपुट के रूप में स्वीकार करता है।

डेज़ी विधि मिश्रित-प्रकार के डेटा पर काम कर सकती है, लेकिन दूरी मैट्रिक्स बस बहुत बड़ा है: 200,000 गुणा 200,000 2 ^ 31-1 (आर 3.0.0 से पहले वेक्टर लंबाई सीमा) की तुलना में बहुत बड़ा है।

कल जारी किया गया नया आर 3.0.0 लम्बाई वाले वैक्टर का समर्थन करता है जिसकी लंबाई 2 ^ 31-1 से अधिक है। लेकिन 200,000 से 200,000 के एक डबल मैट्रिक्स को 16 जीबी की तुलना में लगातार रैम की आवश्यकता होती है जो मेरी मशीन पर संभव नहीं है।

मैं समानांतर कंप्यूटिंग और बिगमेरी पैकेज के बारे में पढ़ता हूं और निश्चित नहीं हूं कि क्या वे मदद करने जा रहे हैं: अगर मैं डेज़ी का उपयोग कर रहा हूं, तो यह एक बड़ा मैट्रिक्स उत्पन्न करेगा जो वैसे भी स्मृति में फिट नहीं हो सकता है।

मैं नमूने के बारे में पोस्ट के बारे में भी पढ़ता हूं: क्या नमूना 'बड़े डेटा' के समय में प्रासंगिक है?

तो मेरे मामले में, क्या डेटा सेट पर नमूने का उपयोग करना, नमूने पर क्लस्टर और फिर पूरे डेटा सेट की संरचना का पता लगाना प्रासंगिक है?

क्या आप मुझे कुछ सुझाव दे सकते हैं? धन्यवाद!

मेरी मशीन के बारे में:

आर संस्करण 3.0.0 (2013-04-03)

प्लेटफ़ॉर्म: x86_64-w64-mingw32 / x64 (६४-बिट)

ओएस: विंडोज 7 64 बिट

रैम: 16.0GB


एकमात्र क्लस्टरिंग विधि जो मुझे पता है कि बड़े डेटा (उदाहरण के लाखों मामलों) के लिए है और संख्यात्मक के साथ नाममात्र चर को स्वीकार कर सकते हैं SPSS में पाया जाने वाला टूस्टेप क्लस्टर है।
ttnphns

जवाबों:


4

O(n3)O(n2)

PAM को स्वयं एक पूर्ण दूरी मैट्रिक्स की आवश्यकता नहीं होनी चाहिए, लेकिन एल्गोरिथ्म को बुरी तरह से पैमाने पर जाना जाता है, क्योंकि इसके बाद सबसे केंद्रीय तत्वों को खोजने के लिए प्रत्येक पुनरावृत्ति पर प्रत्येक क्लस्टर में सभी जोड़ीदार दूरी की गणना (फिर से) करने की आवश्यकता होती है। यह बहुत कम है यदि आपके पास बड़ी संख्या में क्लस्टर हैं, लेकिन फिर भी काफी महंगा है!

O(nlogn)

हालांकि, इनमें से अधिकांश एल्गोरिदम के लिए, आपको पहले यह सुनिश्चित करने की आवश्यकता है कि आपकी दूरी फ़ंक्शन वास्तव में अच्छी है; फिर आपको उपयुक्त अनुक्रमित का उपयोग करके प्रश्नों को तेज करने के तरीकों पर विचार करने की आवश्यकता है।

यह भी ध्यान दें कि कई मामलों में - और यह PAM के लिए अच्छी तरह से पकड़ हो सकता है - आप एल्गोरिथ्म को पहले एक नमूने पर चला सकते हैं , फिर केवल पूर्ण डेटा सेट पर इसे परिष्कृत कर सकते हैं। यदि आपका नमूना प्रतिनिधि है, तो k-mean और PAM जैसे एल्गोरिदम आपको अनिवार्य रूप से पूर्ण डेटा सेट के समान परिणाम देना चाहिए।


यहां ओपी की मदद नहीं करेंगे, लेकिन यदि कोई अन्य व्यक्ति "मध्यवर्ती" नमूना संख्याओं के साथ आता है: आर के लिए फास्टक्लेस्टर भी है (देखें math.stanford.edu/~muellner/fastcluster.html )।
SX

हाय Anony-Mousse, क्या आप कृपया मुझे ऐसे कुछ एल्गोरिदम की ओर संकेत कर सकते हैं जो सूचकांक संरचना त्वरण का उपयोग करते हैं? आपका बहुत बहुत धन्यवाद!

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

2

R में क्लस्टर पैकेज से CLARA फ़ंक्शन को आज़माएँ। यह आपके डेटा को सबमप्लिमेंट करके एक पैम-जैसे एल्गोरिथ्म को लागू करता है (सुनिश्चित करें कि आप सबसम्प्ल आकार प्रदान करते हैं जो आपके डेटा के लिए समझ में आता है क्योंकि चूक उद्देश्य से बहुत छोटे हैं)। यह विशेष रूप से अच्छी तरह से काम करता है अगर आपके डेटा में मीडियोड को कुल डेटा के एक छोटे नमूने द्वारा दर्शाया जा सकता है (यानी - डेटासेट में अपेक्षाकृत कम क्लस्टर हैं)। इस तरह आप एक छोटे से यादृच्छिक नमूने के साथ कुशलतापूर्वक क्लस्टर कर सकते हैं और पूर्व-निर्मित क्लस्टरिंग समाधान में अंक जोड़ सकते हैं।

http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Clustering/CLARA


हाय zzk, उत्तर के लिए धन्यवाद। मैंने पहले क्लारा के बारे में पढ़ा लेकिन ऐसा लगता है कि यह केवल यूक्लिडियन और मैनहट्टन मीट्रिक प्रदान करता है। मुख्य समस्या यह है कि मेरे डेटासेट में संख्यात्मक और नाममात्र चर दोनों हैं। इसलिए दूरी माप के लिए न तो मीट्रिक का उपयोग करना उचित नहीं है।

आह हाँ, यह वर्तमान में मेरे लिए भी एक सीमा है। मेरा मानना ​​है कि विधि वास्तव में किसी भी मनमानी दूरी पर की जा सकती है, लेकिन मैंने स्रोत कोड के माध्यम से देखने के लिए अभी तक परेशान नहीं किया है कि क्या इसे बदला जा सकता है।
zzk

0

आप अपने गुणात्मक चर पर कई पत्राचार विश्लेषण भी लागू कर सकते हैं और एक संख्यात्मक चर में रूपांतरण कर सकते हैं।


2
यह एक अच्छा विचार लगता है, लेकिन यह थोड़ा विरल हो सकता है। क्या आप यह समझाने के लिए कि यह क्या है और क्यों मदद करेगा?
गूँग - मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.