def _fix_priors_shape(self):
# If priors are numbers, this function will make them into a
# matrix of proper shape
self.weights_prior = np.broadcast_to(
self.weights_prior, (self.n_components, self.n_mix)).copy()
self.means_prior = np.broadcast_to(
self.means_prior,
(self.n_components, self.n_mix, self.n_features)).copy()
self.means_weight = np.broadcast_to(
self.means_weight,
(self.n_components, self.n_mix)).copy()
if self.covariance_type == "full":
self.covars_prior = np.broadcast_to(
self.covars_prior,
(self.n_components, self.n_mix,
self.n_features, self.n_features)).copy()
self.covars_weight = np.broadcast_to(
self.covars_weight, (self.n_components, self.n_mix)).copy()
elif self.covariance_type == "tied":
self.covars_prior = np.broadcast_to(
self.covars_prior,
(self.n_components, self.n_features, self.n_features)).copy()
self.covars_weight = np.broadcast_to(
self.covars_weight, self.n_components).copy()
elif self.covariance_type == "diag":
self.covars_prior = np.broadcast_to(
self.covars_prior,
(self.n_components, self.n_mix, self.n_features)).copy()
self.covars_weight = np.broadcast_to(
self.covars_weight,
(self.n_components, self.n_mix, self.n_features)).copy()
elif self.covariance_type == "spherical":
self.covars_prior = np.broadcast_to(
self.covars_prior, (self.n_components, self.n_mix)).copy()
self.covars_weight = np.broadcast_to(
self.covars_weight, (self.n_components, self.n_mix)).copy()
评论列表
文章目录