Thecanopy clustering algorithm is an unsupervised pre-clustering algorithm introduced byAndrew McCallum, Kamal Nigam and Lyle Ungar in 2000.[1] It is often used as preprocessing step for theK-means algorithm or thehierarchical clustering algorithm. It is intended to speed upclustering operations on largedata sets, where using another algorithm directly may be impractical due to the size of the data set.
The algorithm proceeds as follows, using two thresholds (the loose distance) and (the tight distance), where .[1][2]
An important note is that individual data points may be part of several canopies. As an additional speed-up, an approximate and fast distance metric can be used for 3, where a more accurate and slow distance metric can be used for step 4.
Since the algorithm uses distance functions and requires the specification of distance thresholds, its applicability for high-dimensional data is limited by thecurse of dimensionality. Only when a cheap and approximative – low-dimensional – distance function is available, the produced canopies will preserve the clusters produced by K-means.
Its benefits include: