The -means algorithm is a very simple and very powerful iterative technique to partition a data-set into disjoint clusters, where the value has to be pre-determined [DH73,Har75]. A generalized, similarity-based description of the algorithm can be given as follows:

- Start at with randomly selected objects as the cluster centers , .
- Assign each object
to the cluster center with maximum
similarity:
(2.1)

- Update all cluster means:
(2.2)

- If any differs from go to step 2 with unless termination criteria (such as exceeding the maximum number of iterations) are met.