Skip to content
Surf Wiki
Save to docs
technology/algorithms

From Surf Wiki (app.surf) — the open knowledge base

Data stream clustering

Data stream clustering

In computer science, data stream clustering is defined as the clustering of data that arrive continuously such as telephone records, multimedia data, financial transactions etc. Data stream clustering is usually studied as a streaming algorithm and the objective is, given a sequence of points, to construct a good clustering of the stream, using a small amount of memory and time.

History

Data stream clustering has recently attracted attention for emerging applications that involve large amounts of streaming data. For clustering, k-means is a widely used heuristic but alternate algorithms have also been developed such as k-medoids, CURE and the popular BIRCH. For data streams, one of the first results appeared in 1980 but the model was formalized in 1998.

Definition

The problem of data stream clustering is defined as:

Input: a sequence of n points in metric space and an integer k.

Output: k centers in the set of the n points so as to minimize the sum of distances from data points to their closest cluster centers.

This is the streaming version of the k-median problem.

Algorithms

STREAM

STREAM is an algorithm for clustering data streams described by Guha, Mishra, Motwani and O'Callaghan which achieves a constant factor approximation for the k-Median problem in a single pass and using small space.

To understand STREAM, the first step is to show that clustering can take place in small space (not caring about the number of passes). Small-Space is a divide-and-conquer algorithm that divides the data, S, into \ell pieces, clusters each one of them (using k-means) and then clusters the centers obtained.

Small-Space Algorithm representation

Algorithm Small-Space(S)

each point in Xi to its closest center. where each center c is weighted by the number of points assigned to it.

Where, if in Step 2 we run a bicriteria -approximation algorithm which outputs at most ak medians with cost at most b times the optimum k-Median solution and in Step 4 we run a c-approximation algorithm then the approximation factor of Small-Space() algorithm is . We can also generalize Small-Space so that it recursively calls itself i times on a successively smaller set of weighted centers and achieves a constant factor approximation to the k-median problem.

The problem with the Small-Space is that the number of subsets \ell that we partition S into is limited, since it has to store in memory the intermediate medians in X. So, if M is the size of memory, we need to partition S into \ell subsets such that each subset fits in memory, (n / \ell) and so that the weighted \ell k centers also fit in memory, \ell k . But such an \ell may not always exist.

The STREAM algorithm solves the problem of storing intermediate medians and achieves better running time and space requirements. The algorithm works as follows:

Other algorithms

Other well-known algorithms used for data stream clustering are:

  • BIRCH: builds a hierarchical data structure to incrementally cluster the incoming points using the available memory and minimizing the amount of I/O required. The complexity of the algorithm is since one pass suffices to get a good clustering (though, results can be improved by allowing several passes).
  • COBWEB: is an incremental clustering technique that keeps a hierarchical clustering model in the form of a classification tree. For each new point COBWEB descends the tree, updates the nodes along the way and looks for the best node to put the point on (using a category utility function).
  • C2ICM: builds a flat partitioning clustering structure by selecting some objects as cluster seeds/initiators and a non-seed is assigned to the seed that provides the highest coverage, addition of new objects can introduce new seeds and falsify some existing old seeds, during incremental clustering new objects and the members of the falsified clusters are assigned to one of the existing new/old seeds.
  • CluStream: uses micro-clusters that are temporal extensions of BIRCH cluster feature vector, so that it can decide if a micro-cluster can be newly created, merged or forgotten based in the analysis of the squared and linear sum of the current micro-clusters data-points and timestamps, and then at any point in time one can generate macro-clusters by clustering these micro-clustering using an offline clustering algorithm like K-Means, thus producing a final clustering result.

References

References

  1. (1980). "Selection and Sorting with Limited Storage". Theoretical Computer Science.
  2. (August 1998). "Computing on Data Streams". Digital Equipment Corporation.
  3. (2000). "Proceedings 41st Annual Symposium on Foundations of Computer Science".
  4. (1999). "Primal-dual approximation algorithms for metric facility location and k-median problems". Proc. FOCS.
  5. (1996). "BIRCH: An efficient data clustering method for very large databases". ACM SIGMOD Record.
  6. Fisher, D. H.. (1987). "Knowledge Acquisition Via Incremental Conceptual Clustering". Machine Learning.
  7. Fisher, D. H.. (1996). "Iterative Optimization and Simplification of Hierarchical Clusterings". Journal of AI Research.
  8. Can, F.. (1993). "Incremental Clustering for Dynamic Information Processing". ACM Transactions on Information Systems.
  9. (2003). "A Framework for Clustering Evolving Data Streams". Proceedings 2003 VLDB Conference.
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Data stream clustering — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report