-1
$\begingroup$

In K-means clustering, you can specify an nstart=i parameter, which performs the algorithm i times (i.e. selects the initial k random centroids i times) sand reports the best answer only. If I perform this specifying nstart=10^6, then I get the same (presumably the best) results everytime I run kmeans for a given k.

However, in EM clustering, I am not sure which is the way to do this, if there is a way at all. I am using the EMCluster package in R, and when initializing the model for assigning clusters/classes, I am using the exhaust.EM function, with a min.n.iter=10^9. This still gives me a different answer everytime: some datapoints will belong to one cluster in one execution, and they will be excluded from that cluster the next.

Is there an equivalent to nstart from k-means for EM clustering?

$\endgroup$

2 Answers 2

0
$\begingroup$

nstart for k-means doesn't guarantee the opimal result.

For k-means, you only have $O(k^n)$ different possible clustering solutions. This is large, but finite. Running an absurd amount of initialization is likely to eventually yield the best solution reachable from your seeding stratgy (which does not mean it is the globally optimal solution!)

EM clustering has an infinite amount of clustering solutions, on the magnitude of $\mathbb{R}^{n\times (k-1)}$. There is a lot of numerical parameter-tuning involved. So every different initialization will likely yield a slightly different solution when it reaches your stopping threshold (and you don't want until "true" converge, which is at infinite iterations).

$\endgroup$
0
$\begingroup$

EM Gaussian clustering is different from k means in that you are optimizing a theoretical likelihood rather than simply calculating the distances between points. As such, starting positions do not matter so much (at least as far as I am aware). I have only used the mclust package for clustering so i don't know what min.n.iter does.

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.