tg-me.com/dsproglib/6380
Last Update:
Gaussian Mixture Models (GMM) — это мощный инструмент для тех случаев, когда данные сложно разбить на чёткие кластеры. Вместо привязки к одному кластеру, GMM работает с вероятностями, что особенно полезно при перекрывающихся группах.
В отличие от жёсткой кластеризации (например, KMeans), GMM:
— Строит пробабилистическую модель: каждое наблюдение принадлежит к каждому кластеру с определённой вероятностью
— Подходит для кластеров разного размера и формы
— Работает даже при перекрывающихся распределениях
GMM моделирует данные как смесь нескольких нормальных распределений. Алгоритм использует Expectation-Maximization (EM):
1. E-шаг: оценивает вероятность принадлежности каждой точки к каждому кластеру
2. M-шаг: обновляет параметры (среднее, ковариацию) каждого распределения на основе оценок
— R: пакет mclust
с визуализацией и автоматическим выбором модели
— Python: sklearn.mixture.GaussianMixture
, pgmpy
, pomegranate
from sklearn.mixture import GaussianMixture
gmm = GaussianMixture(n_components=3)
gmm.fit(X)
labels = gmm.predict(X)
probs = gmm.predict_proba(X)
gmm.bic(X), gmm.aic(X)
— Мягкая кластеризация: каждая точка — не только метка, но и вероятность
— Гибкость в формах и плотностях кластеров
— Можно использовать для density estimation и анализов аномалий
— Нужно заранее задавать число кластеров
— Могут возникать проблемы с инициализацией (зависимость от начальных условий)
— Предполагается, что компоненты — именно гауссовы, что не всегда так
— Детекция аномалий (особенно в кибербезопасности)
— Сегментация изображений
— Обработка речи и звука
— Финансовое моделирование и risk scoring
— Понимание скрытых закономерностей в данных пользователей
Библиотека дата-сайентиста #буст