Spec-Zone.ru › scikit-learn

BayesianGaussianMixture

classsklearn.mixture.BayesianGaussianMixture(*, n_components=1, covariance_type='full', tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params='kmeans', weight_concentration_prior_type='dirichlet_process', weight_concentration_prior=None, mean_precision_prior=None, mean_prior=None, degrees_of_freedom_prior=None, covariance_prior=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)[source]

Вариационное байесовское оценивание гауссовой смеси.

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

Этот класс реализует два типа априорных значений для распределения весов: конечную модель смеси с распределением Дирихле и бесконечную модель смеси с процессом Дирихле. На практике алгоритм вывода процесса Дирихле аппроксимируется и использует усеченное распределение с фиксированным максимальным числом компонент (так называемое представление разрыва палки). Фактическое количество используемых компонент почти всегда зависит от данных.

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

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

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

Количество компонент смеси. В зависимости от данных и значения weight_concentration_prior модель может принять решение не использовать все компоненты, установив некоторые компоненты weights_ значениями, очень близкими к нулю. Поэтому количество эффективных компонент меньше, чем n_components.

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

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

  • ‘full’ (каждая компонента имеет свою общую матрицу ковариации),
  • ‘tied’ (все компоненты используют одну и ту же общую матрицу ковариации),
  • ‘diag’ (каждая компонента имеет свою диагональную матрицу ковариации),
  • ‘spherical’ (каждая компонента имеет свою собственную дисперсию).
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’: ответственности инициализируются с помощью kmeans.
  • ‘k-means++’: используется метод k-means++ для инициализации.
  • ‘random’: ответственности инициализируются случайным образом.
  • ‘random_from_data’: начальные средние значения случайным образом выбираются из точек данных.

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

weight_concentration_prior_type{‘dirichlet_process’, ‘dirichlet_distribution’}, по умолчанию=’dirichlet_process’

Строка, описывающая тип априорного распределения концентрации весов.

weight_concentration_priorfloat или None, по умолчанию=None

Концентрация Дирихле каждой компоненты на распределении весов (Дирихле). Это обычно называется гамма в литературе. Более высокая концентрация сосредотачивает больше массы в центре и приведет к тому, что больше компонент будет активными, в то время как меньший параметр концентрации приведет к большему распределению массы на краю симплекса весов смеси. Значение параметра должно быть больше 0. Если оно равно None, оно устанавливается в 1. / n_components.

mean_precision_priorfloat или None, по умолчанию=None

Априорная точность распределения средних значений (Гаусса). Управляет тем, как далеко могут быть расположены средние значения кластеров. Большие значения концентрируют средние значения кластеров вокруг mean_prior. Значение параметра должно быть больше 0. Если оно равно None, оно устанавливается в 1.

mean_priorмассив, форма (n_features,), по умолчанию=None

Априорное распределение для распределения средних значений (Гаусса). Если оно равно None, оно устанавливается в среднее значение X.

degrees_of_freedom_priorfloat или None, по умолчанию=None

Априорное значение числа степеней свободы для распределений ковариации (Вишарта). Если оно равно None, оно устанавливается в n_features.

covariance_priorfloat или массив, по умолчанию=None

Априорное распределение для распределения ковариации (Вишарта). Если оно равно None, эмпирическое априорное распределение ковариации инициализируется с использованием ковариации X. Форма зависит от covariance_type:

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

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

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

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

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'
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, если достигнута сходимость наилучшей подгонки вывода, False в противном случае.

n_iter_int

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

lower_bound_float

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

weight_concentration_prior_кортеж или float

Концентрация Дирихле каждой компоненты на распределении весов (Дирихле). Тип зависит от weight_concentration_prior_type:

(float, float) if 'dirichlet_process' (Beta parameters),
float          if 'dirichlet_distribution' (Dirichlet parameters).

Чем выше концентрация, тем больше масса сосредоточена в центре, и тем больше компонент будет активными, а более низкий параметр концентрации приведет к большей массе на краю симплекса.

weight_concentration_массив-подобный, форма (n_components,)

Концентрация Дирихле каждой компоненты на распределении весов (Дирихле).

mean_precision_prior_float

Априорная точность распределения средних значений (Гаусса). Управляет тем, как далеко могут быть расположены средние значения кластеров. Большие значения концентрируют средние значения кластеров вокруг mean_prior. Если mean_precision_prior установлено в None, mean_precision_prior_ установлено в 1.

mean_precision_массив-подобный, форма (n_components,)

Точность каждой компоненты на распределении средних значений (Гаусса).

mean_prior_массив-подобный, форма (n_features,)

Априорное распределение для распределения средних значений (Гаусса).

degrees_of_freedom_prior_float

Априорное значение числа степеней свободы для распределений ковариации (Вишарта).

degrees_of_freedom_массив-подобный, форма (n_components,)

Число степеней свободы каждой компоненты в модели.

covariance_prior_float или массив-подобный

Априорное распределение для распределения ковариации (Вишарта). Форма зависит от covariance_type:

(n_features, n_features) if 'full',
(n_features, n_features) if 'tied',
(n_features)             if 'diag',
float                    if 'spherical'
n_features_in_int

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

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

feature_names_in_массив ndarray формы (n_features_in_,)

Имена признаков, увиденные во время fit. Определены только тогда, когда X имеет имена признаков, которые являются строками.

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

См. также

GaussianMixture

Конечная гауссова смесь, обученная методом EM.

Ссылки

[1]

Bishop, Christopher M. (2006). “Распознавание образов и машинное обучение”. Том 4 № 4. Нью-Йорк: Springer.

[2]

Hagai Attias. (2000). “Вариационная байесовская платформа для графических моделей”. В сборнике «Прогресс в обработке информации на нейронных сетях», том 12.

[3]

Blei, David M. and Michael I. Jordan. (2006). “Вариационное вычисление для смесей с распределением Дирихле”. Байесовский анализ 1.1

Примеры

>>> import numpy as np
>>> from sklearn.mixture import BayesianGaussianMixture
>>> X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [12, 4], [10, 7]])
>>> bgm = BayesianGaussianMixture(n_components=2, random_state=42).fit(X)
>>> bgm.means_
array([[2.49... , 2.29...],
       [8.45..., 4.52... ]])
>>> bgm.predict([[0, 0], [9, 3]])
array([0, 1])
fit(X, y=None)[source]

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

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

Параметры:
Xarray-like of shape (n_samples, n_features)

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

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

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

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

Отображённая смесь.

fit_predict(X, y=None)[source]

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

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

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

Параметры:
Xarray-like of shape (n_samples, n_features)

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

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

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

Возвращает:
labelsarray, shape (n_samples,)

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

get_metadata_routing()[source]

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

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

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

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

get_params(deep=True)[source]

Получить параметры этого оценщика.

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

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

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

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

predict(X)[source]

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

Параметры:
Xarray-like of shape (n_samples, n_features)

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

Возвращает:
labelsarray, shape (n_samples,)

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

predict_proba(X)[source]

Оценивает плотность компонент для каждого образца.

Параметры:
Xarray-like of shape (n_samples, n_features)

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

Возвращает:
resparray, shape (n_samples, n_components)

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

sample(n_samples=1)[source]

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

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

Количество образцов для генерации.

Возвращает:
Xarray, shape (n_samples, n_features)

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

yarray, shape (nsamples,)

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

score(X, y=None)[source]

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

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

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

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

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

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

Логарифмическая вероятность X в модели Гауссовского смешения.

score_samples(X)[source]

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

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

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

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

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

set_params(**params)[source]

Установить параметры этого оценщика.

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

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

Параметры оценщика.

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

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

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

Анализ типа предшественника концентрации при изменении байесовского гауссовского смешения

Эллипсоиды модели Гауссовского смешения

Модель гауссовского смешения Синусоидальной кривой

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

Spec-Zone.ru

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