# How to give ClusteringComponents initial values?

I came across a variant of k-means that adds a algorithm to select good starting values called k-means++.

kMeansInitializer[data_, k_Integer] :=
Module[
{startingPoint = RandomChoice[data], getDistance, getDistances,
nextPoint},
getDistance[datum_, points_] := Min[Norm[datum - #]^2 & /@ points];
getDistances[points_] := getDistance[#, points] & /@ data;
nextPoint[points_] := RandomChoice[getDistances[points] -> data];
NestList[nextPoint, startingPoint, k - 1]
]


After implementing the algorithm (a bit of a challenge for someone at my level) I now find I have no idea how to feed the values I generate to ClusteringComponents to use as initial values for use in its k-means implementation.

-
I don't think it is possible to do that via ClusteringComponents. Here's an implementation of k-means that I wrote, which might be easily extended to your needs. –  rm -rf Oct 3 '12 at 23:33

Posting rm -rf's comment as an answer for the purpose of improving the stats of this site, it is not possible to provide ClusteringComponents with initial values. It is almost certainly already implemented using an algorithm to choose good starting points, and probably because they all converge to the same solution it was not deemed necessary to make it possible to change the starting points.
m = RandomSample[list, k]

m = kMeansInitializer[list, k]