10

मेरे पास एक बड़ा डेटा सेट है जिसे मैं क्लस्टर करना चाहता हूं। मेरा परीक्षण रन सेट आकार 2,500 ऑब्जेक्ट्स है; जब मैं इसे 'असली सौदा' पर चलाता हूं तो मुझे कम से कम 20k ऑब्जेक्ट्स को संभालने की आवश्यकता होगी।कोसाइन समानता के साथ क्लस्टरिंग

इन वस्तुओं में उनके बीच कोसाइन समानता है। यह कोसाइन समानता गणितीय दूरी मीट्रिक होने की आवश्यकताओं को पूरा नहीं करती है; यह त्रिभुज असमानता को पूरा नहीं करता है।

मैं उन्हें कुछ "प्राकृतिक" तरीके से क्लस्टर करना चाहता हूं जो समान वस्तुओं को एक साथ रखे बिना क्लस्टर की संख्या को निर्दिष्ट करने की आवश्यकता के बिना रखता है।

क्या किसी को एल्गोरिदम के बारे में पता है जो ऐसा करेगा? असल में, मैं बस किसी भी एल्गोरिदम की तलाश में हूं जिसके लिए ए की आवश्यकता नहीं है) एक दूरी मीट्रिक और बी) क्लस्टर की एक पूर्व निर्दिष्ट संख्या।

बहुत धन्यवाद!

यह सवाल यहां से पहले कहा गया है: Clustering from the cosine similarity values (लेकिन यह समाधान केवल प्रदान करता है कश्मीर का मतलब है क्लस्टरिंग), और यहाँ: Effective clustering of a similarity matrix (लेकिन यह समाधान नहीं बल्कि अस्पष्ट था)

+4

http://en.wikipedia.org/wiki/Cosine_similarity से: "हालांकि इस कोणीय दूरी के लिए" कोसाइन समानता "शब्द का उपयोग किया गया है, शब्द का अजीब रूप से उपयोग किया जाता है क्योंकि कोण के कोसाइन का उपयोग केवल एक के रूप में किया जाता है कोण की गणना के लिए सुविधाजनक तंत्र और अर्थ का कोई हिस्सा नहीं है।कोणीय समानता गुणांक का लाभ यह है कि, जब एक अंतर गुणांक के रूप में उपयोग किया जाता है (इसे 1 से घटाना) * परिणामी कार्य एक उचित दूरी मीट्रिक * है, जो पहले अर्थ के लिए मामला नहीं है। " – phs

+0

धन्यवाद! दुर्भाग्य से मैं अधिक विशिष्ट होना चाहिए था; मैं एक कोसाइन जैसी समानता का उपयोग कर रहा हूं जिसे मैंने स्वयं परिभाषित किया है। यह त्रिभुज असमानता को पूरा नहीं करता है। – user1473883

उत्तर

3

अपाचे महावत एक संख्या है क्लस्टरिंग एल्गोरिदम का, जिसमें कुछ शामिल हैं जिन्हें आपको एन निर्दिष्ट करने की आवश्यकता नहीं है और जो आपको दूरी मीट्रिक निर्दिष्ट करने की अनुमति देता है।

मीन शिफ्ट क्लस्टरिंग के-साधनों के समान है लेकिन क्लस्टर https://cwiki.apache.org/confluence/display/MAHOUT/Mean+Shift+Clustering के पूर्व निर्दिष्ट संख्या के बिना।

तो अधिक आम तौर पर, यदि आप एल्गोरिदम की एक किस्म की कोशिश करना चाहते हैं, वहाँ आर के लिए उपलब्ध परिष्कृत संकुल की एक निरपेक्ष धन है जो (ईएम के कुछ परिवर्तन संबंधी बायेसियन कार्यान्वयन करना, जिससे समूहों का सबसे अच्छा संख्या का चयन करेंगे सहित) है अतीत में मेरे कुछ शोधों के लिए बहुत उपयोगी साबित हुआ: http://cran.r-project.org/web/views/Cluster.html

2

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

डीबीएससीएएन को एक संस्करण में सामान्यीकृत किया जा सकता है (विकिपीडिया देखें) जहां यह दूरी से भी सारणित है, इसे किसी प्रकार की "घनी" धारणा की आवश्यकता है। (डीबीएससीएएन को पहले से क्लस्टर की संख्या जानने की आवश्यकता नहीं है)

लेकिन के-साधनों के लिए भी - जो कि दूरी पर भी सख्त आवश्यकताओं की है, यहां तक ​​कि मेट्रिकल से परे - गोलाकार के-साधन नामक एक संस्करण है।

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

2

आप एफ़िनिटी प्रचार (http://www.psi.toronto.edu/index.php?q=affinity%20propagation) भी कोशिश कर सकते हैं। एल्गोरिदम इनपुट के रूप में एक समानता मैट्रिक्स लेता है, और मैं भी विश्वास कर सकता हूं, क्लस्टर सेंट्रॉइड की संख्या स्वचालित रूप से समायोजित करता हूं।

संबंधित मुद्दे