Volta — Сегментация пользователей
Ситуация
Эффект удержался — остался вопрос, кто эти пользователи и как их монетизировать.
Задача
Мне нужно было отвечать за сегментацию базы и за то, чтобы число сегментов диктовали данные, а не удобство.
Действия
Сегментацию я строил так, чтобы число групп и их границы задавали данные, а не заранее выбранная схема.
- Признаки. Собрал поведенческие признаки пользователя (частота и объём операций, активность, продукт) и привёл их к общей шкале через StandardScaler, иначе крупные по модулю признаки перевесили бы остальные.
- Выбор K. Прогнал KMeans по диапазону решений и выбрал число кластеров по marginal-gain elbow и силуэту — в коде, а не на глаз.
- Устойчивость. Проверил, что сегменты не рассыпаются от смены seed, и посмотрел кривые инерции и силуэта.
- Проекция. Построил PCA-проекцию, чтобы увидеть разделение сегментов и убедиться, что кластеры не наложены друг на друга.
- Ценность. Сравнил размер сегмента с его долей выручки и посчитал концентрацию по Лоренцу.
- Сценарии. Оценил миграцию пользователей между сегментами как отдельные сценарии, а не как один агрегат.
- Инструменты. Python и pandas/NumPy, scikit-learn для KMeans и PCA, Matplotlib/Seaborn для графиков; прогоны через uv + ruff.
Результат
- K=4: Power 12% / Growth 24% / Casual 32% / Dormant 32% (размеры выведены из данных).
- Power дают 41% выручки, занимая 12% пользователей; 68% → 92%.
- Dormant (32%) всё ещё приносит 7,8% — у win-back есть потенциал.
- Сценарии миграции: +€26K/мес (€310K/год).
Рекомендации
- Защищать Power, апгрейдить Growth/Casual, вернуть Dormant.
- Строить стратегию по вероятностям, а не по жёстким ярлыкам (границы мягкие).
- Валидировать стратегию 4 рекомендованными A/B-тестами.