Алгоритм кластеризации 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' вариант к истине

Другие вопросы по тегам