इसलिए मेरे पास एक मुद्दा है जिसका मैं लाइव, लगातार स्ट्रीमिंग डेटा के साथ क्लस्टरिंग के संबंध में सामना कर रहा हूं। चूँकि मेरे पास एक निरंतर बढ़ता डेटा सेट है, मुझे यकीन नहीं है कि कुशल और प्रभावी क्लस्टरिंग को चलाने का सबसे अच्छा तरीका क्या है। मैं सहित कुछ संभव समाधान के साथ आया हूँ:
कितने डेटा बिंदुओं को अनुमति देने की सीमा निर्धारित की जाती है, इस प्रकार जब भी किसी अन्य डेटा बिंदु के रूप में सीमा पूरी हो जाती है सबसे पुराने बिंदु को हटा दिया जाता है। अनिवार्य रूप से, यह सुझाव देगा कि पुराने डेटा हमारे लिए अभी तक प्रासंगिक नहीं हैं कि देखभाल के लिए हम इसे बाहर फेंककर क्या खो रहे हैं।
एक बार एक अच्छा क्लस्टरिंग करने के लिए पर्याप्त डेटा होने के बाद, इस "सेटअप" पर विचार करें और जैसे ही नए बिंदु आते हैं, सभी डेटा को फिर से क्लस्टर करने के बजाय यह पता लगाएं कि कौन सा क्लस्टर केंद्र नए बिंदु के सबसे करीब है और इसे इसमें जोड़ें। यहां लाभ यह है कि आप हर नए बिंदु पर फिर से क्लस्टर करने से बच सकते हैं और आपको इस क्लस्टर को "अच्छा पर्याप्त" मानते हुए अन्य सभी बिंदुओं को संग्रहीत नहीं करना होगा। नकारात्मक पक्ष यह है कि शुरुआत से सभी डेटा बिंदुओं के साथ एल्गोरिथ्म को फिर से चलाना अधिक सटीक हो सकता है।
जबकि वे कुछ संभावित समाधान हैं जिन्हें मैंने मस्तिष्क-तूफानी किया है, मैं जानना चाहता हूं कि क्या इस समस्या का सामना करने के लिए कोई बेहतर ज्ञात तकनीक है। मुझे लगता है कि Google जैसी साइटों को किसी तरह से निपटना था (और मैं उम्मीद कर रहा हूं कि "अधिक राम, सर्वर और प्रोसेसर जोड़ें" या "लगातार अपने डेटा केंद्रों का विस्तार करें" केवल उपलब्ध उत्तर नहीं हैं)।