The Analysis of a Simple k-Means Clustering Algorithm

Tapas Kanungo, David M. Mount, Nathan S. Netanyahu, Christine Piatko, Ruth Silverman, Angela Y. Wu

Research output: Contribution to journalArticlepeer-review


Descriptive note: Technical rept.. K-means clustering is a very popular clustering technique which is used in numerous applications. Given a set of n data points in R(exp d) and an integer k, the problem is to determine a set of k points R(exp d), called centers, so as to minimize the mean squared distance from each data point to its nearest center. A popular heuristic for k-means clustering is Lloyd's algorithm. In this paper, we present a simple and efficient implementation of Lloyd's k-means clustering algorithm, which we call the filtering algorithm. This algorithm is very easy to implement. It differs from most other approaches in that it precomputes a kd-tree data structure for the data points rather than the center points. We establish the practical efficiency of the filtering algorithm in two ways. First, we present a data-sensitive analysis of the algorithm's running time. Second, we have implemented the algorithm and performed a number of empirical studies, both on synthetically generated data and on real data from applications in color quantization, compression, and segmentation.
Original languageAmerican English
Pages (from-to)881-892
JournalIEEE Transactions on Pattern Analysis and Machine Intelligence
Issue number7
StatePublished - 2002


Dive into the research topics of 'The Analysis of a Simple k-Means Clustering Algorithm'. Together they form a unique fingerprint.

Cite this