A robust EM clustering algorithm for Gaussian mixture models

# A Robust EM Clustering Algorithm for Gaussian Mixture Models

## Description

Python implementation of Robust EM Clustering for Gaussian Mixture Models. (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

1. Install from PyPI

```pip install robustgmm
```
2. Install from Github

```pip install git+https://github.com/HongJea-Park/robust_EM_for_gmm.git
```

## Example

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)
```

## Figures for each examples in paper

1. ### Example 1  2. ### Example 2    3. ### Example 3  4. ### Example 4 5. ### Example 5  6. ### Example 6  7. ### Example 7 8. ### Computational time cost ## Project details

This version 1.0.2 1.0.1 1.0.0