1. A method of clustering data points, comprising the steps of: a) performing an initial segmentation of data points; b) performing a series of discrete distribution (D2) clustering operations to determine a set of local centroids within each segment; c) combining the local centroids determined in step b) into one data set and performing a segmentation of this data set; d) iteratively repeating steps b) and c) at higher levels in a hierarchy, if necessary, until a single segmentation of the data points is achieved, the number of centroids is reduced to an acceptable level, or another stopping criterion is satisfied.