मैं मुख्य रूप stats
से R
भाषा के पैकेज में लागू किए गए अलग-अलग के-मतलब क्लस्टर एल्गोरिदम को समझने की कोशिश कर रहा हूं ।
मैं लॉयड के एल्गोरिथ्म और मैकक्वीन के ऑनलाइन एल्गोरिथ्म को समझता हूं। जिस तरह से मैं उन्हें समझता हूं वह इस प्रकार है:
लॉयड्स का एल्गोरिथम:
प्रारंभ में 'k' यादृच्छिक प्रेक्षण चुने जाते हैं जो 'k' समूहों के केन्द्रक के रूप में काम करेंगे। फिर निम्न चरण पुनरावृति में तब तक होते हैं, जब तक कि केंद्रक परिवर्तित नहीं हो जाते।
- प्रत्येक अवलोकन और चुने हुए केन्द्रक के बीच यूक्लिडियन दूरी की गणना की जाती है।
- अवलोकन जो प्रत्येक सेंट्रोइड के सबसे करीब होते हैं, उन्हें 'के' बकेट के भीतर टैग किया जाता है।
- प्रत्येक बाल्टी में सभी अवलोकनों का मतलब नए केन्द्रक के रूप में कार्य करता है।
- नए सेंट्रोइड पुराने सेंट्रोइड्स को बदल देते हैं और यदि पुराने और नए सेंट्रोइड्स में रूपांतरण नहीं हुआ है तो पुनरावृत्ति चरण 1 पर वापस चली जाती है।
अभिसरण करने की स्थितियाँ निम्नलिखित हैं: पुरानी और नई केन्द्रक बिल्कुल समान हैं, केन्द्रक के बीच का अंतर छोटा है (10 ^ -3 के क्रम का) या पुनरावृत्तियों की अधिकतम संख्या (10 या 100) तक पहुँच जाते हैं।
MacQueen का एल्गोरिथम:
यह एक ऑनलाइन संस्करण है जहां पहले 'के' उदाहरणों को सेंट्रोइड के रूप में चुना जाता है।
फिर प्रत्येक उदाहरण को बाल्टी में रखा जाता है, जिसके आधार पर सेंट्रोइड उस उदाहरण के सबसे करीब होता है। संबंधित केन्द्रक पुनर्गणना है।
इस चरण को तब तक दोहराएं जब तक कि प्रत्येक बाल्टी को उपयुक्त बाल्टी में न रख दिया जाए।
इस एल्गोरिथ्म में केवल एक पुनरावृत्ति है और लूप 'x' उदाहरणों के लिए आगे बढ़ता है
हार्टिगन-वोंग एल्गोरिदम:
- सभी बिंदुओं / उदाहरणों को रैंडम बकेट में असाइन करें और संबंधित सेंट्रोइड की गणना करें।
- पहले उदाहरण से शुरू करके निकटतम सेंट्रोइड खोजें और उस बाल्टी का आश्वासन दें। यदि बाल्टी बदली गई तो नए सेंट्रोइड्स को पुन: गणना करें यानी नए असाइन किए गए बाल्टी के केंद्रक और पुराने बाल्टी असाइनमेंट के केंद्रक के रूप में वे दो सेंट्रोइड हैं जो परिवर्तन से प्रभावित होते हैं
- सभी बिंदुओं के माध्यम से लूप करें और नए सेंट्रोइड प्राप्त करें।
- अंक 2 और 3 का दूसरा पुनरावृत्ति करें जो एक प्रकार का सफाई कार्य करता है और बाल्टियों को सही करने के लिए आवारा बिंदुओं को पुन: असाइन करता है।
इस एल्गोरिथ्म में अभिसरण परिणाम देखने से पहले यह 2 पुनरावृत्तियों करता है।
अब, मैं अनिश्चित हूं कि अगर मैं हार्टिगन-वोंग एल्गोरिथ्म में बिंदु 4 में क्या सोचता हूं, तो एल्गोरिथ्म की सही विधि है। मेरा प्रश्न है, अगर हार्ट-वोंग के लिए निम्नलिखित विधि k- साधनों को लागू करने की सही विधि है? क्या इस विधि के लिए केवल दो पुनरावृत्तियाँ हैं? यदि नहीं, तो अभिसरण के लिए क्या स्थिति है (कब रोकना है)?
एक और संभावित कार्यान्वयन स्पष्टीकरण जो मुझे समझ में आता है।
- सभी बिंदुओं / उदाहरणों को रैंडम बकेट में असाइन करें और संबंधित सेंट्रोइड की गणना करें।
- पहले उदाहरण से शुरू करके निकटतम सेंट्रोइड ढूंढें और उस बाल्टी को असाइन करें। अगर बाल्टी बदली गई तो नए सेंट्रोइड्स यानी नए असाइन किए गए बाल्टी के केंद्रक और पुराने बाल्टी असाइनमेंट के केंद्रक के रूप में पुनर्गणना करें क्योंकि वे दो सेंट्रोइड हैं जो परिवर्तन से प्रभावित होते हैं।
- एक बार किसी भी बिंदु के लिए बाल्टी में बदलाव होने के बाद, पहले उदाहरण पर वापस जाएं और फिर से चरणों को दोहराएं।
- सभी उदाहरणों के पुनरावृत्त होने पर पुनरावृत्ति समाप्त हो जाती है और कोई भी अंक बाल्टियाँ नहीं बदलता है।
इस तरह से कई पुनरावृत्तियां होती हैं जो कि हर बार फिर से डेटासेट की शुरुआत से शुरू होती हैं जब एक उदाहरण बाल्टी में बदलाव करता है।
कोई भी स्पष्टीकरण उपयोगी होगा और कृपया मुझे बताएं कि क्या इन विधियों में से किसी के लिए मेरी समझ गलत है।