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)[исходный код]

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

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

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

Добавлено в версии 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.

Ссылки

[1]

Бишоп, Кристофер М. (2006). «Распознавание образов и машинное обучение». Том 4, № 4. Нью-Йорк: Springer.

[2]

Хагай Аттиас. (2000). «Вариационная байесовская основа для графических моделей». В сборнике «Достижения в системах обработки нейронной информации 12».

[3]

Блей, Дэвид М. и Майкл И. Джордан. (2006). «Вариационный вывод для смесей процессов Дирихле». Bayesian Analysis 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)[исходный код]

Оценить параметры модели с помощью алгоритма 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)[исходный код]

Оценить параметры модели с использованием 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()[исходный код]

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

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

Возвращает:
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

Spec-Zone.ru

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