I have some code that looks for clusters in x,y data. To check the number of clusters I use, I want to get the BIC. This is not possible (easily) using
kmeans(), and so I've switched to the mclust package. Specifically, I'm trying to replace
kmeans() from the R stats package, with
Mclust() from the mclust package.
Mclust() requires me to specify which model should be used for the clustering. According to
?Mclust, the following models can be used in
univariate mixture "E" = equal variance (one-dimensional) "V" = variable variance (one-dimensional) multivariate mixture "EII" = spherical, equal volume "VII" = spherical, unequal volume "EEI" = diagonal, equal volume and shape "VEI" = diagonal, varying volume, equal shape "EVI" = diagonal, equal volume, varying shape "VVI" = diagonal, varying volume and shape "EEE" = ellipsoidal, equal volume, shape, and orientation "EEV" = ellipsoidal, equal volume and equal shape "VEV" = ellipsoidal, equal shape "VVV" = ellipsoidal, varying volume, shape, and orientation single component "X" = univariate normal "XII" = spherical multivariate normal "XXI" = diagonal multivariate normal "XXX" = ellipsoidal multivariate normal
I'm presuming that k-means in stats is a "spherical, unequal volume" model, ie. to get
k-means(x = data, centers = 6) to match
mclust(), I should use
mclust(data, G = 6, modelNames = c("VII")).
However, in the limited tests I've done, this gives different cluster centroids. The example below uses 6 clusters with some test data. The centroids obtained through each method are shown.
Can anyone confirm which
mclust() model is equivalent to