Clustering is a unsupervised learning technology which is required in many fields like pattern recognition. Given a predefined similarity metric, clustering divides a data set into a number of classes so that data points from one class have more similarity than data from different classes.

Some popular algorithm are: k-means, expectation maximization and Gibbs alogrithm, referring to:

- R.O.Duda and P.E.Hart,
*Pattern Classification and Scene Analysis*, John Wiley, New York, 1973. - A.P.Dempster, et al.,
*Maximum likelihood from incomplete data via the EM algorithm*. Journal of the Royal Statistical Society B, 39:1-39, 1977. - T.Hrycej,
*Gibbs sampling in Bayesian networks*. Artificial Intelligence, 46:pp 351-363, 1990.