Python implementation of Robust EM Clustering for Gaussian Mixture Models[1]. (Click here to view the paper for more detail.)
-
robustgmm.robustgmm
Scikit-learn API style for Robust GMM
-
robustgmm.generator
Generator for synthetic data from mixture of gaussian.
For more detail to use, see the example below or paper_example.py
-
Reference
MS Yang, A robust EM clustering algorithm for gaussian mixture models, Pattern Recognit., 45 (2012), pp. 3950-3961
-
Install from PyPI
pip install robustgmm
-
Install from Github
pip install git+https://github.com/HongJea-Park/robust_EM_for_gmm.git
All examples are conducted to compare with the experimental results of the paper.
# For more detail, refer ./test/paper_example.py
import numpy as np
from robustgmm import RobustGMM
from robustgmm import Generator_Multivariate_Normal
# Generate data from 2 multivariate normal distribution with fixed random seed
np.random.seed(0)
real_means = np.array([[.0, .0], [20, .0]])
real_covs = np.array([[[1, .0], [.0, 1]],
[[9, .0], [.0, 9]]])
mix_prob = np.array([.5, .5])
generator = Generator_Multivariate_Normal(means=real_means,
covs=real_covs,
mix_prob=mix_prob)
X = generator.get_sample(800)
# GMM using robust EM Algorithm
rgmm = RobustGMM()
rgmm.fit(X)