We can solve arbitrarily bad initialisations of clusters and generally find a solution much faster by using k-Means++. It can be shown that the approximation factor is at most .
- Set the first centre to be one of the input points chosen uniformly at random.
- For cluster to :
- For each point , compute the distance to the nearest centre, i.e. calculate
- Open a new centre at a point using the weighted probability distribution that is proportional to , that is:
- Continue with k-Means.