def fit_gmm(data, prefix):
# Fit GMM to histogram
X, _ = np.histogram(data, normed=True, bins=10)
X = np.expand_dims(X, 1)
gmm = GaussianMixture(n_components=2).fit(X)
# Get means / variances in order of ascending mean
mu = np.array([gmm.means_[0][0], gmm.means_[1][0]])
var = np.array([gmm.covariances_[0][0], gmm.covariances_[1][0]])
order = np.argsort(mu)
# Means/variances of each component
mu_0, mu_1 = mu[order]
var_0, var_1 = var[order]
return {'{}_mu0'.format(prefix): mu_0,
'{}_mu1'.format(prefix): mu_1,
'{}_var0'.format(prefix): var_0[0],
'{}_var1'.format(prefix): var_1[0]}
评论列表
文章目录