Алгоритм кластеризации GMM с равным весом и общей диагональной ковариацией
Я ищу алгоритм кластеризации гауссовой модели смеси, который позволил бы мне установить равные веса компонентов и общие диагональные ковариации. Мне нужно проанализировать набор данных, и у меня нет времени, чтобы попытаться написать код самостоятельно.
2 ответа
В Python вы можете использовать GMM от Scikit. Это легко сделать, смотрите документацию:
http://scikit-learn.sourceforge.net/dev/modules/generated/sklearn.mixture.GMM.html
Ре ваши конкретные потребности:
thegmm = GMM(cvtype='tied', params='mc')
thegmm.fit(mydata)
Имея в виду:
- общие диагональные ковариации: использовать
covariance_type='tied'
в конструкторе - равные веса компонентов: использовать
params='mc'
в конструкторе (а не по умолчанию'wmc'
который позволяет весам обновлять).
На самом деле, я не уверен, что "связанный" подразумевает диагональные ковариации. Похоже, вы можете выбрать "привязанный" или "диагональный", но не оба одновременно, согласно документу. Кто-нибудь подтвердит?
Похоже, что стандартный инструмент Matlab GMM будет работать, установите 'CovType'
вариант по диагонали и тому 'SharedCov'
вариант к истине