Лекція 9. Задачі кластеризації. Метод -середніх
Огляд
Модулі 3 і 4 присвячені двом спорідненим, але принципово різним задачам. У Лекціях 6–8 ми розв’язували класифікацію: маючи навчальну вибірку з відомими мітками класів, будували правило, що приписує клас новому об’єкту. Це навчання з учителем (англ. supervised learning) — «учитель» у вигляді правильних відповідей вказує алгоритму, до чого прагнути.
Тепер уявіть, що міток немає зовсім. Є лише таблиця об’єктів з їхніми ознаками — покупці з історією покупок, документи, пікселі зображення, зорі на знімку — і треба самотужки виявити в них природну структуру: поділити на групи так, щоб усередині групи об’єкти були схожі, а між групами — різні. Це задача кластеризації — центральна задача навчання без учителя (англ. unsupervised learning), якій присвячено весь Модуль 4.
У цьому розділі ми означуємо задачу кластеризації та відмежовуємо її від класифікації; показуємо, чому її не можна розв’язати простим перебором усіх розбиттів (тут з’явиться число Стірлінга з комбінаторики); оглядаємо п’ять класів методів; уводимо функції відстані, без яких «схожість» не має числового змісту; і докладно розбираємо найпопулярніший метод розбиття — -середніх (-means) — з його цільовою функцією (сумою квадратів помилок), алгоритмом, критерієм збіжності, сильними й слабкими сторонами. Наприкінці розглянемо нечіткий варіант — метод -середніх, де об’єкт належить кільком кластерам частково. Лекція 10 продовжить тему ієрархічними методами, що будують не одне розбиття, а цілу вкладену систему кластерів.
Практичний бік. Ітерації -середніх «руками» на малому наборі точок ви виконаєте в аудиторії, а сам алгоритм реалізуєте програмою в Лабораторній роботі 9.
9.1 Задача кластеризації
Означення (кластеризація). Кластеризацією (англ. clustering) називають процес розбиття вибірки об’єктів на підмножини — кластери — так, щоб об’єкти в межах одного кластера були схожі між собою, а об’єкти різних кластерів — несхожі. Мітки груп заздалегідь невідомі й самі є результатом роботи алгоритму.
Формально задано множину об’єктів , кожен з яких — вектор ознак . Треба знайти розбиття множини , тобто систему підмножин, що
Кластери не перетинаються (кожен об’єкт — рівно в одному), покривають усю вибірку й непорожні. «Схожість» вимірюють через відстань (§9.4): чим менша відстань між об’єктами, тим вони схожіші.
Ключова відмінність від класифікації — у природі навчання:
| Класифікація (Модуль 3) | Кластеризація (Модуль 4) | |
|---|---|---|
| Мітки в навчанні | відомі (є «правильні відповіді») | невідомі |
| Тип навчання | з учителем (supervised) | без учителя (unsupervised) |
| Що шукаємо | правило «ознаки відомий клас» | саму структуру груп |
| Число груп | задане мітками | часто треба обрати самому |
| Як оцінити якість | точність на тесті з мітками | внутрішні міри (компактність, §9.5) |
Типова помилка (кластери класи). Знайдені кластери — це groupings за схожістю ознак, а не готові змістовні класи. Алгоритм може розділити людей за зростом, тоді як вас цікавив дохід; або злити в один кластер дві змістовно різні групи, схожі за обраними ознаками. Інтерпретацію кластерів завжди робить людина, дивлячись на об’єкти всередині кожного.
9.2 Розв’язання перебором. Число Стірлінга
Найпряміший задум — перебрати всі можливі розбиття вибірки на груп, для кожного порахувати міру якості (компактність кластерів) і обрати найкраще. Задум правильний, але обчислювально нездійсненний: розбиттів надзвичайно багато. Скільки саме — каже комбінаторика.
Означення (число Стірлінга другого роду). Число Стірлінга другого роду — це кількість способів розбити множину з різних об’єктів на непорожніх підмножин, що не враховують порядку (групи не пронумеровані).
Ці числа задовольняють рекурентне співвідношення (кожен новий об’єкт або утворює власну групу, або приєднується до однієї з наявних):
Обчислимо перші рядки трикутника :
| 1 | 2 | 3 | 4 | 5 | ||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | ||||
| 2 | 1 | 1 | 2 | |||
| 3 | 1 | 3 | 1 | 5 | ||
| 4 | 1 | 7 | 6 | 1 | 15 | |
| 5 | 1 | 15 | 25 | 10 | 1 | 52 |
Останній стовпець — число Белла : скільки всього є розбиттів об’єктів (на будь-яке число груп, ). Наприклад, для їх уже . Якщо ми не знаємо наперед, перебирати довелося б саме варіантів.
Приклад 9.1 (усі розбиття на 2 групи). Для об’єктів на групи маємо розбиттів:
Для двох груп є зручна формула: кожен об’єкт, крім першого, потрапляє «з першим» або «окремо», що дає варіантів, з яких один (усі разом) лишає другу групу порожньою:
Перевіримо: ; — саме це число стоїть у таблиці на слайді лекції.
Приклад 9.2 (вибух комбінаторної складності). Порахуємо для зростаючих :
| 10 | |
| 20 | |
| 50 | |
| 100 |
І це лише для двох груп — найповільніший стовпець. Уже при число розбиттів об’єктів сягає , а об’єктів — . Жоден комп’ютер не перебере стільки варіантів за час існування Всесвіту.

Висновок. Точний перебір розбиттів неможливий навіть для сотні об’єктів. Тому всі практичні методи кластеризації — це евристики: вони не гарантують глобально найкращого розбиття, але швидко знаходять добре розбиття. Метод -середніх (§9.5) — класичний приклад такої евристики.
9.3 Класи методів кластеризації
Методи кластеризації прийнято ділити на п’ять великих класів за тим, як вони формують кластери.
- Методи розбиття (англ. partitioning). Одразу ділять вибірку на задане число кластерів і покращують поділ ітераціями. Приклади: -середніх (§9.5), -медоїдів (центр — реальний об’єкт, а не середнє). Швидкі, масштабовані; треба задати .
- Ієрархічні методи (англ. hierarchical) — об’єднувальні (агломеративні: почати з окремих об’єктів і зливати) або роздільні (дивізивні: почати з усієї вибірки й ділити). Будують дерево вкладених кластерів (дендрограму), не вимагають наперед задавати (тема Лекції 10).
- Методи на основі щільності (англ. density-based, напр. DBSCAN). Кластер — це область високої щільності точок, відокремлена розрідженими областями. Знаходять кластери довільної форми й автоматично позначають викиди.
- Решіткові методи (англ. grid-based, напр. STING, CLIQUE). Розбивають простір ознак на скінченну сітку комірок і працюють з комірками, а не окремими точками, — дуже швидко на великих даних.
- Модельні методи (англ. model-based). Припускають, що дані породжені сумішшю розподілів (напр., суміш гаусіан, GMM), і підбирають параметри моделі; належність об’єкта до кластера стає ймовірнісною.
У цій лекції ми зосереджуємось на найпоширенішому методі розбиття — -середніх, — а в кінці розглянемо його «м’який», модельний за духом варіант — нечіткий -середніх (§9.9).
9.4 Поняття та функції відстані
«Схожість» об’єктів у кластеризації задають через відстань: близькі об’єкти схожі, далекі — різні. Щоб відстань поводилася розумно, від функції вимагають властивостей метрики.
Означення (метрика). Функція є метрикою (функцією відстані), якщо для всіх :
- невід’ємність та тотожність: , причому ;
- симетричність: ;
- нерівність трикутника: .
Для векторів ознак і найуживаніші відстані — окремі випадки відстані Мінковського порядку :
Означення (відстань Мінковського).
Три важливі окремі випадки:
| Назва | Формула | |
|---|---|---|
| Манхеттенська (міська, ) | $\displaystyle\sum_{i} | |
| Евклідова () | ||
| Чебишова () | $\displaystyle\max_{i} |
Евклідова відстань — звичайна «пряма» відстань між точками; манхеттенська рахує шлях уздовж осей (як кварталами міста); чебишова бере найбільше з покоординатних відхилень. Метод -середніх за замовчуванням використовує евклідову відстань (точніше, її квадрат — див. §9.5).
Приклад 9.3 (обчислення відстаней). Нехай , . Покоординатні відхилення: , . Тоді
Відстань Мінковського порядку : . Зі зростанням відстань зменшується від до .

Типова помилка (несумірні ознаки). Якщо ознаки мають різні масштаби (напр., «вік» у роках і «дохід» у гривнях ), евклідова відстань майже цілком визначається доходом — вік «тоне». Перед кластеризацією ознаки зазвичай нормалізують (напр., до нульового середнього й одиничної дисперсії), щоб кожна робила співмірний внесок у відстань. Це робитимете й у домашньому завданні (середній рівень).
9.5 Метод -середніх. Сума квадратів помилок
Метод -середніх (-means) — найвідоміший метод розбиття. Ідея: кожен кластер представлений своїм центром — центроїдом , — а об’єкти відносять до найближчого центроїда. Якість такого розбиття вимірюють сумою квадратів помилок.
Означення (центроїд). Центроїд кластера — це середнє (центр ваги) його об’єктів:
Означення (сума квадратів помилок, SSE). Цільова функція методу -середніх — сума квадратів помилок (англ. sum of squared errors): сума квадратів відстаней від кожного об’єкта до центроїда його кластера:
Величина вимірює компактність кластерів: що щільніше об’єкти згруповані навколо своїх центрів, то вона менша. Формальна задача -середніх:
Формальна задача. Знайти розбиття , що мінімізує . Точний розв’язок — NP-складна задача (перебір розбиттів, §9.2), тому -середніх шукає локальний мінімум ітераційно.
Чому центроїд — це саме середнє? Бо для фіксованого набору точок кластера середнє — це та точка , що мінімізує (сума квадратів відстаней). Це прямий наслідок того, що середнє мінімізує дисперсію (Лекція 2). Тому крок «перерахувати центр як середнє» гарантовано зменшує (не збільшує) SSE — саме на цьому тримається збіжність алгоритму.
9.6 Алгоритм -середніх
Алгоритм чергує два кроки: віднесення точок до найближчих центрів і перерахунок центрів як середніх утворених кластерів.
kMeans(точки X, число кластерів k):
1. ІНІЦІАЛІЗАЦІЯ: обрати k псевдовипадкових центроїдів mu_1, ..., mu_k
повторювати:
2. ВІДНЕСЕННЯ: кожну точку x віднести до кластера з найближчим центроїдом
c(x) = argmin_c d(x, mu_c)
3. ПЕРЕРАХУНОК: для кожного кластера обчислити новий центроїд
mu_c = (середнє всіх точок кластера C_c)
4. якщо центроїди НЕ ЗМІСТИЛИСЯ -> СТОП (кластери побудовано)
інакше -> повернутися до кроку 2
повернути кластери C_1, ..., C_k та центроїди
Крок 2 (віднесення об’єкта). Об’єкт потрапляє до того кластера, чий центроїд найближчий:
Оскільки корінь — монотонна функція, порівнювати можна квадрати відстаней — це уникає обчислення кореня й дає той самий результат. У прикладах ми все ж показуватимемо самі відстані для наочності.
Крок 4 (критерій збіжності). Алгоритм зупиняється, коли центроїди перестали зміщуватися. Це рівносильно тому, що не змінилося жодне віднесення точок (стабільне розбиття) і що SSE перестала спадати. Можна довести, що кожна ітерація не збільшує SSE, а розбиттів скінченне число, — тож алгоритм завжди збігається за скінченну кількість кроків (на практиці — за кілька ітерацій). На практиці додають і «м’які» критерії: зупинятися, коли зсув центрів менший за поріг або досягнуто максимуму ітерацій.
9.7 Приклад роботи алгоритму
Приклад 9.4. Кластеризуємо точок на площині у кластери:
Візьмемо невдалу ініціалізацію — обидва початкові центроїди зліва: , . Простежимо, як алгоритм її виправляє.
Ітерація 1. Відстані від кожної точки до центрів (евклідові) та віднесення:
| Точка | Кластер | ||
|---|---|---|---|
Розбиття: , . Перераховуємо центроїди як середні:
Після перерахунку (було до першого перерахунку).
Ітерація 2. З новими центрами , :
| Точка | Кластер | ||
|---|---|---|---|
Тепер точки і перейшли до : розбиття стало , — природний поділ «лівих» і «правих» точок. Нові центроїди:
.

Ітерація 3. З цими центрами віднесення не змінюється (; ), тож центроїди лишаються тими самими — критерій збіжності виконано, алгоритм завершено. Простежимо, як монотонно спадала цільова функція:

Відповідь: кластери і з центрами та ; фінальна . Попри «невдалий» старт (обидва центри в одному згустку) алгоритм за дві ітерації знайшов правильне розбиття.

9.8 Сильні та слабкі сторони
Сильні сторони. -середніх простий, швидкий (складність на ітерацій) і добре масштабується на великі дані; результат легко інтерпретувати через центроїди («типовий представник» кластера).
Слабкі сторони й способи їх пом’якшити.
- Треба задати . Число кластерів — вхідний параметр, а «правильне» наперед невідоме. Його підбирають, порівнюючи розбиття за різних : метод ліктя (elbow) шукає , після якого SSE спадає вже повільно; силует (silhouette) оцінює, наскільки об’єкти «свої» у своїх кластерах (докладніше — Лекція 10 та високий рівень лабораторної).
- Чутливість до ініціалізації. Різні початкові центроїди дають різні локальні мінімуми SSE. Рятунок — кілька запусків з різною випадковою ініціалізацією й вибір розбиття з найменшою SSE; розумніший старт дає прийом -means++ (центри розставляють якнайдалі один від одного).
- Чутливість до викидів. Оскільки центр — це середнє, один далекий викид сильно зміщує центроїд. Стійкіший варіант — -медоїдів, де центром є реальний об’єкт (медоїд), а не середнє.
- Сферичні кластери. Мінімізуючи суму квадратів, -середніх схильний утворювати опуклі, приблизно кулясті кластери близького розміру. Витягнуті, вкладені чи різнорозмірні кластери він розділяє погано — там доречніші щільнісні або ієрархічні методи.

Типова помилка (масштаб і викиди — перед кластеризацією). Найчастіші причини «дивних» кластерів — ненормалізовані ознаки (§9.4) та невилучені викиди. І те, й те спотворює відстані та центроїди. Підготовка даних (нормалізація, обробка викидів) для -середніх важливіша за вибір самого алгоритму.
9.9 Нечіткий метод -середніх
У -середніх віднесення жорстке: об’єкт належить рівно одному кластеру. Але межові об’єкти (посередині між двома згустками) природніше вважати такими, що належать частково обом. Цю ідею реалізує нечіткий метод -середніх (англ. fuzzy -means, FCM).
Означення (матриця приналежності). Замість жорсткого віднесення FCM зберігає ступені приналежності — наскільки об’єкт належить кластеру , — причому для кожного об’єкта
Матриця узагальнює жорстке розбиття (де дорівнювало б лише чи ) на «м’яке». Цільова функція зважує кожен квадрат відстані ступенем приналежності, піднесеним до параметра нечіткості (зазвичай ):
Означення (функція втрат FCM).
Алгоритм чергує оновлення центрів і матриці приналежності:
cMeans(точки X, число кластерів k, нечіткість m):
1. ініціалізувати центроїди (або матрицю приналежності U) випадково
повторювати:
2. ПРИНАЛЕЖНІСТЬ: перерахувати u_ic за формулою нижче
3. ЦЕНТРИ: перерахувати mu_c як ЗВАЖЕНЕ середнє (ваги u_ic^m)
4. РОЗРАХУНОК ВТРАТ J_m
5. якщо J_m майже не зменшилася -> СТОП, інакше -> до кроку 2
- Центр — зважене середнє всіх точок (а не лише «своїх»):
- Приналежність — тим більша, чим ближчий об’єкт до центра порівняно з іншими центрами:
Приклад 9.5 (обчислення приналежності). Нехай , центри , , а об’єкт . Відстані: , . При показник , тож формула зводиться до обернених квадратів відстаней:
Об’єкт на належить першому кластеру й на — другому (ближчий до , тож і приналежність до нього більша). Щоб дістати жорстке розбиття, об’єкт відносять до кластера з найбільшою приналежністю.
FCM корисний, коли кластери перекриваються й потрібна «впевненість» віднесення, а не лише мітка; він є містком до модельних методів (§9.3), де приналежність трактують як ймовірність.
Застосування в аналітиці даних
- Сегментація клієнтів. Поділ покупців на групи за поведінкою (сума й частота покупок, категорії товарів) для таргетованого маркетингу — класичне застосування -середніх.
- Стиснення зображень (квантування кольорів). Кластеризація пікселів у просторі кольорів RGB на груп і заміна кожного пікселя центроїдом його кластера зменшує палітру до кольорів.
- Виявлення аномалій. Об’єкти, далекі від усіх центроїдів (з великим внеском у SSE), — кандидати у викиди; щільнісні методи роблять це ще природніше.
- Групування документів і тем. Кластеризація текстів за векторами ознак (частоти слів) виявляє тематичні групи без наперед заданих рубрик.
- Попередній етап для інших методів. Мітки кластерів часто стають новою ознакою або способом стиснути дані перед класифікацією чи візуалізацією.
Підсумок
- Кластеризація — поділ вибірки на групи схожих об’єктів без заздалегідь відомих міток; це навчання без учителя, на відміну від класифікації (з учителем) з Модуля 3.
- Точний перебір розбиттів неможливий: їх число — Стірлінга (для двох груп ) — росте надзвичайно швидко (уже , а ). Тому всі методи — евристики.
- Методи діляться на розбиття, ієрархічні, щільнісні, решіткові, модельні.
- Схожість вимірюють відстанню: евклідова (), манхеттенська (), Мінковського (), чебишова (). Ознаки різного масштабу нормалізують.
- -середніх мінімізує суму квадратів помилок , чергуючи віднесення точок до найближчого центроїда й перерахунок центроїдів як середніх. Збігається, коли центроїди перестають зміщуватися; SSE монотонно спадає. У прикладі кластери , дали .
- Слабкі місця -середніх: треба задати ; чутливість до ініціалізації (рятують кілька запусків / -means++) та викидів (-медоїдів); схильність до сферичних кластерів.
- Нечіткий -середніх дає м’яке віднесення — матрицю приналежності () — і мінімізує , оновлюючи центри зваженим середнім.
Вправи
Для розігріву
- Чим кластеризація відрізняється від класифікації? Наведіть по одному прикладу задачі кожного типу з вашої предметної області.
- Для точок і обчисліть манхеттенську, евклідову та чебишову відстані. Яка з них найбільша, яка найменша й чому?
- Запишіть означення SSE. Що станеться зі значенням SSE, якщо збільшити аж до (кожна точка — окремий кластер)?
Стандартні
- Обчисліть і за рекурентною формулою, спираючись на рядок трикутника. Перевірте формулою .
- Дано точки , , , , , і . Узявши початкові центроїди , , виконайте одну ітерацію -середніх: віднесіть точки й перерахуйте центроїди.
- Для об’єкта і центрів , обчисліть нечіткі приналежності при . До якого кластера віднести за жорстким рішенням?
Підвищеної складності
- Доведіть, що для фіксованого кластера точок сума квадратів відстаней мінімальна саме при (центроїд — середнє). (Підказка: розкрийте квадрат покоординатно й прирівняйте похідну за до нуля.)
- Поясніть, чому кожна ітерація -середніх не збільшує SSE (розгляньте окремо крок віднесення й крок перерахунку) і чому звідси випливає збіжність за скінченну кількість кроків. Чи гарантує це глобальний мінімум?
- Наведіть приклад розташування точок на площині, для якого -середніх з дає різні розбиття залежно від початкових центроїдів. Як на практиці борються з цією залежністю від ініціалізації?
- Виведіть, що для двох кластерів () число можливих непорожніх розбиттів об’єктів дорівнює , і поясніть комбінаторний сенс кожного доданка у виведенні.