# Кластеризація для сегментації клієнтів

> Сегментація клієнтів за даними: як дати кластерному аналізу підказати сегменти замість того, щоб їх вгадувати.

- Курс: [Статистика для продакт-менеджерів і маркетологів](https://productovi.com/uk/courses/statistics-for-pm-and-marketers.md)
- Модуль: Моделювання та сегментація
- Урок 22/24, ~39 хв
- Джерело: https://productovi.com/uk/courses/statistics-for-pm-and-marketers/clustering

## Кластерний аналіз: групування без міток

**Alex Tutor:** Останній модуль, і ти досі в продуктовій команді Котокорму. Маркетинг підкинув тобі новий запит: сегментація клієнтів.

**Sofia:** Маркетинг хоче «сегменти клієнтів» для Котокорму. У мене вже був план просто вигадати три: скупі, звичайні, кити.

**Alex Tutor:** Можна вгадувати, а можна дати даним самим підказати. Ця родина методів називається *кластерний аналіз* — пошук груп схожих клієнтів без заздалегідь заданих міток.

**Sofia:** Хіба це не та сама класифікація, що й у логістичній регресії?

**Alex Tutor:** Схоже, але навпаки. Класифікація розподіляє об'єкти за *відомими* класами, які вже мають назви. Кластеризація сама знаходить групи — ти навіть не знаєш заздалегідь, скільки їх.

![Кіт розкладає купу змішаних іграшок на три купки схожих речей, м'ячики, мишки й пір'я, без жодних кошиків чи підписів.](https://productovi.com/courses/statistics-for-pm-and-marketers/inline/clustering-illustration-2.webp)

*Кластеризація не починає з названих груп: схожі речі збираються разом, і групи з'являються самі.*

**Alex Tutor:** Переконаймося, що різниця запам'яталася. Який інструмент пасує до такого запиту?

> **Вправа:** Маркетинг має торішніх клієнтів, уже позначених як «пішов» чи «активний», і хоче прогнозувати мітку для нових клієнтів. Який підхід підходить?

**Alex Tutor:** Бувають дві ситуації. Або ти знаєш, скільки груп очікувати, або й гадки не маєш. Обраний метод залежить саме від цього.

**Sofia:** Я справді не знаю, на скільки сегментів насправді діляться клієнти Котокорму.

> **Вправа:** Ти не знаєш, скільки насправді сегментів клієнтів у Котокорму. Яка родина методів пасує до цієї ситуації?

## Як виміряти схожість двох клієнтів

**Alex Tutor:** Кожен метод кластеризації починається однаково: перетворити «наскільки схожі ці два клієнти» на число — *відстань*.

**Sofia:** Відстань як кілометри між їхніми домівками?

**Alex Tutor:** Відстань у просторі їхніх метрик. Скажімо, клієнт A витрачає 100 грн/міс і робить 1 замовлення, B — 120 грн і теж 1 замовлення. У цьому просторі вони близькі.

$$
d_{\text{Euclidean}} = \sqrt{\sum_i (x_i - y_i)^2}
$$

*Евклідова відстань: відстань по прямій за всіма змінними.*

**Alex Tutor:** Це *евклідова* відстань — звичайна відстань по прямій. Є ще *мангеттенська* відстань, яка підсумовує модулі різниць замість піднесення до квадрата.

**Sofia:** Названа на честь району? Чому статистикам взагалі важливий мангеттенський трафік?

**Alex Tutor:** Бо в місті не можна пройти по діагоналі крізь квартали — лише вздовж сітки вулиць. Вона менш чутлива до однієї надзвичайно великої змінної-викиду, ніж евклідова.

![Міські квартали згори: кіт іде вулицями маршрутом у формі літери Г, а птах летить навскіс між тими самими кутами.](https://productovi.com/courses/statistics-for-pm-and-marketers/inline/clustering-illustration-3.webp)

*Маршрут кота — це мангеттенська відстань, а пряма лінія птаха — евклідова.*

> **Вправа:** Клієнт A витрачає 100 грн/міс, робить 1 замовлення; клієнт B витрачає 120 грн, теж 1 замовлення. Яка евклідова відстань між A і B за (витрати, замовлення)?

## Ієрархічна кластеризація

**Alex Tutor:** Коли не знаєш кількості груп, використовуй *ієрархічну кластеризацію*. Вона об'єднує двох найсхожіших клієнтів, перераховує відстані і об'єднує знову.

**Sofia:** І так постійно об'єднує... до безкінечності?

**Alex Tutor:** Доки всі клієнти не опиняться в одному величезному кластері. При цьому будується *дендрограма* — дерево, яке можна «розтяти» на будь-якій висоті й отримати стільки груп, скільки треба.

**Sofia:** Тобто дерево вже потім саме підказує кількість кластерів?

**Alex Tutor:** Вирішуєш ти, коли обираєш, де розтяти — зазвичай там, де гілки найдовші, тобто об'єднані групи були доволі різними.

![Перевернуте дерево, гілки якого зливаються в один стовбур, з котячими голівками на кінцях і помаранчевими ножицями, що розрізають високі гілки.](https://productovi.com/courses/statistics-for-pm-and-marketers/inline/clustering-illustration-4.webp)

*Місце розрізу дерева визначає кількість груп; найприродніше різати там, де гілки високі.*

> **Вправа:** Що будує ієрархічна кластеризація, дозволяючи обрати кількість груп уже потім?

## Кластеризація методом k-середніх крок за кроком

**Alex Tutor:** А тепер уяви, що кількість *відома*: керівництво хоче рівно 2 сегменти за витратами. Тоді потрібен *метод k-середніх*.

**Alex Tutor:** Візьмемо чотирьох клієнтів за (щомісячні витрати, замовлення/міс): A(100, 1), B(120, 1), C(500, 5), D(520, 5). k-середні розставляють 2 *центроїди* — представників груп — і рухають їх, доки ті не стабілізуються.

**Чотири клієнти, два кластери за витратами**

| Щомісячні витрати, грн | Невеликі витрати (A, B) | Великі витрати (C, D) |
| --- | --- | --- |
| 100 | 1 |  |
| 120 | 1 |  |
| 500 |  | 5 |
| 520 |  | 5 |

*A і B (невеликі витрати) розташовані далеко від C і D (великі витрати); k-середні розділяють їх саме за цим розривом.*

**Sofia:** Тобто центроїд {C, D} — це просто їхнє середнє значення витрат і кількості замовлень?

**Alex Tutor:** Саме так: (500 + 520) / 2 = 510 грн, і (5 + 5) / 2 = 5 замовлень. Ця точка стає новим центроїдом цього кластера.

**Sofia:** І кожен клієнт просто дивиться, який центроїд ближче, і переходить туди за потреби?

**Alex Tutor:** Саме так — призначення найближчому центроїду, перерахунок центроїдів як середнього їхніх учасників, повтор — доки ніхто вже не переходить.

> **Вправа:** Клієнти C і D, описані як (щомісячні витрати в грн, замовлення на місяць), мають координати C(500, 5) і D(520, 5), і k-середні об'єднали їх в один кластер. Яке середнє значення щомісячних витрат у центроїда цього кластера?

**Sofia:** А після переміщення центроїдів ми просто... зупиняємось?

**Alex Tutor:** Ще ні. З новими позиціями центроїдів деякі клієнти можуть виявитися ближче до іншого, тож ми знову переприв'язуємо їх і перераховуємо центроїди.

**Sofia:** Тобто цикл триває, доки хоч щось змінюється?

**Alex Tutor:** Саме так — це і є збіжність. Спробуй самостійно розставити кроки алгоритму, перш ніж ми підемо далі.

> **Вправа:** Розстав кроки алгоритму k-середніх у правильному порядку.

## Перш ніж запускати: масштаб змінних і вибір k

**Alex Tutor:** Одна пастка: витрати вимірюються сотнями гривень, а замовлення — одиничними числами. Відстані тоді повністю визначатимуться витратами.

**Alex Tutor:** Переконайся сам на A і C. C витрачає на 400 грн більше і замовляє на 4 рази частіше. Наскільки вони далекі?

> **Вправа:** Клієнт A має (витрати, замовлення) = (100 грн, 1), клієнт C — (500 грн, 5). Яка евклідова відстань між ними на сирих значеннях?

> **Стандартизуй перед кластеризацією**
>
> Спершу перетвори кожну змінну на z-оцінку. Інакше змінна з великим масштабом непомітно домінуватиме над іншими в кожному розрахунку відстані.

**Sofia:** Тобто без цього замовлення на місяць практично ігноруватимуться?

**Alex Tutor:** Майже. І ще один нюанс: k-середні залежить від початкового положення центроїдів. Запусти алгоритм кілька разів — якщо щоразу виходять різні групи, можливо, обране k хибне.

**Sofia:** А як взагалі обрати k із самого початку?

**Alex Tutor:** Спершу бізнес-логіка — скільки сегментів маркетинг реально зможе опрацювати? Далі подивись, як спадає похибка кластеризації зі зростанням k, і зупинись, коли спад вирівнюється.

> **Вправа:** Оскільки k-середні спирається на відстані, змінна, виміряна сотнями гривень, може домінувати в кластеризації, якщо не стандартизувати всі змінні заздалегідь.

## Підсумок

**Alex Tutor:** Отже: ієрархічна — коли не знаєш k, k-середні — коли знаєш, і завжди спершу стандартизуй змінні.

**Sofia:** Тобто моє «скупі, звичайні, кити» може не пережити зіткнення з реальними відстанями?

**Alex Tutor:** Може й збігтися ідеально, а може дані розділяться за чимось несподіваним — наприклад, за частотою, а не витратами. Давай це опишемо.

**Sofia:** Перш ніж я щось запущу — нагадай, що перевірити спершу?

> **Вправа:** Що з переліченого є гарною практикою перед запуском k-середніх на даних клієнтів Котокорму? Обери все, що підходить.

**Alex Tutor:** Перш ніж перейти до реального заплутаного сценарію, спробуй самостійно пояснити проблему одиниць вимірювання.

**Sofia:** От халепа, це те саме страшне поле для вільної відповіді.

**Alex Tutor:** Переживеш. Ось умова.

**Sofia:** Запускай.

> **Вправа:** У 2–3 реченнях поясни, чому чотири клієнти Котокорму, A(100 грн, 1 замовлення), B(120, 1), C(500, 5) і D(520, 5), можуть опинитися в різних кластерах залежно від того, чи витрати виміряно в гривнях, чи в тисячах гривень.

**Alex Tutor:** Гарна інтуїція. Тепер складніша, реальна ситуація — хтось уже запустив кластеризацію, і результат виглядає підозріло.

**Sofia:** Дай вгадаю: забагато сегментів?

**Alex Tutor:** Видно, що ти уважно слухаєш.

**Sofia:** Показуй цей безлад.

> **Вправа:** Напиши свою рекомендацію для маркетологині зростання.

**Alex Tutor:** Це і є кластеризація для сегментації клієнтів. Далі — факторний аналіз, коли групувати треба не клієнтів, а питання опитування.

- Попередній урок: [Моделі та прогнозування](https://productovi.com/uk/courses/statistics-for-pm-and-marketers/models-and-forecasts.md)
- Наступний урок: [Факторний аналіз: опитування та драйвери NPS](https://productovi.com/uk/courses/statistics-for-pm-and-marketers/factor-analysis.md)

---
Productovi Learning. Безкоштовно, читати можна без реєстрації.
