Pas encore de compte ?
Un modèle de mélange gaussien est un modèle statistique exprimé selon une densité mélange.
Il sert à estimer paramétriquement la distribution de variables aléatoires en les modélisant comme une somme de plusieurs gaussiennes.
Il faut déterminer la variance, la moyenne et l'amplitude de chaque gaussienne.
Ces paramètres sont optimisés selon un critère de maximum de vraisemblance pour approcher le plus possible la distribution recherchée.
Cette procédure se fait le plus souvent itérativement via l'algorithme Maximisation des attentes.
Les modèles de mélange gaussien sont réputés pour reconstruire de manière particulièrement efficace les données manquantes dans un jeu de données expérimentales.
Testé sous Anaconda et Python 3.7
from sklearn import mixture import numpy as np import matplotlib.pyplot as plt mu_0 = 5.0 srd_0 = 2.0 data = np.random.randn(100000) data = data * srd_0 + mu_0 data = data.reshape(-1, 1) hx, hy, _ = plt.hist(data, bins=50, density=1,color="lightblue") plt.ylim(0.0,max(hx)+0.05) plt.title('Gaussian mixture example 01') plt.grid() plt.xlim(mu_0-4*srd_0,mu_0+4*srd_0) plt.savefig("example_gmm_01.png", bbox_inches='tight') plt.show() gmm = mixture.GaussianMixture(n_components=1, covariance_type='full').fit(data) print(gmm.means_) print(np.sqrt(gmm.covariances_)) [[5.00715457]] [[[1.99746652]]] print(np.mean(data)) print(np.std(data)) 4.998997166872173 2.0008903305868855 mu_1 = 2.0 srd_1 = 4.0 mu_2 = 10.0 srd_2 = 1.0 new_data = np.random.randn(50000) data_1 = new_data * srd_1 + mu_1 new_data = np.random.randn(50000) data_2 = new_data * srd_2 + mu_2 new_data = np.concatenate((data_1, data_2), axis=0) new_data = new_data.reshape(-1, 1) hx, hy, _ = plt.hist(new_data, bins=100, density=1,color="lightblue") plt.title('Gaussian mixture example 02') plt.grid() plt.savefig("example_gmm_02.png", bbox_inches='tight') plt.show()
Source : https://www.moonbooks.org/Articles/How-to-use-a-Gaussian-mixture-model-GMM-with-sklearn-in-python-/
Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !
Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License