Clustering is a rich family of computer algorithms, developed over the past few decades, to group data within some distances between members. The word ‘distance’ here may refer to more than physical space dimension. Clustering frequently involves an iterative process to define, refine and, if possible, optimize the definitions of distances. It may also be called automatic classification, numerical taxonomy, botryology, typological analysis, community detection, or simply organization.
Clustering is essential in Artificial Intelligence (AI). Its usages include dynamic data mining, paraphrase generation, automatic summarization, business intelligence, knowledge management, artificial neural network, text classification, junk mail management, et cetera.
Clustering could be density-based, distribution-based, centroid-based, hierarchical-based and others.
Some familiar clustering algorithms one may find in AI are K-means, DBSCAN, Gaussian mixture model, BIRCH, Affinity Propagation, Mean-Shift, OPTICS, Agglomerative Hierarchy, Divisive Hierarchical, Mini-Batch K-means and Spectral.
Other important clustering algorithms include Artificial Bee Colony (ABC), Hierarchical Ensemble, Un-supervised, Semi supervised, Time Series, Multi-variate, Spatio-temporal, Parametric or Non-parametric, Fuzzy C-mean and others.