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.
Ссылки
Примеры
>>> 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 и этапом Mmax_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