def load_mixture_model(data, use_mgrd=True): if use_mgrd: mm = ExtendedMGRDMixtureModel.load_from_json({'covars': data['gmm_covars'], 'means': data['gmm_means'], 'weights': data['gmm_weights']}) else: n_components =len(np.array(data['gmm_weights'])) mm = GaussianMixture(n_components=n_components, covariance_type='full')#weights_init=np.array(data['gmm_weights']), #reg_covar=np.array(data['gmm_covars']), #means_init=np.array(data['gmm_means']), covariance_type='full') mm.weights_ = np.array(data['gmm_weights']) mm.means_ = np.array(data['gmm_means']) mm.converged_ = True mm.covariances_ = np.array(data['gmm_covars']) mm.precisions_cholesky_ = _compute_precision_cholesky(mm.covariances_, covariance_type='full') mm.n_dims =len(mm.means_[0]) # if 'gmm_precisions_cholesky' not in data.keys(): write_message_to_log("Initialize scipy GMM", LOG_MODE_DEBUG) return mm
def _init_gmm_from_json(self, data): """ Initialize the Gaussian Mixture model. Parameters ---------- * data: dictionary \tThe dictionary must contain all parameters for the Gaussian Mixture Model. """ n_components = len(np.array(data['gmm_weights'])) gmm = GaussianMixture(n_components=n_components, covariance_type='full') gmm.weights_ = np.array(data['gmm_weights']) gmm.means_ = np.array(data['gmm_means']) gmm.converged_ = True gmm.covariances_ = np.array(data['gmm_covars']) gmm.precisions_cholesky_ = _compute_precision_cholesky( gmm.covariances_, covariance_type='full') gmm.n_dims = len(gmm.means_[0]) self.gaussian_mixture_model = gmm