BayesianGaussianMixture#

класс sklearn.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, по умолчанию=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, default=None

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

mean_precision_priorfloat или None, default=None

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

mean_priorarray-like, форма (n_features,), по умолчанию=None

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

degrees_of_freedom_priorfloat или None, default=None

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

covariance_priorfloat или array-like, по умолчанию=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_array-like формы (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 формы (n_iter_,)

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

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 или 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 формы (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-шаг и M-шаг для max_iter раз, пока изменение правдоподобия или нижней границы не станет меньше tol, в противном случае, ConvergenceWarning вызывается. Если warm_start является True, затем n_init игнорируется, и единичная инициализация выполняется при первом вызове. При последующих вызовах обучение продолжается с того места, где оно остановилось.

Параметры:
Xarray-like формы (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 формы (n_samples, n_features)

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

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

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

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

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

6332()[источник]#

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

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

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

predict(X)[источник]#

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

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

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

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

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

predict_proba(X)[источник]#

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

Параметры:
Xarray-like формы (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.

Параметры:
Xarray-like формы (n_samples, n_dimensions)

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

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

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

Возвращает:
логарифмическое правдоподобиеfloat

Логарифмическое правдоподобие X в рамках модели гауссовской смеси.

score_samples(X)[источник]#

Вычислить логарифмическое правдоподобие для каждого образца.

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

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

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

Логарифм правдоподобия каждого образца в X в рамках текущей модели.

set_params(**params)[источник]#

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

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

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

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

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

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