2.1. Модели гауссовых смесей
sklearn.mixture — это пакет, позволяющий обучать модели гауссовых смесей (поддерживаются диагональные, сферические, связанные и полные ковариационные матрицы), генерировать из них выборки и оценивать их по данным. Также предоставляются средства, помогающие определить подходящее количество компонентов.
Модель гауссовой смеси из двух компонентов: точки данных и поверхности равной вероятности модели.
Модель гауссовой смеси — это вероятностная модель, предполагающая, что все точки данных получены из смеси конечного числа гауссовых распределений с неизвестными параметрами. Модели смесей можно рассматривать как обобщение кластеризации k-средних, учитывающее не только центры скрытых гауссовых распределений, но и структуру ковариации данных.
Scikit-learn реализует несколько классов для оценки моделей гауссовых смесей, соответствующих различным стратегиям оценивания, которые описаны ниже.
2.1.1. Гауссова смесь
Объект GaussianMixture реализует алгоритм максимизации ожидания (EM) для подгонки моделей гауссовых смесей. Он также может строить эллипсоиды доверительных областей для многомерных моделей и вычислять информационный критерий Байеса для оценки количества кластеров в данных. Предоставляется метод GaussianMixture.fit, который обучает модель гауссовой смеси на обучающих данных. Для тестовых данных метод GaussianMixture.predict может определить для каждого образца гауссово распределение, к которому он, вероятнее всего, относится.
Класс GaussianMixture предоставляет различные варианты ограничений на ковариацию оцениваемых классов: сферическую, диагональную, связанную или полную.
Примеры
- Пример использования гауссовой смеси для кластеризации набора данных ирисов см. в разделе Ковариации GMM.
- Пример построения оценки плотности см. в разделе Оценка плотности для гауссовой смеси.
Преимущества и недостатки класса GaussianMixture
Преимущества
- Скорость:
-
Это самый быстрый алгоритм обучения моделей смесей.
- Непредвзятость:
-
Поскольку этот алгоритм максимизирует только правдоподобие, он не смещает средние значения к нулю и не приводит к определённой структуре размеров кластеров, которая может подходить или не подходить для конкретных данных.
Недостатки
- Сингулярности:
-
Если точек на каждую компоненту смеси недостаточно, оценивание ковариационных матриц становится затруднительным. Известно, что алгоритм может расходиться и находить решения с бесконечным правдоподобием, если искусственно не регуляризовать ковариации.
- Количество компонентов:
-
Этот алгоритм всегда использует все доступные ему компоненты, поэтому при отсутствии внешних подсказок для определения их количества нужны отложенные данные или теоретико-информационные критерии.
Выбор количества компонентов в классической модели гауссовой смеси
Критерий BIC можно эффективно использовать для выбора количества компонентов в гауссовой смеси. Теоретически он позволяет восстановить истинное количество компонентов только в асимптотическом режиме (то есть при наличии большого объёма данных и при условии, что данные действительно независимо и одинаково распределены согласно смеси гауссовых распределений). Обратите внимание: использование вариационной байесовской гауссовой смеси позволяет не задавать количество компонентов модели гауссовой смеси.
Примеры
- Пример выбора модели с использованием классической гауссовой смеси см. в разделе Выбор модели гауссовой смеси.
Алгоритм оценивания: максимизация ожидания
Основная трудность при обучении моделей гауссовых смесей на неразмеченных данных заключается в том, что обычно неизвестно, из какой скрытой компоненты получена каждая точка (если эта информация доступна, подогнать отдельное гауссово распределение для каждой группы точек очень просто). Максимизация ожидания — хорошо обоснованный статистический алгоритм, позволяющий решить эту задачу с помощью итеративного процесса. Сначала предполагаются случайные компоненты (случайным образом центрированные на точках данных, полученные с помощью k-средних или просто распределённые по нормальному закону вокруг начала координат), а затем для каждой точки вычисляется вероятность того, что она была сгенерирована каждой из компонент модели. После этого параметры настраиваются так, чтобы максимизировать правдоподобие данных при заданных назначениях. Повторение этого процесса гарантированно приводит к локальному оптимуму.
Выбор метода инициализации
Для определения начальных центров компонентов модели можно выбрать один из четырёх методов инициализации (а также задать начальные средние значения вручную):
- k-means (по умолчанию)
-
Используется традиционный алгоритм кластеризации k-средних. По сравнению с другими методами инициализации он может требовать значительных вычислительных затрат.
- k-means++
-
Используется метод инициализации кластеризации k-средних — k-means++. Первый центр случайным образом выбирается из данных. Последующие центры выбираются из взвешенного распределения данных, отдающего предпочтение точкам, расположенным дальше от уже выбранных центров. Поскольку k-means++ используется для инициализации k-средних по умолчанию, он работает быстрее, чем полный запуск k-средних, но для больших наборов данных с большим количеством компонентов всё ещё может требовать значительного времени.
- random_from_data
-
В качестве начальных центров случайным образом выбираются точки входных данных. Это очень быстрый метод инициализации, но он может приводить к несходимости, если выбранные точки расположены слишком близко друг к другу.
- random
-
Центры выбираются как небольшое случайное отклонение от среднего значения всех данных. Этот метод прост, но может увеличить время сходимости модели.
Примеры
- Пример использования различных способов инициализации гауссовой смеси см. в разделе Методы инициализации GMM.
2.1.2. Вариационная байесовская гауссова смесь
Объект BayesianGaussianMixture реализует вариант модели гауссовой смеси с алгоритмами вариационного вывода. API этого объекта аналогичен API, определённому для GaussianMixture.
Алгоритм оценивания: вариационный вывод
Вариационный вывод — это расширение максимизации ожидания, которое максимизирует нижнюю границу свидетельства модели (включая априорные распределения), а не правдоподобие данных. В основе вариационных методов лежит тот же принцип, что и в максимизации ожидания (оба являются итеративными алгоритмами, чередующими вычисление вероятностей того, что каждая точка сгенерирована каждой компонентой смеси, и подгонку смеси к назначенным точкам), однако вариационные методы добавляют регуляризацию, используя информацию из априорных распределений. Это позволяет избежать сингулярностей, часто возникающих в решениях, полученных максимизацией ожидания, но вносит в модель некоторые неочевидные смещения. Вывод обычно заметно медленнее, но, как правило, не настолько, чтобы его использование стало непрактичным.
Из-за байесовской природы вариационному алгоритму требуется больше гиперпараметров, чем алгоритму максимизации ожидания. Наиболее важный из них — параметр концентрации weight_concentration_prior. Низкое значение априорного параметра концентрации заставит модель сосредоточить большую часть весов на нескольких компонентах, а веса остальных компонентов сделать очень близкими к нулю. Высокие значения априорного параметра концентрации позволяют активировать большее число компонентов смеси.
Реализация параметров класса BayesianGaussianMixture предлагает два типа априорного распределения весов: конечную модель смеси с распределением Дирихле и бесконечную модель смеси с процессом Дирихле. На практике алгоритм вывода для процесса Дирихле является приближённым и использует усечённое распределение с фиксированным максимальным количеством компонентов (так называемое представление stick-breaking). Фактически используемое количество компонентов почти всегда зависит от данных.
На следующем рисунке сравниваются результаты для разных типов априорного распределения концентрации весов (параметр weight_concentration_prior_type) при различных значениях weight_concentration_prior. Здесь видно, что значение параметра weight_concentration_prior сильно влияет на фактическое количество активных компонентов. Также можно заметить, что высокие значения априорного параметра концентрации весов приводят к более равномерным весам при типе априорного распределения ‘dirichlet_distribution’, тогда как для типа ‘dirichlet_process’ (используемого по умолчанию) это не обязательно так.
В приведённых ниже примерах модели гауссовых смесей с фиксированным количеством компонентов сравниваются с вариационными моделями гауссовых смесей с априорным распределением в виде процесса Дирихле. Здесь классическая гауссова смесь с 5 компонентами подогнана к набору данных, состоящему из 2 кластеров. Видно, что вариационная гауссова смесь с априорным распределением в виде процесса Дирихле может ограничиться только 2 компонентами, тогда как гауссова смесь подгоняет данные с фиксированным количеством компонентов, которое должен заранее задать пользователь. В данном случае пользователь выбрал n_components=5, что не соответствует истинному порождающему распределению этого демонстрационного набора данных. Обратите внимание: при очень малом количестве наблюдений вариационная гауссова смесь с априорным распределением в виде процесса Дирихле может действовать осторожно и подогнать только одну компоненту.
На следующем рисунке мы подгоняем набор данных, который плохо описывается гауссовой смесью. Настройка weight_concentration_prior, параметра объекта BayesianGaussianMixture, позволяет управлять количеством компонентов, используемых для подгонки этих данных. На двух последних графиках также показаны случайные выборки, сгенерированные из двух полученных смесей.
Примеры
- Пример построения эллипсоидов доверительных областей для классов
GaussianMixtureиBayesianGaussianMixtureсм. в разделе Эллипсоиды модели гауссовой смеси. -
В разделе Синусоидальная кривая для модели гауссовой смеси показано, как использовать
GaussianMixtureиBayesianGaussianMixtureдля подгонки синусоиды. - Пример построения эллипсоидов доверительных областей для класса
BayesianGaussianMixtureпри разныхweight_concentration_prior_typeи значениях параметраweight_concentration_priorсм. в разделе Анализ типов априорного распределения концентрации для вариационной байесовской гауссовой смеси.
Преимущества и недостатки вариационного вывода с BayesianGaussianMixture
Преимущества
- Автоматический выбор:
-
Если значение
weight_concentration_priorдостаточно мало, аn_componentsбольше необходимого модели, вариационная байесовская модель смеси естественным образом стремится присвоить весам некоторых компонент значения, близкие к нулю. Это позволяет модели автоматически выбирать подходящее количество эффективных компонентов. Нужно задать лишь его верхнюю границу. Однако обратите внимание, что «идеальное» количество активных компонентов сильно зависит от конкретной задачи и обычно чётко не определено при исследовательском анализе данных. - Меньшая чувствительность к количеству параметров:
-
В отличие от конечных моделей, которые почти всегда используют все компоненты в максимально возможной степени и поэтому дают существенно разные решения при разном количестве компонентов, вариационный вывод с априорным распределением в виде процесса Дирихле (
weight_concentration_prior_type='dirichlet_process') мало меняется при изменении параметров, что повышает стабильность и уменьшает необходимость настройки. - Регуляризация:
-
Благодаря учёту априорной информации вариационные решения реже имеют патологические особые случаи, чем решения, полученные максимизацией ожидания.
Недостатки
- Скорость:
-
Дополнительная параметризация, необходимая для вариационного вывода, замедляет вычисления, хотя и незначительно.
- Гиперпараметры:
-
Алгоритму требуется дополнительный гиперпараметр, который может потребовать экспериментальной настройки с помощью кросс-валидации.
- Смещение:
-
Алгоритмы вывода содержат множество неявных смещений (как и процесс Дирихле, если он используется). Если данные не соответствуют этим смещениям, конечная смесь может позволить подогнать более качественные модели.
2.1.2.1. Процесс Дирихле
Здесь описаны алгоритмы вариационного вывода для смесей на основе процесса Дирихле. Процесс Дирихле — это априорное вероятностное распределение для кластеризаций с бесконечным, неограниченным количеством разбиений. Вариационные методы позволяют учитывать эту априорную структуру в моделях гауссовых смесей почти без увеличения времени вывода по сравнению с конечной моделью гауссовой смеси.
Важный вопрос: как процесс Дирихле может использовать бесконечное, неограниченное количество кластеров и при этом оставаться согласованным? Полное объяснение не помещается в это руководство, но для понимания можно воспользоваться аналогией с процессом разламывания палочки. Процесс разламывания палочки — это порождающий процесс для процесса Дирихле. Мы начинаем с палочки единичной длины и на каждом шаге отламываем часть оставшейся палочки. Каждый раз длина отделённой части соответствует доле точек, попадающих в группу смеси. В конце, чтобы представить бесконечную смесь, оставшуюся часть палочки связывают с долей точек, не попавших ни в одну из остальных групп. Длина каждой части — случайная величина с вероятностью, пропорциональной параметру концентрации. Низкие значения концентрации делят палочку единичной длины на более крупные части (формируя более концентрированное распределение). Высокие значения концентрации создают более мелкие части (увеличивая количество компонентов с ненулевыми весами).
Вариационные методы вывода для процесса Дирихле по-прежнему используют конечное приближение этой бесконечной модели смеси, но вместо того, чтобы заранее задавать желаемое количество компонентов, достаточно указать параметр концентрации и верхнюю границу количества компонентов смеси (эта верхняя граница, если она выше «истинного» количества компонентов, влияет только на алгоритмическую сложность, но не на фактическое количество используемых компонентов).
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/mixture.html