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)[исходный код]
-
Вариационная байесовская оценка смеси гауссовых распределений.
Этот класс позволяет вывести приближённое апостериорное распределение параметров смеси гауссовых распределений. Эффективное число компонент можно определить по данным.
В этом классе реализованы два типа априорного распределения весов: модель конечной смеси с распределением Дирихле и модель бесконечной смеси с процессом Дирихле. На практике алгоритм вывода для процесса Дирихле является приближённым и использует усечённое распределение с фиксированным максимальным числом компонент (так называемое представление с разбиением «палочки»). Фактически используемое число компонент почти всегда зависит от данных.
Добавлено в версии 0.18.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- n_componentsint, default=1
-
Число компонент смеси. В зависимости от данных и значения
weight_concentration_priorмодель может решить не использовать все компоненты, задавая для некоторых компонентweights_значения, очень близкие к нулю. Поэтому число эффективных компонент меньше n_components. - covariance_type{‘full’, ‘tied’, ‘diag’, ‘spherical’}, default=’full’
-
Строка, задающая тип используемых параметров ковариации. Возможны следующие значения:
- ‘full’ (у каждой компоненты своя общая ковариационная матрица),
- ‘tied’ (у всех компонент одна общая ковариационная матрица),
- ‘diag’ (у каждой компоненты своя диагональная ковариационная матрица),
- ‘spherical’ (у каждой компоненты своя единственная дисперсия).
- tolfloat, default=1e-3
-
Порог сходимости. Итерации EM прекращаются, когда средний прирост нижней границы правдоподобия (для обучающих данных относительно модели) становится меньше этого порога.
- reg_covarfloat, default=1e-6
-
Неотрицательный коэффициент регуляризации, добавляемый к диагонали ковариационной матрицы. Позволяет гарантировать положительную определённость всех ковариационных матриц.
- max_iterint, default=100
-
Число итераций EM.
- n_initint, default=1
-
Число запусков с разными начальными значениями. Сохраняется результат с наибольшим значением нижней границы правдоподобия.
- init_params{‘kmeans’, ‘k-means++’, ‘random’, ‘random_from_data’}, default=’kmeans’
-
Метод инициализации весов, средних и ковариаций. Возможны следующие значения:
- ‘kmeans’: апостериорные вероятности инициализируются с помощью k-means.
- ‘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’}, default=’dirichlet_process’
-
Строка, задающая тип априорного распределения концентрации весов.
- weight_concentration_priorfloat or None, default=None
-
Параметр концентрации Дирихле для каждой компоненты распределения весов (распределение Дирихле). В литературе его обычно обозначают гамма. Чем выше концентрация, тем большая масса сосредоточена в центре и тем больше компонент будет активно использоваться; при меньшем параметре концентрации большая масса сосредоточена на границе симплекса весов смеси. Значение параметра должно быть больше 0. Если задано None, используется
1. / n_components. - mean_precision_priorfloat or None, default=None
-
Априорная точность распределения средних (гауссово распределение). Определяет область, в которой могут располагаться средние. При больших значениях средние кластеров концентрируются около
mean_prior. Значение параметра должно быть больше 0. Если задано None, используется 1. - mean_priorarray-like, shape (n_features,), default=None
-
Априорное распределение средних (гауссово распределение). Если задано None, используется среднее значение X.
- degrees_of_freedom_priorfloat or None, default=None
-
Априорное распределение числа степеней свободы ковариационных распределений (распределение Уишарта). Если задано None, используется
n_features. - covariance_priorfloat or array-like, default=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 instance or None, default=None
-
Управляет начальным значением генератора случайных чисел, передаваемым выбранному методу инициализации параметров (см.
init_params). Кроме того, управляет генерацией случайных выборок из обученного распределения (см. методsample). Для воспроизводимости результатов при нескольких вызовах функции передайте целое число. См. глоссарий. - warm_startbool, default=False
-
Если ‘warm_start’ имеет значение True, решение, полученное при последнем обучении, используется для инициализации при следующем вызове fit(). Это может ускорить сходимость, если fit вызывается несколько раз для схожих задач. См. глоссарий.
- verboseint, default=0
-
Включает подробный вывод. Если значение равно 1, выводятся текущая инициализация и каждый шаг итерации. Если значение больше 1, также выводятся логарифм вероятности и время, затраченное на каждый шаг.
- verbose_intervalint, default=10
-
Число итераций до следующего вывода.
- Атрибуты:
-
- weights_array-like of shape (n_components,)
-
Веса компонент смеси.
- means_array-like of shape (n_components, n_features)
-
Среднее значение каждой компоненты смеси.
- covariances_array-like
-
Ковариация каждой компоненты смеси. Форма зависит от
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_array-like
-
Матрицы точности для каждой компоненты смеси. Матрица точности является обратной к ковариационной матрице. Ковариационная матрица симметрична и положительно определена, поэтому смесь гауссовых распределений можно эквивалентно задать матрицами точности. Хранение матриц точности вместо ковариационных матриц повышает эффективность вычисления логарифма правдоподобия новых выборок на этапе тестирования. Форма зависит от
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_array-like
-
Разложение Холецкого матриц точности каждой компоненты смеси. Матрица точности является обратной к ковариационной матрице. Ковариационная матрица симметрична и положительно определена, поэтому смесь гауссовых распределений можно эквивалентно задать матрицами точности. Хранение матриц точности вместо ковариационных матриц повышает эффективность вычисления логарифма правдоподобия новых выборок на этапе тестирования. Форма зависит от
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
-
Значение нижней границы свидетельства модели (для обучающих данных) при наилучшем варианте вывода.
-
lower_bounds_array-like of shape (
n_iter_,) -
Список значений нижней границы свидетельства модели для каждой итерации наилучшего варианта вывода.
- weight_concentration_prior_tuple or float
-
Параметр концентрации Дирихле для каждой компоненты распределения весов (распределение Дирихле). Тип зависит от
weight_concentration_prior_type:(float, float) if 'dirichlet_process' (Beta parameters), float if 'dirichlet_distribution' (Dirichlet parameters).
Чем выше концентрация, тем большая масса сосредоточена в центре и тем больше компонент будет активно использоваться; при меньшем параметре концентрации большая масса сосредоточена на границе симплекса.
- weight_concentration_array-like of shape (n_components,)
-
Параметр концентрации Дирихле для каждой компоненты распределения весов (распределение Дирихле).
- mean_precision_prior_float
-
Априорная точность распределения средних (гауссово распределение). Определяет область, в которой могут располагаться средние. При больших значениях средние кластеров концентрируются около
mean_prior. Если для mean_precision_prior задано значение None,mean_precision_prior_принимает значение 1. - mean_precision_array-like of shape (n_components,)
-
Точность каждой компоненты распределения средних (гауссово распределение).
- mean_prior_array-like of shape (n_features,)
-
Априорное распределение средних (гауссово распределение).
- degrees_of_freedom_prior_float
-
Априорное распределение числа степеней свободы ковариационных распределений (распределение Уишарта).
- degrees_of_freedom_array-like of shape (n_components,)
-
Число степеней свободы каждой компоненты модели.
- covariance_prior_float or array-like
-
Априорное распределение ковариаций (распределение Уишарта). Форма зависит от
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 of shape (
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)[исходный код]
-
Оценить параметры модели с помощью алгоритма 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)[исходный код]
-
Оценить параметры модели с использованием X и предсказать метки для X.
Метод подгоняет модель
n_initраз и задаёт параметры, при которых правдоподобие или нижняя граница модели максимальны. В ходе каждой попытки метод выполняет шаги E и Mmax_iterраз, пока изменение правдоподобия или нижней границы не станет меньшеtol; в противном случае вызываетсяConvergenceWarning. После подгонки для входных точек данных предсказывается наиболее вероятная метка.Добавлено в версии 0.20.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.
- yИгнорируется
-
Не используется; присутствует по соглашению для единообразия API.
- Возвращает:
-
- labelsarray, shape (n_samples,)
-
Метки компонент.
- get_metadata_routing()[исходный код]
-
Получить маршрутизацию метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в Руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, default=True
-
Если значение True, будут возвращены параметры этого оценивателя и вложенных объектов, являющихся оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- predict(X)[исходный код]
-
Предсказать метки образцов данных X с помощью обученной модели.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.
- Возвращает:
-
- labelsarray, shape (n_samples,)
-
Метки компонент.
- predict_proba(X)[исходный код]
-
Вычислить плотность компонент для каждого образца.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.
- Возвращает:
-
- resparray, shape (n_samples, n_components)
-
Плотность каждой гауссовой компоненты для каждого образца в X.
- sample(n_samples=1)[исходный код]
-
Сгенерировать случайные выборки из подогнанного гауссова распределения.
- Параметры:
-
- n_samplesint, default=1
-
Число генерируемых выборок.
- Возвращает:
-
- Xarray, shape (n_samples, n_features)
-
Случайно сгенерированная выборка.
- yarray, shape (nsamples,)
-
Метки компонент.
- score(X, y=None)[исходный код]
-
Вычислить среднее значение логарифма правдоподобия для каждого образца заданных данных X.
- Параметры:
-
- Xarray-like of shape (n_samples, n_dimensions)
-
Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.
- yИгнорируется
-
Не используется; присутствует по соглашению для единообразия API.
- Возвращает:
-
- log_likelihoodfloat
-
Логарифм правдоподобия
Xв рамках модели гауссовой смеси.
- score_samples(X)[исходный код]
-
Вычислить логарифм правдоподобия каждого образца.
- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Список точек данных размерности n_features. Каждая строка соответствует одной точке данных.
- Возвращает:
-
- log_probarray, shape (n_samples,)
-
Логарифм правдоподобия каждого образца в
Xсогласно текущей модели.
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.mixture.BayesianGaussianMixture.html