Перейти до змісту
Увійти

Теорія

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

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

~10 хв читання · 11 вправ · 250 балів

Перед початком

Сегменти з даних

Ти й далі в продуктовій команді Котокорму, і маркетинг підкинув тобі новий запит: сегменти клієнтів. Найшвидший варіант — вгадати три групи, скажімо, ощадливих, постійних і щедрих покупців, і вважати справу зробленою.

У цьому уроці ти натомість даси даним самим підказати групи: чим кластерний аналіз відрізняється від класифікації, як виміряти схожість двох покупців і як працюють поширені методи кластеризації.

Кластеризація і класифікація

Обидва методи розкладають клієнтів по групах, але стартують із протилежних точок.

  • Класифікація починає з відомих, названих груп. Є минулі клієнти з мітками «пішов» чи «активний», і треба прогнозувати мітку для нових. Модель вчиться на позначених прикладах; логістична регресія — один із таких інструментів. Її можна перевірити за справжніми мітками.
  • Кластерний аналіз (кластеризація) починає зовсім без міток. Ти не знаєш, які є групи і навіть скільки їх. Метод збирає схожих клієнтів разом і дає групам проступити з даних. «Правильної відповіді» для перевірки немає; результат оцінюють за тим, чи групи відмінні, стабільні й корисні.
Кіт розкладає купу змішаних іграшок на три купки схожих речей, м'ячики, мишки й пір'я, без жодних кошиків чи підписів.
Кластеризація не починає з названих груп: схожі речі збираються разом, і групи з'являються самі.

Швидка перевірка: чи є в даних колонка, яка вже каже, до якої групи належить кожен клієнт? Якщо так і її треба прогнозувати — це класифікація. Якщо ні і треба відкрити структуру — кластеризація.

Ці методи часто працюють разом. Сегментація може за допомогою кластеризації знайти чотири типи клієнтів, а потім класифікатором відносити кожну нову реєстрацію до одного з них.

  • Так
    Мітки «пішов / активний» є → класифікація.
  • Не так
    «У нас є мітки відтоку, тож кластеризуймо клієнтів, щоб прогнозувати відтік.»

    Кластеризація ігнорує мітки, які вже є.

Відоме k чи невідоме

Перше запитання в будь-якому проєкті кластеризації: чи знаєш ти вже, скільки груп потрібно? Відповідь обирає метод.

  • Кількість груп невідома → ієрархічна кластеризація. Вона не просить числа наперед. Вона крок за кроком об'єднує клієнтів і записує всю історію як дерево, тож спершу можна подивитися на структуру, а вже потім вирішити, скільки груп має сенс.
  • Кількість груп відома → метод k-середніх. Якщо керівництво хоче рівно два сегменти за витратами чи маркетинг може провести рівно три кампанії, ти задаєш k, і метод знаходить найкращий поділ саме на стільки груп.

Вони різняться й масштабом. Ієрархічна кластеризація порівнює кожну пару клієнтів, тож пасує до сотень чи кількох тисяч записів і чудова для дослідження. Метод k-середніх швидкий і на сотнях тисяч, тому команди часто досліджують вибірку ієрархічно, а тоді запускають k-середні на всіх клієнтах з обраним k.

До жодної з ситуацій не пасують методи, що прогнозують відому мітку (як логістична регресія) чи порівнюють середні груп (як t-критерій). Вони відповідають на інші запитання.

  • Так
    «Не знаю, скільки сегментів → почати з ієрархічної кластеризації й подивитися на дерево.»
  • Не так
    «Не знаю, скільки сегментів → k-середні з k = 3, бо три звучить правильно.»

    Задає k навмання.

Відстань: схожість як число

Кластеризації потрібна метрика відстані: правило, що перетворює «наскільки схожі ці два клієнти?» на число. Кожен клієнт — точка в просторі своїх метрик, тут (щомісячні витрати, замовлення на місяць).

  • Евклідова відстань: пряма між двома точками. Підніс кожну різницю до квадрата, додай, візьми корінь: d = √Σ(x − y)². Для A(100, 1) і B(120, 1): √(20² + 0²) = √400 = 20.
  • Мангеттенська відстань: іди вздовж сітки, а не навскіс. Додай модулі різниць: |120 − 100| + |1 − 1| = 20. Оскільки нічого не підносять до квадрата, одна велика різниця важить менше, ніж в евклідовій відстані.
  • Відстань Чебишова: враховується лише одна найбільша різниця серед усіх змінних.
Міські квартали згори: кіт іде вулицями маршрутом у формі літери Г, а птах летить навскіс між тими самими кутами.
Маршрут кота — це мангеттенська відстань, а пряма лінія птаха — евклідова.
dEuclidean=∑i(xi−yi)2d_{\text{Euclidean}} = \sqrt{\sum_i (x_i - y_i)^2}
Евклідова відстань: відстань по прямій за всіма змінними.

Для A і B усі три дають 20, бо клієнти відрізняються лише однією змінною. Розходяться метрики тоді, коли клієнти відрізняються кількома.

Типові помилки: забути корінь в евклідовій відстані (тут вийшло б 400) або додавати різниці зі знаками, так що +20 і −20 скоротяться до нуля. Відстань ніколи не буває від'ємною.

  • Так
    √((120 − 100)² + (1 − 1)²) = √400 = 20
  • Не так
    (120 − 100)² + (1 − 1)² = 400

    Забуто корінь.

Ієрархічна кластеризація і дендрограма

Ієрархічна кластеризація будує групи знизу вгору:

  1. Спершу кожен клієнт — окремий кластер.
  2. Знайди два найближчі кластери й об'єднай їх.
  3. Перерахуй відстані між новим кластером та рештою.
  4. Повторюй, доки всі не опиняться в одному великому кластері.

Кожне об'єднання записується в дендрограму: перевернуте дерево з клієнтами на листках. Висота, на якій з'єднуються дві гілки, показує, наскільки далекими вони були в момент об'єднання. Низькі з'єднання означають дуже схожих клієнтів; високі — що методу довелося долати великий розрив.

Щоб отримати сегменти, розітни дерево горизонтальною лінією. Кожна гілка, яку вона перетинає, стає одним кластером. Розріж низько — отримаєш багато дрібних щільних груп; високо — кілька широких. Природне місце для розрізу — трохи нижче найвищих з'єднань, де об'єднувані групи були явно різними.

Перевернуте дерево, гілки якого зливаються в один стовбур, з котячими голівками на кінцях і помаранчевими ножицями, що розрізають високі гілки.
Місце розрізу дерева визначає кількість груп; найприродніше різати там, де гілки високі.

Дендрограма — головна перевага методу: бачиш усі можливі групування одразу й обираєш кількість потім. Слабке місце — розмір: порівняння кожної пари сповільнюється на дуже великій кількості клієнтів, а раннє об'єднання потім не скасувати.

  • Так
    Розітнути дендрограму трохи нижче найвищих з'єднань → кілька явно різних сегментів.
  • Не так
    Розрізати одразу над листками й звітувати про 40 «сегментів».

    Групи з одного-двох клієнтів — не сегменти, з якими можна працювати.

Центроїд

У методі k-середніх кожен кластер представляє його центроїд: точка, координати якої — середнє всіх учасників за кожною змінною.

Для кластера з двох клієнтів із координатами (щомісячні витрати в грн, замовлення на місяць) C(500, 5) і D(520, 5):

  • витрати: (500 + 520) / 2 = 510 грн;
  • замовлення: (5 + 5) / 2 = 5.

Отже, центроїд — (510, 5). Зверни увагу: жоден реальний клієнт там не стоїть, центроїд — це обчислена точка, а не учасник. Для трьох клієнтів із витратами 300, 400 і 800 грн витрати центроїда були б 500, тобто значенням, якого немає ні в кого з них.

Саме тому він корисний як профіль сегмента. «Великі покупці: у середньому близько 510 грн і 5 замовлень на місяць» — так описують кластер маркетингу. Два застереження:

  • окремі клієнти розкидані навколо центроїда; наводь і розкид чи діапазон, а не лише середнє;
  • як будь-яке середнє, центроїд тягнуть викиди. Один клієнт, що витрачає 10 000 грн, може відтягнути центроїд далеко від більшості учасників.

Типова помилка — усереднити не ті значення, наприклад домішати учасників іншого кластера або усереднити витрати й замовлення разом в одне число.

  • Так
    Центроїд {C, D}: ((500 + 520) / 2, (5 + 5) / 2) = (510, 5)
  • Не так
    «Центроїд — це клієнт D, найближчий до середини.»

    Центроїд — обчислене середнє, а не учасник.

Як працює метод k-середніх

Метод k-середніх ділить клієнтів на обрану кількість груп, k, повторюючи два прості кроки.

  1. Старт: розмісти k центроїдів у довільних позиціях, часто на k випадково обраних клієнтах.
  2. Вимір: обчисли відстань від кожного клієнта до кожного центроїда.
  3. Призначення: віднеси кожного клієнта до кластера найближчого центроїда.
  4. Оновлення: перемісти кожен центроїд у середнє клієнтів, яких йому тепер призначено.
  5. Повторюй кроки 2–4, доки жоден клієнт не змінить кластер і центроїди не перестануть рухатися. Це збіжність.

Для чотирьох клієнтів із координатами (щомісячні витрати в грн, замовлення на місяць) A(100, 1), B(120, 1), C(500, 5), D(520, 5) і k = 2 метод стабілізується за крок-два: A і B в одному кластері з центроїдом (110, 1), C і D в іншому з (510, 5).

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

Дані графіка

Щомісячні витрати, грнНевеликі витрати (A, B)Великі витрати (C, D)
1001
1201
5005
5205

Порядок важливий. Якщо рухати центроїди до призначення клієнтів, нема чого усереднювати; якщо зупинитися після одного проходу, клієнти можуть лишитися прив'язаними до центроїда, який уже від них відійшов.

Метод k-середніх завжди збігається, але не завжди до найкращого поділу: невдалий старт може загнати його в гірше групування. Тому його запускають кілька разів із різних стартових точок і лишають найстабільніший результат.

  • Так
    Розмістити → виміряти → призначити → оновити → повторювати, доки ніщо не рухається.
  • Не так
    Зробити один прохід «призначити й оновити» і звітувати про кластери.

    Зупиняється до збіжності.

Коли одна змінна захоплює відстань

Відстані підсумовують сирі різниці, тож непомітно віддають перевагу тій змінній, у якої числа більші.

Візьми A(100 грн, 1 замовлення) і C(500 грн, 5 замовлень):

d = √((500 − 100)² + (5 − 1)²) = √(160 000 + 16) = √160 016 ≈ 400,02.

Формула: Евклідова відстань: відстань по прямій за всіма змінними. · є вище

Розрив у 400 грн витрат дає 160 000; розрив у 4 замовлення на місяць, а це велика різниця в поведінці, — 16. Замовлення зсувають відстань на 0,02. На сирих значеннях кластеризація фактично групує лише за витратами.

Ще гірше з довільним вибором одиниць. Вимірюй витрати в тисячах гривень (0,1 і 0,5) — і раптом домінують замовлення. Клієнти не змінилися, а кластери можуть змінитися.

Характерна ознака на практиці: кластери, що акуратно вишикувалися вздовж однієї змінної й ігнорують інші. Перш ніж вирішити, що інші змінні «не важливі», перевір їхній масштаб.

Виправлення — стандартизація: звести кожну змінну до спільного масштабу перед будь-яким обчисленням відстані.

  • Так
    √(400² + 4²) ≈ 400,02: на сирих значеннях замовлення майже нічого не додають.
  • Не так
    «Наші кластери діляться лише за витратами, отже, частота замовлень для сегментів не важлива.»

    Це вирішив масштаб, а не бізнес.

Стандартизуй перед кластеризацією

Стандартизація (масштабування) ставить усі змінні в однакові умови перед обчисленням відстаней. Звичайний спосіб — перевести кожне значення в z-оцінку:

z = (значення − середнє змінної) / стандартне відхилення змінної

Після цього кожна змінна має середнє 0 і стандартне відхилення 1. Клієнт, у якого витрати на одне стандартне відхилення вищі за середнє і замовлення теж на одне вищі, тепер «однаково незвичний» за обома, хай якими були початкові одиниці.

Для чотирьох клієнтів із (витрати, замовлення) A(100, 1), B(120, 1), C(500, 5) і D(520, 5) середні витрати — 310 грн, стандартне відхилення — близько 231; середнє замовлень — 3, стандартне відхилення — близько 2,3. z-оцінки A: (100 − 310) / 231 ≈ −0,91 для витрат і (1 − 3) / 2,3 ≈ −0,87 для замовлень: тепер обидві змінні важать у відстані приблизно однаково.

Стандартизуй кожну змінну, що входить у відстань, на тих самих клієнтах, яких кластеризуєш. І пам'ятай, що це означає: ти кажеш методу, що всі змінні однаково важливі. Якщо для бізнесу одна змінна важливіша, дай їй більшу вагу свідомо, а не залишай це на розсуд одиниць виміру.

  • Так
    Перевести витрати й замовлення в z-оцінки, а тоді запустити k-середні.
  • Не так
    Запустити k-середні на витратах у гривнях і замовленнях на місяць як є.

    Великі числа витрат заглушують замовлення.

Як обрати k і перевірити стабільність

Три перевірки перетворюють запуск методу k-середніх на сегменти, яким маркетинг може довіряти.

  1. Обирай k за судженням і за даними. Почни з бізнесу: зі скількома сегментами команда реально працюватиме по-різному? Потім побудуй похибку кластеризації (сумарну відстань від клієнтів до їхніх центроїдів) для k = 1, 2, 3, …. Похибка завжди падає зі зростанням k, тож шукай точку, де спад вирівнюється; далі нові кластери лише дроблять справжні групи на шматки.
  2. Стандартизуй кожну змінну заздалегідь, щоб результат не вирішували одиниці виміру.
  3. Запусти кілька разів із різних стартових центроїдів. Якщо щоразу повертаються ті самі групи, структура справжня. Якщо вони перетасовуються за кожного запуску, k, імовірно, хибне або в даних немає чітких груп.

Потім перевір самі сегменти на здоровий глузд: чи кожен достатньо великий, щоб на нього діяти, і чи можна описати кожен одним реченням за його центроїдом?

Спокуслива помилка — дуже велике k «для більшої персоналізації». У крайньому випадку кожен клієнт отримує власний кластер: ідеальне прилягання, нуль розуміння. Сегментація корисна саме тому, що спрощує.

  • Так
    k = 3: крива похибки там вирівнюється, групи повторюються в 10 запусках, а маркетинг може провести 3 кампанії.
  • Не так
    «k = 6, бо більше сегментів — більше персоналізації.»

    Крихітні нестабільні сегменти нікому не допомагають.

Готові потренуватися?

Виконайте вправи уроку й отримайте 250 балів, коли пройдете його вперше.

Розпочати вправи