I'm looking for a Gaussian mixture model clustering algorithm that would allow me to set equal component weights and shared diagonal covariances. I need to analyze a set of data and I don't have the time to try to write the code myself.
Asked
Active
Viewed 2,187 times
2 Answers
2
In python you can use scikit's GMM. It's easy to do, see the doc:
http://scikit-learn.sourceforge.net/dev/modules/generated/sklearn.mixture.GMM.html
Re your specific needs:
thegmm = GMM(cvtype='tied', params='mc')
thegmm.fit(mydata)
Meaning:
- shared diagonal covariances: use
covariance_type='tied'
in the constructor - equal component weights: use
params='mc'
in the constructor (rather than the default'wmc'
which lets weights update).
Actually, I'm not sure if 'tied' implies diagonal covariances. It looks like you can choose 'tied' or 'diagonal' but not both, according to the doc. Anyone confirm?

Dan Stowell
- 4,618
- 2
- 20
- 30
-
Can you kindly tell how to find maximum likelyhood for each iteration while applying GMM. – Debashis Sahoo Oct 19 '18 at 07:30
0
Looks like the standard Matlab GMM tool will work, set the 'CovType'
option to diagonal and the 'SharedCov'
option to true

Salain
- 752
- 6
- 14
-
You're missing a `,true,` after the `'SharedCov'`, so it should be `,'SharedCov',true,`. – Salain Aug 26 '12 at 14:51