【发布时间】:2021-10-03 02:34:20
【问题描述】:
我想使用 GaussianMixture 来生成随机数据。 参数不应该从数据中学习,而是提供。
GaussianMixture 允许提供权重、均值、精度的初始值,但仍然无法调用“样本”。
例子:
import numpy as np
from sklearn.mixture import GaussianMixture
d = 10
k = 2
_weights = np.random.gamma(shape=1, scale=1, size=k)
data_gmm = GaussianMixture(n_components=k,
weights_init=_weights / _weights.sum(),
means_init=np.random.random((k, d)) * 10,
precisions_init=[np.diag(np.random.random(d)) for _ in range(k)])
data_gmm.sample(100)
这会抛出:
NotFittedError: This GaussianMixture instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.
我试过了:
- 调用
_initialize_parameters()- 这还需要提供数据矩阵,并且不会初始化采样所需的covariances变量。 - 调用
set_params()- 这不允许为采样使用的属性提供值。
任何帮助将不胜感激。
【问题讨论】:
标签: random scikit-learn gmm