本文整理汇总了Python中sklearn.mixture.GMM属性的典型用法代码示例。如果您正苦于以下问题:Python mixture.GMM属性的具体用法?Python mixture.GMM怎么用?Python mixture.GMM使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类sklearn.mixture
的用法示例。
在下文中一共展示了mixture.GMM属性的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: fit
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def fit(self, data_generator, force=False, test=False):
if force or not self.storage.check_exists(self.model_path):
self._transform = GMM(
n_components=self.n_components,
covariance_type=self.covariance_type,
n_iter=self.n_iter, n_init=self.n_init)
def mid_generator():
for t, des in data_generator:
yield des
X = np.vstack(mid_generator())
if test:
X = X[0:100000, :]
self._transform.fit(X)
joblib.dump(self._transform, self.model_path)
else:
self._transform = joblib.load(self.model_path)
示例2: find_best_n_componenets
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def find_best_n_componenets(X, electrodes, event_id, bipolar, from_t, to_t, time_split, meg_data_dic, elec_data, gk_sigma):
cond = utils.first_key(event_id)
all_errors = []
all_clusters = []
for n_components in range(1, X.shape[0]):
gmm = mixture.GMM(n_components=n_components, covariance_type='spherical')
gmm.fit(X)
clusters = gmm.predict(X)
unique_clusters = np.unique(clusters)
cluster_errors = []
for cluster in unique_clusters:
cluster_electrodes = np.array(electrodes)[np.where(clusters == cluster)].tolist()
elec_errors, elec_ps = reconstruct_meg(event_id, cluster_electrodes, from_t, to_t, time_split, gk_sigma=gk_sigma,
plot_results=False, bipolar=bipolar, dont_calc_new_csd=True, all_meg_data=meg_data_dic,
elec_data=elec_data, njobs=1)
cluster_errors.append(max(elec_errors[cond].values()))
print(n_components, max(cluster_errors))
all_clusters.append(clusters)
all_errors.append(max(cluster_errors))
utils.save((all_clusters, all_errors), get_pkl_file('{}_best_n_componenets'.format(cond)))
plt.plot(all_errors)
plt.show()
示例3: test_GMM_attributes
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def test_GMM_attributes():
n_components, n_features = 10, 4
covariance_type = 'diag'
g = mixture.GMM(n_components, covariance_type, random_state=rng)
weights = rng.rand(n_components)
weights = weights / weights.sum()
means = rng.randint(-20, 20, (n_components, n_features))
assert_true(g.n_components == n_components)
assert_true(g.covariance_type == covariance_type)
g.weights_ = weights
assert_array_almost_equal(g.weights_, weights)
g.means_ = means
assert_array_almost_equal(g.means_, means)
covars = (0.1 + 2 * rng.rand(n_components, n_features)) ** 2
g.covars_ = covars
assert_array_almost_equal(g.covars_, covars)
assert_raises(ValueError, g._set_covars, [])
assert_raises(ValueError, g._set_covars,
np.zeros((n_components - 2, n_features)))
assert_raises(ValueError, mixture.GMM, n_components=20,
covariance_type='badcovariance_type')
示例4: _setUp
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def _setUp(self):
self.n_components = 10
self.n_features = 4
self.weights = rng.rand(self.n_components)
self.weights = self.weights / self.weights.sum()
self.means = rng.randint(-20, 20, (self.n_components, self.n_features))
self.threshold = -0.5
self.I = np.eye(self.n_features)
self.covars = {
'spherical': (0.1 + 2 * rng.rand(self.n_components,
self.n_features)) ** 2,
'tied': (make_spd_matrix(self.n_features, random_state=0)
+ 5 * self.I),
'diag': (0.1 + 2 * rng.rand(self.n_components,
self.n_features)) ** 2,
'full': np.array([make_spd_matrix(self.n_features, random_state=0)
+ 5 * self.I for x in range(self.n_components)])}
# This function tests the deprecated old GMM class
示例5: test_train_degenerate
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def test_train_degenerate(self, params='wmc'):
# Train on degenerate data with 0 in some dimensions
# Create a training set by sampling from the predefined
# distribution.
X = rng.randn(100, self.n_features)
X.T[1:] = 0
g = self.model(n_components=2,
covariance_type=self.covariance_type,
random_state=rng, min_covar=1e-3, n_iter=5,
init_params=params)
with ignore_warnings(category=DeprecationWarning):
g.fit(X)
trainll = g.score(X)
self.assertTrue(np.sum(np.abs(trainll / 100 / X.shape[1])) < 5)
# This function tests the deprecated old GMM class
示例6: test_train_1d
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def test_train_1d(self, params='wmc'):
# Train on 1-D data
# Create a training set by sampling from the predefined
# distribution.
X = rng.randn(100, 1)
# X.T[1:] = 0
g = self.model(n_components=2,
covariance_type=self.covariance_type,
random_state=rng, min_covar=1e-7, n_iter=5,
init_params=params)
with ignore_warnings(category=DeprecationWarning):
g.fit(X)
trainll = g.score(X)
if isinstance(g, mixture.dpgmm._DPGMMBase):
self.assertTrue(np.sum(np.abs(trainll / 100)) < 5)
else:
self.assertTrue(np.sum(np.abs(trainll / 100)) < 2)
# This function tests the deprecated old GMM class
示例7: test_fit_predict
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def test_fit_predict():
"""
test that gmm.fit_predict is equivalent to gmm.fit + gmm.predict
"""
lrng = np.random.RandomState(101)
n_samples, n_dim, n_comps = 100, 2, 2
mu = np.array([[8, 8]])
component_0 = lrng.randn(n_samples, n_dim)
component_1 = lrng.randn(n_samples, n_dim) + mu
X = np.vstack((component_0, component_1))
for m_constructor in (mixture.GMM, mixture.VBGMM, mixture.DPGMM):
model = m_constructor(n_components=n_comps, covariance_type='full',
min_covar=1e-7, n_iter=5,
random_state=np.random.RandomState(0))
assert_fit_predict_correct(model, X)
model = mixture.GMM(n_components=n_comps, n_iter=0)
z = model.fit_predict(X)
assert np.all(z == 0), "Quick Initialization Failed!"
# This function tests the deprecated old GMM class
示例8: test_aic
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def test_aic():
# Test the aic and bic criteria
n_samples, n_dim, n_components = 50, 3, 2
X = rng.randn(n_samples, n_dim)
SGH = 0.5 * (X.var() + np.log(2 * np.pi)) # standard gaussian entropy
for cv_type in ['full', 'tied', 'diag', 'spherical']:
g = mixture.GMM(n_components=n_components, covariance_type=cv_type,
random_state=rng, min_covar=1e-7)
g.fit(X)
aic = 2 * n_samples * SGH * n_dim + 2 * g._n_parameters()
bic = (2 * n_samples * SGH * n_dim +
np.log(n_samples) * g._n_parameters())
bound = n_dim * 3. / np.sqrt(n_samples)
assert_true(np.abs(g.aic(X) - aic) / n_samples < bound)
assert_true(np.abs(g.bic(X) - bic) / n_samples < bound)
# This function tests the deprecated old GMM class
示例9: get_gmm_for_stack
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def get_gmm_for_stack(vals, thresh=10, num_sizes=2):
''' Assume no more than num_sizes font sizes present... '''
if len(vals) > 30:
# vals = [v for v in vals if vals.count(v) > 2]
# counts = Counter(vals)
# vals = [v for v in counts if counts[v] > 2]
n_components = num_sizes
elif len(vals) == 1:
gmm = GMM()
gmm.means_ = np.array(vals).reshape((1,1))
# gmm.labels_ = np.array([0])
return gmm
else:
n_components = 1
gmm = GMM(n_components=2)
gmm.fit(np.array(vals).reshape(len(vals), 1))
return gmm
# while True:
# gmm = GMM(n_components=n_components)
# try:
# gmm.fit(vals)
# except:
# print vals, n_components
# raise
# # gmm.labels_ = np.argsort(gmm.means_)
# means = list(gmm.means_.copy().flatten())
# means.sort()
# if n_components > 1:
# for i, m in enumerate(means[:-1]):
# if means[i+1] - m < thresh or not gmm.converged_:
#
# n_components -= 1
# break
# else:
# return gmm
# elif n_components == 1:
# return gmm
示例10: GetGoalModel
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def GetGoalModel(self,objs,preset=None):
if preset is None:
robot = RobotFeatures()
else:
robot = RobotFeatures(preset=preset)
if 'gripper' in objs:
objs.remove('gripper')
for obj in objs:
robot.AddObject(obj)
dims = robot.max_index
K = self.action_model.n_components
goal = GMM(n_components=K,covariance_type="full")
goal.weights_ = self.action_model.weights_
goal.means_ = np.zeros((K,dims))
goal.covars_ = np.zeros((K,dims,dims))
idx = robot.GetDiffIndices(objs)
print objs
for k in range(K):
goal.means_[k,:] = self.action_model.means_[k,idx]
for j in range(dims):
goal.covars_[k,j,idx] = self.action_model.covars_[k,j,idx]
return goal
示例11: process
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def process(self):
females, males = self.get_file_paths(self.females_training_path,
self.males_training_path)
# collect voice features
female_voice_features = self.collect_features(females)
male_voice_features = self.collect_features(males)
# generate gaussian mixture models
females_gmm = GMM(n_components = 16, n_iter = 200, covariance_type='diag', n_init = 3)
males_gmm = GMM(n_components = 16, n_iter = 200, covariance_type='diag', n_init = 3)
# fit features to models
females_gmm.fit(female_voice_features)
males_gmm.fit(male_voice_features)
# save models
self.save_gmm(females_gmm, "females")
self.save_gmm(males_gmm, "males")
示例12: estim_gmm_params
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def estim_gmm_params(features, prob):
""" with given soft labeling (take the maxim) get the GMM parameters
:param ndarray features:
:param ndarray prob:
:return:
>>> np.random.seed(0)
>>> prob = np.array([[1, 0]] * 30 + [[0, 1]] * 40)
>>> fts = prob + np.random.random(prob.shape)
>>> mm = estim_gmm_params(fts, prob)
>>> mm['weights']
[0.42857142857142855, 0.5714285714285714]
>>> mm['means']
array([[ 1.49537196, 0.53745455],
[ 0.54199936, 1.42606497]])
"""
nb_samples, nb_classes = prob.shape
labels = np.argmax(prob, axis=1)
gmm_params = {'weights': [], 'means': [], 'covars': []}
for lb in range(nb_classes):
labels_sel = (labels == lb)
gmm_params['weights'].append(np.sum(labels_sel) / float(nb_samples))
gmm_params['means'].append(np.mean(features[labels_sel], axis=0))
gmm_params['covars'].append(np.cov(features[labels_sel]))
for n in ['means', 'covars']:
gmm_params[n] = np.array([m.tolist() for m in gmm_params[n]])
return gmm_params
示例13: estim_class_model_gmm
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def estim_class_model_gmm(features, nb_classes, init='kmeans'):
""" from all features estimate Gaussian Mixture Model and assuming
each cluster is a single class compute probability that each feature
belongs to each class
:param [[float]] features: list of features per segment
:param int nb_classes: number of classes
:param int init: initialisation
:return [[float]]: probabilities that each feature belongs to each class
>>> np.random.seed(0)
>>> fts = np.row_stack([np.random.random((50, 3)) - 1,
... np.random.random((50, 3)) + 1])
>>> mm = estim_class_model_gmm(fts, 2)
>>> mm.predict_proba(fts).shape
(100, 2)
"""
logging.debug('estimate GMM for all given features %r and %i component',
features.shape, nb_classes)
# http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GMM.html
gmm = mixture.GaussianMixture(n_components=nb_classes,
covariance_type='full', max_iter=99)
if init == 'kmeans':
# http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html
kmeans = cluster.KMeans(n_clusters=nb_classes, init='k-means++',
n_jobs=-1)
y = kmeans.fit_predict(features)
gmm.fit(features, y)
else:
gmm.fit(features)
logging.info('compute probability of each feature to all component')
return gmm
示例14: analyze_best_n_componenets
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def analyze_best_n_componenets(event_id, bipolar, from_t, to_t, time_split, gk_sigma=3,
electrodes_positive=True, electrodes_normalize=True, njobs=4):
cond = utils.first_key(event_id)
all_clusters, all_errors = utils.load(get_pkl_file('{}_best_n_componenets'.format(cond)))
electrodes, errors, pss = utils.load(get_pkl_file('{}_calc_p_for_each_electrode.pkl'.format(cond)))
elec_data = load_electrodes_data(event_id, bipolar, electrodes, from_t, to_t,
subtract_min=electrodes_positive, normalize_data=electrodes_normalize)
meg_data_dic = load_all_dics(freqs_bin, event_id, bipolar, electrodes, from_t, to_t, gk_sigma, dont_calc_new_csd=True, njobs=njobs)
X = utils.stack(pss)
for k, cluster_error in enumerate(all_errors):
print(k, cluster_error)
plt.plot(all_errors)
plt.show()
gmm = mixture.GMM(n_components=22, covariance_type='spherical')
gmm.fit(X)
clusters = gmm.predict(X)
unique_clusters = np.unique(clusters)
cluster_errors = []
for cluster in unique_clusters:
cluster_electrodes = np.array(electrodes)[np.where(clusters == cluster)].tolist()
elec_errors, elec_ps = reconstruct_meg(event_id, cluster_electrodes, from_t, to_t, time_split, gk_sigma=gk_sigma,
plot_results=True, bipolar=bipolar, dont_calc_new_csd=True, all_meg_data=meg_data_dic,
elec_data=elec_data, njobs=1)
cluster_errors.append(max(elec_errors[cond].values()))
示例15: gmmRemovingOutlierForClassifier
# 需要导入模块: from sklearn import mixture [as 别名]
# 或者: from sklearn.mixture import GMM [as 别名]
def gmmRemovingOutlierForClassifier():
"""
use GMM model to remove outlier
:return: NA
"""
# load data
X_train = np.load('inputClf_small/X_train.npy')
y_train = np.load('inputClf_small/y_train.npy')
y_train_price = np.load('inputClf_small/y_train_price.npy')
# classifier initialize
classifier = GMM(n_components=2,covariance_type='full', init_params='wmc', n_iter=20)
# cluster initializing
X_train1 = X_train[np.where(y_train==0)[0], :]
X_train2 = X_train[np.where(y_train==1)[0], :]
cluster1 = KMeans(init='random', n_clusters=1, random_state=0).fit(X_train1)
cluster1 = cluster1.cluster_centers_
cluster2 = KMeans(init='random', n_clusters=1, random_state=0).fit(X_train2)
cluster2 = cluster2.cluster_centers_
clusters = np.concatenate((cluster1, cluster2), axis=0)
classifier.means_ = clusters
# Train the other parameters using the EM algorithm.
classifier.fit(X_train)
# predict
y_train_pred = classifier.predict(X_train)
train_accuracy = np.mean(y_train_pred.ravel() == y_train.ravel()) * 100
print "Keep {}% data.".format(train_accuracy)
# keep the data which are not outliers
y_train_pred = y_train_pred.reshape((y_train_pred.shape[0], 1))
X_train = X_train[np.where(y_train==y_train_pred)[0], :]
y_train_price = y_train_price[np.where(y_train==y_train_pred)[0], :]
y_train = y_train[np.where(y_train==y_train_pred)[0], :]
np.save('inputClf_GMMOutlierRemoval/X_train', X_train)
np.save('inputClf_GMMOutlierRemoval/y_train', y_train)
np.save('inputClf_GMMOutlierRemoval/y_train_price', y_train_price)