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экземпляр оценивателя
-
Экземпляр оценивателя.
Примеры в галерее
© 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