k- साधन इनपुट में कस्टम दूरी मैट्रिक्स के साथ कार्यान्वयन


14

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


2
आप यूक्लिडियन दूरियों के अपने मैट्रिक्स के अनुरूप कच्चा डेटा उत्पन्न करने का प्रयास कर सकते हैं और उन्हें K-Means में इनपुट कर सकते हैं। वैकल्पिक आसान तरीका मैट्रिक्स के पदानुक्रमिक क्लस्टरिंग के वार्ड पद्धति का उपयोग करने के लिए हो सकता है: K- मीन्स और वार्ड समान विचारधारा है कि क्लस्टर क्या है।
ttnphns


मतलाब नहीं, लेकिन अंडर - पेज का पेज यह संभव-से-निर्दिष्ट-आपकी-दूरी-फ़ंक्शन-उपयोग-स्किकिट्स-लर्न-के-साधनों में से कोई भी 20-मेट्रिक्स का उपयोग स्किपी .स्पेशियल में कर सकता है। दूरी।
डेनिस

जवाबों:


13

चूँकि k- साधनों को उन बिंदुओं के विभिन्न सबसेट के साधनों को खोजने में सक्षम होने की आवश्यकता होती है , जो वास्तव में k- साधनों के एक संस्करण के लिए पूछने के लिए कोई मतलब नहीं है जो इनपुट के रूप में एक दूरी मैट्रिक्स लेता है।

आप इसके बजाय k-medoids की कोशिश कर सकते हैं । हैं कुछ matlab कार्यान्वयन उपलब्ध।


1
नमस्ते, उत्तर के लिए धन्यवाद; डिस्टेंस मैट्रिक्स देने के बजाय इनपुट को कस्टम डिस्टेंस मेट्रिक देना संभव होगा? मुद्दा यह है कि मुझे दो क्लस्टरिंग विधियों की तुलना करनी होगी और, दूसरे एक के बाद से मैं एक कस्टम समानता मैट्रिक्स का उपयोग करता हूं, मैं उचित तुलना प्राप्त करने के लिए किमी के साथ एक ही दृष्टिकोण का उपयोग करना चाहता हूं।
यूजीनियो

2
ELKI आपको k- साधनों के साथ मनमानी दूरी के कार्यों का उपयोग करने की अनुमति देता है। ध्यान दें कि एल्गोरिथम फिर अभिसरण करने में विफल हो सकता है। K- साधन वास्तव में चुकता यूक्लिडियन दूरी (वर्गों का योग) के लिए डिज़ाइन किया गया है । अन्य दूरियों के साथ, माध्य अब अनुकूलन नहीं कर सकता है, और बूम, एल्गोरिथ्म अंततः अभिसरण नहीं करेगा। गंभीरता से, के-मेडोइड का उपयोग करने पर विचार करें। यह वास्तव में केबी -अर्थ विचार का उपयोग करने की अनुमति देने के लिए लिखा गया था ।
है क्विट - Anony-Mousse

एक अजगर / सी ++ पुस्तकालय का भी चक्रवात है जो आपको एक कस्टम मीट्रिक फ़ंक्शन की आपूर्ति करने देता है: github.com/annoviko/pyclustering/issues/417
CpILL

8

आप कच्चे डेटा में अपनी मैट्रिक्स की दूरी को बदल सकते हैं और इन्हें K-Means क्लस्टरिंग में इनपुट कर सकते हैं। चरण इस प्रकार होंगे:

1) अपने एन बिंदुओं के बीच दूरियों को यूक्लिडियन स्क्वैयर होना चाहिए। मैट्रिक्स का " डबल सेंटरिंग" निष्पादित करें : प्रत्येक तत्व से पंक्तिबद्ध अर्थ; परिणाम में, प्रत्येक तत्व से स्तंभ घटाना; परिणाम में, प्रत्येक तत्व के लिए मैट्रिक्स जोड़ें; माइनस 2 से विभाजित करें। आपके पास अब जो मैट्रिक्स है वह आपके बिंदुओं के बीच SSCP (सम-वर्ग-और-क्रॉस-उत्पाद) मैट्रिक्स है जिसमें मूल को N बिंदुओं के बादल के ज्यामितीय केंद्र में रखा गया है। ( यहां डबल सेंटरिंग की व्याख्या पढ़ें ।)

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

PS यदि आपकी दूरियां ज्यामितीय रूप से सही नहीं हैं, तो यूक्लिडियन समस्या का सामना कर सकते हैं: SSCP मैट्रिक्स सकारात्मक (अर्ध) निश्चित नहीं हो सकता है। इस समस्या का कई तरीकों से सामना किया जा सकता है लेकिन सटीक नुकसान के साथ।


आपके उत्तर के लिए धन्यवाद! वास्तव में मेरे पास वास्तविक दूरी मैट्रिक्स नहीं है, लेकिन वस्तुओं में एक समानता मैट्रिक्स (0 ... 1) है, और समानता की गणना यूक्लिडियन दूरी का उपयोग करके नहीं की जाती है, लेकिन एक कस्टम एल्गोरिथ्म के साथ जो कच्चे डेटा को ध्यान में रखते हैं लेकिन नहीं मानक तरीका है। मुझे लगता है कि इस मामले में मैं आपकी प्रक्रिया को लागू नहीं कर सकता, क्या मैं सही हूं?
यूजीनियो

समानताओं को दूरियों में परिवर्तित करने के बाद भी आप कर सकते हैं। उत्तरार्द्ध शायद सच में यूक्लिडियन नहीं होगा (और इसलिए एसएससीपी में कुछ नकारात्मक आइजनवेल्स होंगे); तब तक छोटी सी दूरी को जोड़ने की कोशिश करें जब तक कि एसएससीपी नेगेटिव न हो जाए। ईआईजी। समस्या के साथ काम करने के लिए अन्य तरीके भी मौजूद हैं। और कृपया याद रखें कि आप वर्ग दूरी के डबल केंद्र मैट्रिक्स हैं ।
ttnphns

पुनश्च और वैसे। यदि आपकी मैट्रिक्स समानताएं हैं, तो, ठीक है, यह और भी बेहतर है। आप इसे केवल एसएससीपी मैट्रिक्स के रूप में समझ रहे हैं और इसके साथ पीसीए करते हैं। फिर भी, संभव नकारात्मक eigenvalues ​​की समस्या बनी हुई है।
ttnphns

@ttnphns, खेद मैं दूरी मैट्रिक्स चरण 1 के लिए अपने विवरण याद आ रही है X(चलो कहना एन * एन) सममित, इसलिए होने जा रहा है colMeans(X) =rowMeans(X) और एक बार आप घटाना पंक्ति या स्तंभ का अर्थ है: Y=X-rowMeans(X), mean(Y)0. है
Zhubarb

1
@Zhubarb, जब मैं कहता हूं You could turn your matrix of distances into raw data(अंक 1 और 2) मैं अनिवार्य रूप से, Torgerson के बहुआयामी स्केलिंग (MDS) को संदर्भित करता हूं , जिसमें डबल सेंटिंग प्रारंभिक चरण है। कृपया इस प्रक्रिया के बारे में इस साइट (और Google के साथ) को खोजें। "डबल सेंट्रिंग" बिंदुओं के बादल के केंद्रक में डाली गई मूल स्केलर उत्पाद मैट्रिक्स में परिभाषित (स्क्वार्ड) दूरियों का रूपांतरण है।
ttnphns

3

कृपया मेरे एक परिचित द्वारा लिखित इस लेख को देखें;)

http://arxiv.org/abs/1304.6899

यह एक सामान्यीकृत के-साधन कार्यान्वयन के बारे में है, जो इनपुट के रूप में एक मनमाना दूरी मैट्रिक्स लेता है। यह शून्य तिरछे के साथ किसी भी सममित गैर-संवेदी मैट्रिक्स हो सकता है। ध्यान दें कि यह अजीब दूरी मैट्रिसेस के लिए समझदार परिणाम नहीं दे सकता है। कार्यक्रम C # में लिखा गया है।

स्रोत कोड उपरोक्त लिंक पर जाकर, फिर अन्य प्रारूप पर क्लिक करके, डाउनलोड स्रोत पर क्लिक करके प्राप्त किया जा सकता है। फिर आपको .tar.gz मिलेगा जिसमें Program.cs होगा। वैकल्पिक रूप से, स्रोत कोड को पीडीएफ से भी कॉपी किया जा सकता है।


3

आप जावा मशीन लर्निंग लाइब्रेरी का उपयोग कर सकते हैं। उनके पास के-मीन्स कार्यान्वयन है। कंस्ट्रक्टर में से एक तीन तर्कों को स्वीकार करता है

  1. K मान।
  2. इसका एक उद्देश्य दूरस्थ शिक्षा वर्ग का एक उदाहरण है ।
  3. पुनरावृत्तियों की संख्या।

वांछित परिणाम प्राप्त करने के लिए कोई भी आसानी से दूरस्थ शिक्षा वर्ग का विस्तार कर सकता है। इस वर्ग की माप (इंस्टेंस x, इंस्टेंस y) पद्धति में कस्टम दूरी मैट्रिक्स से मूल्यों को वापस करना है।

दूरी के मीट्रिक के कुछ गुणों को ग्रहण करने के लिए K-Means का रूपांतरण किया जाता है। यूक्लिडियन दूरी, मैनहट्टन दूरी या अन्य मानक मैट्रिक्स इन मान्यताओं को संतुष्ट करते हैं। चूंकि एक कस्टम दूरी मीट्रिक इन मान्यताओं को संतुष्ट नहीं कर सकता है, निर्माणकर्ता के पास एक तीसरा पैरामीटर है जो क्लस्टर बनाने के लिए चलने के लिए पुनरावृत्तियों की संख्या निर्दिष्ट करता है।

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