Data stream clustering

This is an old revision of this page, as edited by Bfoteini (talk | contribs) at 17:20, 15 January 2010. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 under the data stream model of computation and the objective is, given a sequence of points, to maintain a consistently good clustering of the sequence observed so far, using a small amount of memory and time.


History

The problem of data stream clustering has recently attracted much attention for its applicability to emerging applications that involve large amount of streaming data such as network flows, sensor data, and web click streams. One of the first results on data streams was due to Munro and Paterson [1] but the model was formalized much later by Henzinger, Raghavan, and Rajagopalan [2]. The method usually used for data stream clustering is the k-means


Algorithms

Many algorithms have been proposed for the data stream clustering problem. The performance of an algorithm that operates on data streams is measured by three basic factors:

  • The number of passes the algorithm must make over the stream.
  • The available memory.
  • The running time of the algorithm.

These algorithms have many similarities with online algorithms but they are not identical. Unlike online algorithms, algorithms for data stream clustering have only a bounded amount of memory available and they may be able to take action after a group of points arrives while online algorithms are required to take action after each point arrives.

Since data stream algorithms have limited memory available, the first goal is to show that clustering can take place in small space (not caring about the number of passes). Small-Space <ref>S. Guha, A. Meyerson, N. Mishra, R. Motwani, L. O’Callaghan, "Clustering Data Streams: Theory and Practice", IEEE Transactions on Knowledge and Data Engineering, Vol. 15, 2003<\ref> is a divide-and-conquer algorithm that divides the data into pieces, clusters each one of them (using k-means) and then clusters the centers obtained (each center is weighted by the number of points assigned to it)

Some of the most well-known algorithms used for data stream clustering include:

  • BIRCH
  • COBWEB
  • STREAM

BIRCH

COBWEB

STREAM

References

<references>

  1. ^ J.Munro and M. Paterson. Selection and Sorting with Limited Storage. Theoretical Computer Science, pages 315-323, 1980
  2. ^ M. Henzinger, P. Raghavan, and S. Rajagopalan. Computing on Data Streams. Digital Equipment Corporation, TR-1998-011, August 1998.

Notes

http://www.cc.gatech.edu/projects/disl/Courses/cs4440/07Fall/project/proposals/Team5Proposal_final.pdf

http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=5222900&isnumber=5222860&tag=1

http://www.springerlink.com/content/uc06wwfpc8wl04wf/fulltext.pdf