CluStream उपयोगकर्ता-निर्दिष्ट, ऑनलाइन क्लस्टरिंग क्वेरी के आधार पर विकसित डेटा स्ट्रीम के क्लस्टरिंग के लिए एक एल्गोरिदम है। यह क्लस्टरिंग प्रक्रिया को ऑनलाइन और ऑफलाइन घटकों में विभाजित करता है।
ऑनलाइन घटक माइक्रो-क्लस्टर का उपयोग करके डेटा स्ट्रीम के बारे में सारांश सांख्यिकी की गणना और संग्रह करता है, और माइक्रो-क्लस्टर की वृद्धिशील ऑनलाइन गणना और रखरखाव करता है। ऑफलाइन घटक मैक्रो-क्लस्टरिंग करता है और झुके हुए समय फ्रेम मॉडल पर आधारित संग्रहीत सारांश सांख्यिकी का उपयोग करके विभिन्न उपयोगकर्ता प्रश्नों का उत्तर देता है।
ऐतिहासिक और वर्तमान स्ट्रीम डेटा जानकारी दोनों के आधार पर क्लस्टर विकसित डेटा स्ट्रीम, झुके हुए समय फ्रेम मॉडल (जैसे प्रगतिशील लघुगणक मॉडल) को अपनाया जाता है, जो माइक्रोक्लस्टर के एक सेट के स्नैपशॉट को हाल ही के आधार पर विभिन्न स्तरों के दानेदारता पर संग्रहीत करता है।
यहां अंतर्ज्ञान यह है कि पुरानी घटनाओं की तुलना में हाल की घटनाओं के लिए अधिक जानकारी की आवश्यकता होगी। संग्रहीत जानकारी का उपयोग इतिहास-संबंधित, उपयोगकर्ता-विशिष्ट क्लस्टरिंग क्वेरी को प्रोसेस करने के लिए किया जा सकता है। CluStream में एक माइक्रोक्लस्टर को क्लस्टरिंग फीचर के रूप में परिभाषित किया गया है।
CluStream BIRCH में विकसित क्लस्टरिंग फीचर की अवधारणा को अस्थायी डोमेन को शामिल करने के लिए विस्तारित करता है। क्लस्टरिंग फीचर के अस्थायी विस्तार के रूप में, d-आयामी बिंदुओं के एक सेट, X₁, ..., Xₙ, टाइमस्टैम्प T₁,...,Tₙ के साथ, एक माइक्रोक्लस्टर को (2d + 3) टपल (CF2ˣ, CF1ˣ, CF2ᵗ, CF1ᵗ, n) के रूप में परिभाषित किया जाता है, जहां CF2ˣ और CF1ˣ d-आयामी वैक्टर हैं जबकि CF2ᵗ, CF1ᵗ, और n स्केलर हैं। CF2ˣ प्रति आयाम डेटा मूल्यों के वर्गों का योग रखता है, यानी, Σᵢ₌₁ⁿ Xᵢ²।
इसी तरह, प्रत्येक आयाम के लिए, डेटा मूल्यों का योग CF1ˣ में बनाए रखा जाता है। एक सांख्यिकीय दृष्टिकोण से, CF2ˣ और CF1ˣ क्रमशः डेटा के दूसरे और पहले क्रम के क्षणों को दर्शाते हैं। टाइमस्टैम्प के वर्गों का योग CF2ᵗ में बनाए रखा जाता है। टाइमस्टैम्प का योग CF1ᵗ में बनाए रखा जाता है। अंत में, माइक्रोक्लस्टर में डेटा पॉइंट की संख्या n में बनाए रखी जाती है।
क्लस्टरिंग फीचर में योजक और घटाव गुण होते हैं जो उन्हें डेटा स्ट्रीम क्लस्टर विश्लेषण के लिए बहुत उपयोगी बनाते हैं। उदाहरण के लिए, दो माइक्रोक्लस्टर को उनके संबंधित क्लस्टरिंग फीचर को जोड़कर मर्ज किया जा सकता है। इसके अलावा, बड़ी संख्या में माइक्रोक्लस्टर को अधिक मेमोरी उपयोग किए बिना बनाए रखा जा सकता है। इन माइक्रोक्लस्टर के स्नैपशॉट झुके हुए समय फ्रेम के आधार पर समय के प्रमुख बिंदुओं पर संग्रहीत किए जाते हैं।
ऑनलाइन माइक्रोक्लस्टर प्रसंस्करण दो चरणों में विभाजित है जैसे सांख्यिकीय डेटा संग्रह और माइक्रोक्लस्टर का अद्यतन। पहले चरण में, कुल q माइक्रोक्लस्टर, M₁,..., M_q, बनाए रखे जाते हैं, जहां q आमतौर पर प्राकृतिक क्लस्टर की संख्या से काफी बड़ा होता है और उपलब्ध मेमोरी की मात्रा द्वारा निर्धारित होता है।
दूसरे चरण में, माइक्रोक्लस्टर अपडेट किए जाते हैं। प्रत्येक नया डेटा पॉइंट या तो मौजूदा क्लस्टर या एक नए में जोड़ा जाता है। यह तय कर सकता है कि नया क्लस्टर आवश्यक है या नहीं, प्रत्येक क्लस्टर के लिए अधिकतम सीमा परिभाषित की जाती है।