Без меток задачи формулируются расплывчато: «сегментируйте клиентов», «посмотрите на структуру эмбеддингов». На собесе проверяют, знаете ли вы ограничения алгоритмов и как оценить результат.
k-means
Алгоритм Ллойда чередует два шага:
- Назначить каждую точку ближайшему центру.
- Пересчитать центры как средние своих точек.
Каждый шаг не увеличивает инерцию (сумму квадратов расстояний до центров), поэтому алгоритм сходится, но к локальному минимуму. Лечат инициализацией k-means++ и несколькими перезапусками.
Пример: точки 1, 2, 3, 10, 11, центры 2 и 9. Назначения {1, 2, 3} и {10, 11}, новые центры 2 и 10.5, инерция 2.5.
Ограничения: k-means любит сферические кластеры похожего размера, ломается на кольцах и полумесяцах, чувствителен к выбросам и масштабу признаков.
Как выбрать k: инерция падает монотонно, поэтому ищут «локоть»; силуэт; но главный критерий это польза и интерпретируемость сегментов.
Силуэт
s = (b - a) / max(a, b)
a средняя дистанция до своего кластера, b до ближайшего чужого. Около 1 хорошо, около 0 на границе, отрицательный объект скорее в чужом кластере.
Другие алгоритмы
- DBSCAN: кластеры как плотные области. Сам находит число кластеров и форму, помечает выбросы как шум. Параметры eps и min_samples; один eps на всё плохо работает при разной плотности, тогда HDBSCAN.
- Иерархическая (агломеративная): объединяет ближайшие кластеры, строит дендрограмму. Память O(n²).
- GMM: смесь гауссиан, обучается EM. Мягкие назначения и эллиптические кластеры.
Поиск аномалий
Isolation Forest: строит деревья со случайными признаками и порогами. Аномалию изолировать легко, у неё короткий путь в дереве. Быстрый и без меток.
Снижение размерности
- PCA: линейный, детерминированный, быстро применяется к новым точкам. Для сжатия признаков, шумоподавления, ускорения поиска. Требует центрирования и, при разных единицах, стандартизации.
- t-SNE: визуализация в 2-3 измерения. Сохраняет локальные соседства, но размеры кластеров и расстояния между ними на картинке почти ничего не значат. Зависит от perplexity и сида, новые точки не проецирует.
- UMAP: быстрее, лучше держит глобальную структуру, умеет transform, но тоже стохастичен.
- Автоэнкодеры: нелинейное сжатие нейросетью, нужно много данных.
Перед t-SNE часто делают PCA до 50 компонент, чтобы убрать шум и ускорить расчёт.
Сегментация на практике
- Понять, что будем делать с сегментами.
- Признаки: RFM и поведение, логарифмы для денег, масштабирование.
- k-means как база, GMM или HDBSCAN при сложной форме.
- Выбрать k по локтю, силуэту и смыслу.
- Проверить стабильность (сиды, бутстреп, следующий месяц) и описать профили.
- Пользу доказать экспериментом.
Частые ошибки
- Выбирать k по минимуму инерции.
- Запускать k-means без масштабирования.
- Читать расстояния между кластерами на картинке t-SNE.
- Ставить t-SNE шагом в пайплайн модели.
Что спросят на собесе
- Как работает k-means, чем плох, как выбрать k.
- Чем DBSCAN отличается от k-means.
- Что такое силуэт.
- Сравнить PCA, t-SNE и UMAP.
- Как бы вы сегментировали клиентов.