Je souhaite utiliser sklearn.mixture.GaussianMixture pour stocker un modèle de mélange gaussien afin de pouvoir l'utiliser ultérieurement pour générer des échantillons ou une valeur à un point d'échantillonnage en utilisant la méthode score_samples
. Voici un exemple où les composants ont le poids suivant, moyenne et covariancesInitialisation de GaussianMixture en utilisant les paramètres de composant - sklearn
import numpy as np
weights = np.array([0.6322941277066596, 0.3677058722933399])
mu = np.array([[0.9148052872961359, 1.9792961751316835],
[-1.0917396392992502, -0.9304220945910037]])
sigma = np.array([[[2.267889129267119, 0.6553245618368836],
[0.6553245618368835, 0.6571014653342457]],
[[0.9516607767206848, -0.7445831474157608],
[-0.7445831474157608, 1.006599716443763]]])
J'initialisés le mélange comme suivre
from sklearn import mixture
gmix = mixture.GaussianMixture(n_components=2, covariance_type='full')
gmix.weights_ = weights # mixture weights (n_components,)
gmix.means_ = mu # mixture means (n_components, 2)
gmix.covariances_ = sigma # mixture cov (n_components, 2, 2)
Enfin j'ai essayé de générer un échantillon en fonction des paramètres qui ont abouti à une erreur:
x = gmix.sample(1000)
NotFittedError: This GaussianMixture instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
Si je comprends GaussianMixture est destiné à adapter un échantillon en utilisant un mélange de gaussiennes, mais est-il possible de lui fournir les valeurs finales et co à partir de là?
Vous devez d'abord envoyer vos données dans le modèle pour les former, puis générer uniquement des échantillons aléatoires. Voir la [documentation de sample()] (http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture.sample) –
Je n'ai pas d'initial les données que j'ai sont les paramètres de chaque composant. Je suis à la recherche d'une solution de contournement ou d'une bibliothèque python alternative. – hashmuke