Spec-Zone.ru › scikit-learn

GaussianMixture

classsklearn.mixture.GaussianMixture(n_components=1, *, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weights_init=None, means_init=None, precisions_init=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)[исходный код]

Гауссова смесь.

Представление вероятностного распределения модели гауссовой смеси. Этот класс позволяет оценивать параметры распределения гауссовой смеси.

Подробнее см. в руководстве пользователя.

Добавлено в версии 0.18.

Параметры:
n_componentsint, по умолчанию=1

Количество компонентов смеси.

covariance_type{‘full’, ‘tied’, ‘diag’, ‘spherical’}, по умолчанию=’full’

Строка, задающая тип используемых параметров ковариации. Должна иметь одно из значений:

  • ‘full’: каждый компонент имеет собственную общую матрицу ковариации.
  • ‘tied’: все компоненты используют одну и ту же общую матрицу ковариации.
  • ‘diag’: каждый компонент имеет собственную диагональную матрицу ковариации.
  • ‘spherical’: каждый компонент имеет собственную единственную дисперсию.

Пример использования covariance_type см. в разделе Выбор модели гауссовой смеси.

tolfloat, по умолчанию=1e-3

Порог сходимости. Итерации EM прекращаются, когда средний прирост нижней границы становится меньше этого порога.

reg_covarfloat, по умолчанию=1e-6

Неотрицательная регуляризация, добавляемая к диагонали ковариационной матрицы. Позволяет гарантировать положительную определённость всех матриц ковариации.

max_iterint, по умолчанию=100

Количество выполняемых итераций EM.

n_initint, по умолчанию=1

Количество выполняемых инициализаций. Сохраняются лучшие результаты.

init_params{‘kmeans’, ‘k-means++’, ‘random’, ‘random_from_data’}, по умолчанию=’kmeans’

Метод, используемый для инициализации весов, средних и точностей. Строка должна иметь одно из значений:

  • ‘kmeans’ : ответственности инициализируются с помощью k-means.
  • ‘k-means++’ : используется метод k-means++ для инициализации.
  • ‘random’ : ответственности инициализируются случайным образом.
  • ‘random_from_data’ : начальные средние выбираются случайным образом из точек данных.

Изменено в версии v1.1: init_params теперь поддерживает ‘random_from_data’ и ‘k-means++’ в качестве методов инициализации.

weights_initмассивоподобный объект формы (n_components, ), по умолчанию=None

Начальные веса, заданные пользователем. Если значение равно None, веса инициализируются с помощью метода init_params.

means_initмассивоподобный объект формы (n_components, n_features), по умолчанию=None

Начальные средние, заданные пользователем. Если значение равно None, средние инициализируются с помощью метода init_params.

precisions_initмассивоподобный объект, по умолчанию=None

Начальные точности, заданные пользователем (обратные матрицы ковариации). Если значение равно None, точности инициализируются с помощью метода ‘init_params’. Форма зависит от ‘covariance_type’:

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
random_stateint, экземпляр RandomState или None, по умолчанию=None

Управляет начальным значением генератора случайных чисел, передаваемым методу, выбранному для инициализации параметров (см. init_params). Кроме того, управляет генерацией случайных выборок из обученного распределения (см. метод sample). Передайте int, чтобы обеспечить воспроизводимость результатов при нескольких вызовах функции. См. глоссарий.

warm_startbool, по умолчанию=False

Если ‘warm_start’ имеет значение True, решение последнего обучения используется для инициализации при следующем вызове fit(). Это может ускорить сходимость, когда fit вызывается несколько раз для похожих задач. В этом случае ‘n_init’ игнорируется, и при первом вызове выполняется только одна инициализация. См. глоссарий.

verboseint, по умолчанию=0

Включает подробный вывод. Если значение равно 1, выводятся текущая инициализация и каждый шаг итерации. Если значение больше 1, также выводятся логарифм вероятности и время, затраченное на каждый шаг.

verbose_intervalint, по умолчанию=10

Количество итераций до следующего вывода.

Атрибуты:
weights_массивоподобный объект формы (n_components,)

Веса каждого компонента смеси.

means_массивоподобный объект формы (n_components, n_features)

Среднее значение каждого компонента смеси.

covariances_массивоподобный объект

Ковариация каждого компонента смеси. Форма зависит от covariance_type:

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'

Пример использования ковариаций см. в разделе Ковариации GMM.

precisions_массивоподобный объект

Матрицы точности для каждого компонента смеси. Матрица точности — это обратная матрица ковариации. Матрица ковариации является симметричной и положительно определённой, поэтому смесь гауссовых распределений может быть эквивалентно задана матрицами точности. Хранение матриц точности вместо матриц ковариации повышает эффективность вычисления логарифма правдоподобия новых выборок во время тестирования. Форма зависит от covariance_type:

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
precisions_cholesky_массивоподобный объект

Разложение Холецкого матриц точности каждого компонента смеси. Матрица точности — это обратная матрица ковариации. Матрица ковариации является симметричной и положительно определённой, поэтому смесь гауссовых распределений может быть эквивалентно задана матрицами точности. Хранение матриц точности вместо матриц ковариации повышает эффективность вычисления логарифма правдоподобия новых выборок во время тестирования. Форма зависит от covariance_type:

(n_components,)                        if 'spherical',
(n_features, n_features)               if 'tied',
(n_components, n_features)             if 'diag',
(n_components, n_features, n_features) if 'full'
converged_bool

True, если достигнута сходимость наилучшего результата EM, иначе False.

n_iter_int

Количество шагов, использованных наилучшим результатом EM для достижения сходимости.

lower_bound_float

Значение нижней границы логарифма правдоподобия (обучающих данных относительно модели) для наилучшего результата EM.

lower_bounds_массивоподобный объект формы (n_iter_,)

Список значений нижней границы логарифма правдоподобия для каждой итерации наилучшего результата EM.

n_features_in_int

Количество признаков, полученных во время обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, полученных во время обучения. Определён только в том случае, если X содержит названия признаков, все из которых являются строками.

Добавлено в версии 1.0.

См. также

BayesianGaussianMixture

Модель гауссовой смеси, обученная методом вариационного вывода.

Примеры

>>> import numpy as np
>>> from sklearn.mixture import GaussianMixture
>>> X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
>>> gm = GaussianMixture(n_components=2, random_state=0).fit(X)
>>> gm.means_
array([[10.,  2.],
       [ 1.,  2.]])
>>> gm.predict([[0, 0], [12, 3]])
array([1, 0])

Сравнение гауссовой смеси с другими алгоритмами кластеризации см. в разделе Сравнение различных алгоритмов кластеризации на тестовых наборах данных.

Иллюстрацию поверхности отрицательного логарифма правдоподобия модели GaussianMixture см. в разделе Оценка плотности для гауссовой смеси.

aic(X)[исходный код]

Информационный критерий Акаике для текущей модели на входных данных X.

Подробнее о формуле используемого AIC см. в этом математическом разделе.

Параметры:
Xмассив формы (n_samples, n_dimensions)

Входные выборки.

Возвращает:
aicfloat

Чем меньше значение, тем лучше.

bic(X)[исходный код]

Байесовский информационный критерий для текущей модели на входных данных X.

Подробнее о формуле используемого BIC см. в этом математическом разделе.

Пример выбора GMM с использованием информационного критерия bic см. в разделе Выбор модели гауссовой смеси.

Параметры:
Xмассив формы (n_samples, n_dimensions)

Входные выборки.

Возвращает:
bicfloat

Чем меньше значение, тем лучше.

fit(X, y=None)[исходный код]

Оценивает параметры модели с помощью алгоритма EM.

Метод обучает модель n_init раз и задаёт параметры, при которых правдоподобие или нижняя граница модели максимальны. В каждой попытке метод выполняет чередование E-шага и M-шага max_iter раз, пока изменение правдоподобия или нижней границы не станет меньше tol; в противном случае возникает исключение ConvergenceWarning. Если warm_start имеет значение True, то n_init игнорируется и при первом вызове выполняется одна инициализация. При последующих вызовах обучение продолжается с того места, на котором остановилось.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

yИгнорируется

Не используется; присутствует для согласованности API согласно соглашению.

Возвращает:
selfобъект

Обученная смесь.

fit_predict(X, y=None)[исходный код]

Оценивает параметры модели по X и предсказывает метки для X.

Метод обучает модель n_init раз и задаёт параметры, при которых правдоподобие или нижняя граница модели максимальны. В каждой попытке метод выполняет чередование E-шага и M-шага max_iter раз, пока изменение правдоподобия или нижней границы не станет меньше tol; в противном случае возникает предупреждение ConvergenceWarning. После обучения для входных точек данных предсказывается наиболее вероятная метка.

Добавлено в версии 0.20.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

yИгнорируется

Не используется; присутствует для согласованности API согласно соглашению.

Возвращает:
labelsмассив, форма (n_samples,)

Метки компонентов.

get_metadata_routing()[исходный код]

Получает маршрутизацию метаданных этого объекта.

О том, как работает механизм маршрутизации, см. в руководстве пользователя.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Получает параметры этого оценивателя.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценивателя и содержащихся в нём вложенных объектов, являющихся оценивателями.

Возвращает:
paramsdict

Имена параметров, сопоставленные их значениям.

predict(X)[исходный код]

Предсказывает метки для выборок данных в X с помощью обученной модели.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

Возвращает:
labelsмассив, форма (n_samples,)

Метки компонентов.

predict_proba(X)[исходный код]

Вычисляет плотность компонентов для каждой выборки.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

Возвращает:
respмассив, форма (n_samples, n_components)

Плотность каждого гауссова компонента для каждой выборки в X.

sample(n_samples=1)[исходный код]

Генерирует случайные выборки из обученного распределения Гаусса.

Параметры:
n_samplesint, по умолчанию=1

Количество генерируемых выборок.

Возвращает:
Xмассив, форма (n_samples, n_features)

Случайно сгенерированная выборка.

yмассив, форма (nsamples,)

Метки компонентов.

score(X, y=None)[исходный код]

Вычисляет средний логарифм правдоподобия для каждой выборки заданных данных X.

Параметры:
Xмассивоподобный объект формы (n_samples, n_dimensions)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

yИгнорируется

Не используется; присутствует для согласованности API согласно соглашению.

Возвращает:
log_likelihoodfloat

Логарифм правдоподобия X в модели гауссовой смеси.

score_samples(X)[исходный код]

Вычисляет логарифм правдоподобия каждой выборки.

Параметры:
Xмассивоподобный объект формы (n_samples, n_features)

Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.

Возвращает:
log_probмассив, форма (n_samples,)

Логарифм правдоподобия каждой выборки в X согласно текущей модели.

set_params(**params)[исходный код]

Задаёт параметры этого оценивателя.

Метод работает как с простыми оценивателями, так и с вложенными объектами (например, Pipeline). Параметры последних имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценивателя.

Возвращает:
selfэкземпляр оценивателя

Экземпляр оценивателя.

Примеры в галерее

Сравнение различных алгоритмов кластеризации на тестовых наборах данных

Демонстрация предположений k-means

Эллипсоиды модели смеси гауссовых распределений

Ковариации GMM

Методы инициализации GMM

Оценка плотности для смеси гауссовых распределений

Выбор модели смеси гауссовых распределений

Синусоида и модель смеси гауссовых распределений

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.mixture.GaussianMixture.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API