Data Science

Кластеризация и сегментация

Spotify, Netflix, Amazon - все они тратят миллионы на рекомендательные системы. Но в основе многих лежит элементарная кластеризация: «пользователи из этого кластера покупают X». Airbnb разделил хостов на сегменты через K-Means и обнаружил, что один небольшой кластер «суперхостов» отвечает за 30% выручки - и запустил отдельную программу только для них. Результат: удержание суперхостов выросло на 20%.

  • **Маркетинг и CRM:** RFM-сегментация клиентов для таргетинга акций, win-back кампаний и программ лояльности
  • **Аномалии и безопасность:** DBSCAN для обнаружения мошеннических транзакций - выбросы (-1) подозрительны по умолчанию
  • **Биоинформатика:** иерархическая кластеризация генной экспрессии для классификации типов рака по молекулярным паттернам

K-Means: алгоритм и K-Means++

Супермаркет хочет разделить 10 миллионов покупателей на группы для таргетинговых акций. Нет меток - нет «правильных» групп. K-Means решает задачу иначе: найди K центров так, чтобы суммарное расстояние от каждой точки до ближайшего центра было минимальным.

**Алгоритм Lloyd (классический K-Means):** инициализировать K центроидов случайно; повторять: (1) каждую точку назначить ближайшему центроиду, (2) пересчитать центроиды как среднее их кластеров. Сходится, но к локальному минимуму - результат зависит от инициализации.

**Выбор K:** Elbow method (ищем 'локоть' на графике inertia vs K), Silhouette score (максимизируем), BIC/AIC для GMM (Gaussian Mixture Models). На практике K часто диктует бизнес: «нам нужно 4 сегмента» - и задача стоит именно так.

Почему перед K-Means обязательно нужно масштабировать признаки?

DBSCAN: плотностная кластеризация

Карта GPS-треков 10 000 водителей такси. K-Means пытается найти K круглых кластеров - но реальные маршруты извилистые, неравной плотности и полны случайных одиночных поездок (выбросы). DBSCAN (Density-Based Spatial Clustering of Applications with Noise) разделяет точки по плотности окружения.

**Три типа точек в DBSCAN:** core point (в радиусе eps не менее min_samples соседей), border point (в радиусе eps core point, но сам не core), noise point (не принадлежит ни одному кластеру - выброс). Кластер = множество core points и достижимых от них border points.

**HDBSCAN:** улучшенная версия DBSCAN с иерархическими кластерами. Параметр min_cluster_size вместо eps, автоматически выбирает стабильные кластеры на разных уровнях плотности. В 2023 году добавлен в sklearn. Рекомендуется по умолчанию вместо DBSCAN для большинства задач.

Точка помечена DBSCAN как -1. Что это означает?

Hierarchical Clustering

Биологи классифицируют виды в таксономии: вид → род → семейство → отряд → класс. Иерархическая кластеризация строит именно такую структуру для данных - дендрограмму, где можно выбрать любое число кластеров, срезав дерево на нужной высоте.

**Agglomerative (снизу вверх):** начать с N одноточечных кластеров; на каждом шаге слить два ближайших кластера. Требует выбрать метрику расстояния между кластерами (linkage): single (min), complete (max), average, Ward (минимизирует прирост инерции - наиболее популярен).

**Дендрограмма для выбора K:** смотрим на вертикальные линии дендрограммы. Длинная линия без горизонтальных пересечений = большой разрыв между слияниями = хорошее место для среза. Кол-во кластеров = кол-во вертикальных линий ниже горизонтального среза.

Чем Ward linkage отличается от других методов слияния кластеров?

Практика: сегментация клиентов

RFM-анализ - классика клиентской сегментации: Recency (когда последний раз покупал), Frequency (как часто покупает), Monetary (сколько тратит). Три числа на клиента - и кластеризация мгновенно выявляет VIP-сегмент, «спящих» клиентов и тех, кто на грани оттока.

**Практические ловушки RFM-сегментации:** (1) Recency нужно инвертировать - маленькое значение лучше. (2) Monetary распределён экспоненциально - нужен log-transform. (3) Сезонность искажает Recency - клиент, купивший в ноябре прошлого года, не обязательно «спящий». (4) B2B-клиенты имеют другой ритм покупок, чем B2C.

Больше кластеров = лучшая сегментация, так как группы точнее

Оптимальное число кластеров балансирует между качеством разбиения (silhouette) и интерпретируемостью. 10 сегментов клиентов невозможно обслуживать отдельными маркетинговыми стратегиями.

Кластеризация должна давать actionable insights. Если маркетинговая команда не может сформулировать отдельную стратегию для каждого сегмента - кластеров слишком много. Практический предел обычно 3-8 сегментов.

В RFM-анализе клиент имеет Recency=5 дней. Это хороший или плохой сигнал?

Кластеризация и сегментация

  • K-Means: итеративная оптимизация центроидов, требует K и масштабирования, K-Means++ улучшает инициализацию
  • DBSCAN: кластеры по плотности, не требует K, автоматически выявляет выбросы, плохо на больших данных
  • Agglomerative: дендрограмма позволяет выбрать K пост-фактум, Ward linkage наиболее универсален
  • RFM-сегментация: Recency + Frequency + Monetary → actionable клиентские сегменты для маркетинга
  • Валидация кластеров: Silhouette (выше = лучше), Davies-Bouldin (ниже = лучше) + бизнес-интерпретируемость

Связанные темы

Кластеризация - базовый инструмент обучения без учителя, дополняющий supervised learning.

  • Ensemble Methods — Supervised learning - следующий уровень над unsupervised кластеризацией
  • Feature Engineering и EDA — Кластеризация часто выступает как feature engineering: метка кластера как новый признак
  • Снижение размерности (PCA, t-SNE) — PCA/t-SNE часто применяют перед кластеризацией для борьбы с 'проклятием размерности'

Вопросы для размышления

  • Когда DBSCAN предпочтительнее K-Means - и что конкретно в форме данных делает K-Means непригодным?
  • В RFM-сегментации Recency и Monetary обычно требуют разной обработки (инверсия и log-transform). Что происходит с кластеризацией если пропустить эти шаги?
  • Как оценить качество кластеризации без 'правильных' меток - и почему бизнес-интерпретируемость важнее математических метрик?

Связанные уроки

  • ml-16-clustering-kmeans
Кластеризация и сегментация

0

1

Войти