def fit(self, data):
if self.n is None:
means = []
stds = []
weights = []
score = []
for n in range(self.n_min, self.n_max):
gmm = GMM(n_components=n, covariance_type='full')
gmm.fit(data)
means.append(gmm.means_)
stds.append(gmm.covars_)
weights.append(gmm.weights_)
if self.n_estimator == 'BIC':
score.append(gmm.bic(data))
i_best = self._chosebestformetric(self.n_estimator, score)
self.means = means[i_best]
self.stds = stds[i_best]
self.weights = weights[i_best]
else:
gmm = GMM(n_components=self.n, covariance_type='full')
gmm.fit(data)
self.means = gmm.means_
self.stds = gmm.covars_
self.weights = gmm.weights_
评论列表
文章目录