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). Что происходит с кластеризацией если пропустить эти шаги?
- Как оценить качество кластеризации без 'правильных' меток - и почему бизнес-интерпретируемость важнее математических метрик?