我想使用sklearn.mixture.GaussianMixture来存储高斯混合模型,以便以后可以使用它来生成样本或使用score_samples
方法在样本点处生成值。这是一个示例,其中组件具有以下权重、均值和协方差
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]]])
然后我将混合物初始化如下
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)
最后,我尝试根据导致错误的参数生成样本:
x = gmix.sample(1000)
NotFittedError: This GaussianMixture instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
据我了解,GaussianMixture 旨在使用混合高斯拟合样本,但有没有办法为其提供最终值并从那里继续?