Spec-Zone.ru › scikit-learn

2.1. Модели гауссовых смесей

sklearn.mixture — это пакет, который позволяет обучать модели гауссовых смесей (поддерживаются диагональные, сферические, связанные и полные ковариационные матрицы), генерировать из них выборки и оценивать их по данным. Также предоставляются средства для определения подходящего количества компонент.

../_images/sphx_glr_plot_gmm_pdf_001.png

Модель гауссовой смеси из двух компонент: точечные данные и поверхности с равной вероятностью модели.

Модель гауссовой смеси — это вероятностная модель, которая предполагает, что все точки данных генерируются из смеси конечного числа гауссовых распределений с неизвестными параметрами. Можно рассматривать модели смесей как обобщение кластеризации k-средних, которое включает информацию о структуре ковариации данных, а также центрах скрытых гауссовских распределений.

Scikit-learn реализует разные классы для оценки моделей гауссовых смесей, которые соответствуют различным стратегиям оценки, подробно описанным ниже.

2.1.1. Гауссова смесь

Объект GaussianMixture реализует алгоритм максимизации правдоподобия (EM) для подгонки моделей смесей гауссовых распределений. Он также может строить эллипсоиды доверия для многомерных моделей и вычислять критерий Байеса-Шварца для оценки количества кластеров в данных. Предоставляется метод GaussianMixture.fit, который обучает модель гауссовой смеси по обучающим данным. Для тестовых данных он может назначать каждой выборке гауссовское распределение, к которому она, вероятно, принадлежит, используя метод GaussianMixture.predict.

Объект GaussianMixture предоставляет различные варианты ограничения ковариации оцениваемых классов: сферическая, диагональная, связанная или полная ковариация.

../_images/sphx_glr_plot_gmm_covariances_001.png

Примеры

  • См. Ковариации GMM для примера использования гауссовой смеси в качестве кластеризации на наборе данных ириса.
  • См. Оценка плотности для гауссовой смеси для примера построения оценки плотности.
Преимущества и недостатки класса GaussianMixture

Преимущества

Скорость:

Это самый быстрый алгоритм для обучения моделям смесей.

Независимость:

Так как этот алгоритм максимизирует только правдоподобие, он не будет смещать средние значения к нулю или смещать размеры кластеров, чтобы иметь определённые структуры, которые могут или могут не применяться.

Недостатки

Особые случаи:

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

Количество компонент:

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

Выбор количества компонент в классической модели гауссовой смеси

Критерий BIC может использоваться для эффективного выбора количества компонент в модели гауссовой смеси. Теоретически он восстанавливает истинное количество компонент только в асимптотическом режиме (то есть, если доступно много данных и предполагается, что данные были фактически сгенерированы независимо и одинаково из смеси гауссовых распределений). Обратите внимание, что использование вариационной байесовской модели гауссовой смеси позволяет избежать указания количества компонент для модели гауссовой смеси.

../_images/sphx_glr_plot_gmm_selection_002.png

Примеры

  • См. Выбор модели гауссовой смеси для примера выбора модели с классической моделью гауссовой смеси.
Алгоритм оценки максимального правдоподобия

Основная трудность в обучении моделей гауссовых смесей по неопределенным данным заключается в том, что обычно неизвестно, какие точки происходят от какой скрытой компоненты (если эта информация доступна, то очень легко подогнать отдельное гауссовское распределение к каждой группе точек). Алгоритм максимизации правдоподобия — это хорошо обоснованный статистический алгоритм, позволяющий обойти эту проблему с помощью итерационного процесса. Сначала предполагаются случайные компоненты (случайно центрированные на точках данных, обученные с помощью k-средних или даже просто нормально распределенные вокруг начала координат), и для каждой точки вычисляется вероятность её генерации каждой компонентой модели. Затем параметры корректируются, чтобы максимизировать правдоподобие данных с учётом этих назначений. Повторение этого процесса гарантированно сходится к локальному оптимуму.

Выбор метода инициализации

Существует четыре метода инициализации (а также возможность ввода пользователем начальных средних значений) для генерации начальных центров компонент модели:

k-средних (по умолчанию)

Это применение традиционного алгоритма кластеризации k-средних. Это может быть вычислительно дорого по сравнению с другими методами инициализации.

k-средних++

Это использует метод инициализации k-средних: k-средних++. Первый центр выбирается случайным образом из данных. Последующие центры выбираются из взвешенного распределения данных, отдавая предпочтение точкам, удалённым от существующих центров. k-средних++ — это метод инициализации по умолчанию для k-средних, поэтому он будет быстрее, чем запуск полного k-средних, но может всё ещё занимать значительное время для больших наборов данных с многими компонентами.

random_from_data

Это выберет случайные точки данных из входных данных в качестве начальных центров. Это очень быстрый метод инициализации, но может давать не сходящиеся результаты, если выбранные точки слишком близки друг к другу.

случайный

Центры выбираются как небольшое возмущение относительно среднего значения всех данных. Этот метод прост, но может привести к тому, что модель будет дольше сходиться.

../_images/sphx_glr_plot_gmm_init_001.png

Примеры

  • См. Методы инициализации GMM для примера использования различных методов инициализации в гауссовой смеси.

2.1.2. Вариационный Байесовский гауссовский коктейль

Объект BayesianGaussianMixture реализует вариант гауссовской смесительной модели с алгоритмами вариационного вывода. API аналогичен API, определённому объектом GaussianMixture.

Алгоритм оценки: вариационный вывод

Вариационный вывод — это расширение метода ожиданий-максимизации, который максимизирует нижнюю границу доказательства модели (включая априорные распределения) вместо правдоподобия данных. Принцип вариационных методов такой же, как у метода ожиданий-максимизации (то есть оба являются итерационными алгоритмами, которые чередуют нахождения вероятностей для каждой точки, чтобы быть сгенерированной каждой смесью, и подгонки смеси к этим назначенным точкам), но вариационные методы добавляют регуляризацию, интегрируя информацию из априорных распределений. Это позволяет избежать особенностей, часто встречающихся в решениях метода ожиданий-максимизации, но вносит некоторые тонкие искажения в модель. Вывод часто заметно медленнее, но обычно не настолько, чтобы сделать использование непрактичным.

Из-за своей байесовской природы, вариационный алгоритм требует больше гиперпараметров, чем метод ожиданий-максимизации, наиболее важным из которых является параметр концентрации weight_concentration_prior. Указание низкого значения для концентрации априорного распределения заставит модель сосредоточить большую часть веса на нескольких компонентах и установить веса оставшихся компонентов очень близко к нулю. Высокие значения априорного распределения концентрации позволят большему количеству компонентов быть активными в смеси.

Реализация параметров класса BayesianGaussianMixture предлагает два типа априорных распределений для распределения весов: модель конечной смеси с распределением Дирихле и модель бесконечной смеси с процессом Дирихле. На практике алгоритм вывода процесса Дирихле аппроксимируется и использует усечённое распределение с фиксированным максимальным количеством компонентов (так называемое представление разрыва палочки). Количество фактически используемых компонентов почти всегда зависит от данных.

На следующей картинке сравниваются результаты, полученные для разных типов априорного распределения концентрации весов (параметр weight_concentration_prior_type) для различных значений weight_concentration_prior. Здесь мы видим, что значение параметра weight_concentration_prior оказывает сильное влияние на эффективное количество активных компонентов. Мы также можем заметить, что большие значения априорного распределения концентрации весов приводят к более равномерным весам, когда тип априорного распределения равен «дирихлевому распределению», в то время как это необязательно для типа «процесс Дирихле» (используется по умолчанию).

plot_bgmm plot_dpgmm

Ниже приведены примеры сравнения гауссовских смесительных моделей с фиксированным количеством компонентов с вариационными гауссовскими смесительными моделями с априорным распределением процесса Дирихле. Здесь классическая гауссовская смесьная модель подгоняется к набору данных, состоящему из 2 кластеров, с 5 компонентами. Можно заметить, что вариационная гауссовская смесьная модель с априорным распределением процесса Дирихле может ограничиться только 2 компонентами, тогда как гауссовская смесь подгоняется к данным с фиксированным количеством компонентов, которое должно быть задано пользователем заранее. В этом случае пользователь выбрал n_components=5, что не соответствует истинному порождающему распределению этого набора данных. Обратите внимание, что при очень малом количестве наблюдений вариационные гауссовские смесительные модели с априорным распределением процесса Дирихле могут занять консервативную позицию и подогнать только один компонент.

../_images/sphx_glr_plot_gmm_001.png

На следующей картинке мы подгоняем набор данных, который не подходит для гауссовской смеси. Изменение параметра weight_concentration_prior, параметра класса BayesianGaussianMixture, управляет количеством компонентов, используемых для подгонки этих данных. Мы также представляем на последних двух графиках случайную выборку, сгенерированную из двух полученных смесей.

../_images/sphx_glr_plot_gmm_sin_001.png

Примеры

  • См. Эллипсоиды гауссовской смесительной модели для примера построения эллипсоидов доверительной вероятности как для 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–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/mixture.html

Spec-Zone.ru

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