In [1]:
import sklearn
import matplotlib.pyplot as plt
In [2]:
from sklearn import datasets
In [3]:
from sklearn.mixture import GaussianMixture
In [4]:
import numpy
In [5]:
iris = datasets.load_iris()
In [6]:
from sklearn.model_selection import StratifiedKFold
In [7]:
skf = StratifiedKFold(n_splits=4)
In [8]:
train_index, test_index = next(iter(skf.split(iris.data, iris.target)))
In [23]:
X_train = iris.data[train_index]
y_train = iris.target[train_index]
X_test = iris.data[test_index]
y_test = iris.target[test_index]
In [10]:
n_classes = len(numpy.unique(y_train))
In [11]:
n_classes
Out[11]:
In [14]:
estimators = dict((cov_type, GaussianMixture(n_components=n_classes, covariance_type=cov_type, max_iter=20, random_state=0)) for cov_type in ['spherical', 'diag', 'tied', 'full'])
In [16]:
y_train
Out[16]:
In [17]:
estd = estimators['diag']
In [26]:
estd.means_init = numpy.array([X_train[y_train == i].mean(axis=0) for i in range(n_classes)])
In [27]:
estd.means_init
Out[27]:
In [ ]: