Gaussian Mixture Models (GMMs) (using EM and incremental) for clustering and regression in Python.
Estimate GMM from samples and sample from GMM:
from gmr import GMM gmm = GMM(n_components=3, random_state=random_state) gmm.from_samples(X) X_sampled = gmm.sample(100)
Guassian Mixture Regression Estimation Maximization:
from gmr import GMM gmm = GMM(n_components=3, random_state=0) gmm.from_samples(X) Y_gmm = gmm.predict(np.array([0]), X_test[:, np.newaxis])
Guassian Mixture Regression Incremental Update:
from gmr import IGMM igmm = IGMM(n=2, sig_init=1.1, T_nov=.1) for i in range(X.shape[0]): igmm.update(X[i,:]) Y_igmm = igmm.predict(np.array([0]), X_test[:, np.newaxis])
There is an implementation of Gaussian Mixture Models for clustering in scikit-learn as well. Regression could not be easily integrated in the interface of sklearn. That is the reason why I put the code in a separate repository.
from source:
sudo python setup.py install