STREAM là thuật toán xấp xỉ phần tử hằng số một lần (single-pass, constant-factor approximation algorithm) được tạo ra cho vấn đề k-medians. Vấn đề k-medans là cụm hóa N điểm dữ liệu thành k cụm hoặc nhóm sao cho tổng lỗi bình phương (SSQ) giữa các điểm và tâm cụm được gán cho chúng được tối thiểu hóa. Ý tưởng là gán các điểm tương tự vào cùng cụm, nơi các điểm này khác biệt với điểm trong các cụm khác.
Trong mô hình dữ liệu luồng, điểm dữ liệu chỉ có thể được nhìn thấy một lần, và bộ nhớ và thời gian bị giới hạn. Để thực hiện cụm hóa chất lượng cao, thuật toán STREAM xử lý luồng dữ liệu trong các thùng (bucket) hoặc lô (batch) m điểm, với mỗi thùng vừa với bộ nhớ chính.
Đối với mỗi thùng bᵢ, STREAM cụm hóa các điểm của thùng thành k cụm. Sau đó tóm tắt thông tin thùng bằng cách chỉ giữ thông tin về k tâm, với mỗi tâm cụm được trọng số bởi số điểm được gán cho cụm của nó.
STREAM sau đó loại bỏ các điểm, chỉ giữ thông tin tâm. Vì đủ tâm đã được thu thập, các tâm có trọng số được cụm hóa để tạo nhóm khác O(k) tâm cụm. Điều này lặp lại sao cho tại mỗi mức, tối đa m điểm được giữ. Phương pháp này dẫn đến thuật toán xấp xỉ hằng số một lần, thời gian O(kN), không gian O(N^ε) (với hằng số ε < 1), cho k-medians luồng dữ liệu.
STREAM thay đổi cụm k-medians chất lượng với diện tích và thời gian xác định. Tuy nhiên, nó không xem xét sự tiến hóa của bản ghi cũng như độ chi tiết thời gian. Cụm hóa có thể bị chi phối bởi dữ liệu cũ, lỗi thời của luồng. Đặc điểm cụm có thể thay đổi với cả thời điểm được đánh giá và горизон thời gian đo lường.
Ví dụ, người dùng có thể muốn kiểm tra cụm xuất hiện tuần trước, tháng trước, hoặc năm trước. Những cụm này có thể khác nhau. Do đó, thuật toán cụm hóa luồng dữ liệu cũng phải hỗ trợ linh hoạt tính toán cụm trên khoảng thời gian do người dùng định nghĩa theo cách tương tác.
CluStream là thuật toán cụm hóa luồng dữ liệu tiến hóa dựa trên truy vấn cụm hóa trực tuyến do người dùng chỉ định. Nó chia quy trình cụm hóa thành thành phần trực tuyến (online) và ngoại tuyến (offline).
Thành phần trực tuyến tính toán và lưu trữ thống kê tóm tắt về luồng dữ liệu sử dụng micro-cụm, và thực hiện tính toán và bảo trì micro-cụm tăng dần. Thành phần ngoại tuyến làm macro-cụm hóa và giải quyết nhiều câu hỏi người dùng dùng thống kê tóm tắt đã lưu, dựa trên mô hình khung thời gian nghiêng.
Để cụm hóa luồng dữ liệu tiến hóa dựa trên cả thông tin luồng lịch sử và hiện tại, mô hình khung thời gian nghiêng (như mô hình logarit tiến triển) được áp dụng, lưu ảnh chụp nhanh tập micro-cụm ở các mức độ chi tiết khác nhau tùy thuộc vào sự gần đây.