change to KMeans2.java because I added detailed prints of the during-init behavior and wasn't seeing the init change during the 5 iterations. Commented out the Log.info() added but left in as useful
Interestingly, on some datasets PlusPlus (really it's ||) can be biased, so that Furthest works best. I don't get the intermittent bad results I saw before, with these changes, so I think they're postive. (and may reduce the need for multiple KMeans trials to get best results. I see consistency now on best.

changes:
-Feed a new random number to each Sampler() call instead of the same seed
-recluster() after each iteration (5) in the init. Rationale: there is a 3*k oversample weight on sqr vs _sqr. _sqr is the sum of all current samples (centers). So if it's allowed to grow, then _sqr becomes so big, that all possible new points are ignored because their sqr is too small, even with the 3*k oversample. So it only makes sense to me, if you limit the number of samples to k each iteratio, for _sqr to remain a reasonable thing to compare to.
-Improve results on random init (which you get with initialization='' ..browser may no longer support but json does. Ask for k*3 random rows and recluster() using the Furthest criteria. Can get the optimal centers on my datasets (wasn't otherwise)

passes Junit and my tests with different init modes. Because initialization does not use normalized values (if you don't normalize?) PlusPlus can be biased I believe, if a cluster has larger numbers on avg, in terms of contributing to sqr for the samples. Furthest seems to be better at avoiding this bias. I changed my test to have matched set of pts in the spheres, again to avoid bias due to cluster size differences
Merge branch 'master' of github.com:0xdata/h2o