K-Means++: Розумна ініціалізація — кожен наступний центроїд обирається з ймовірністю ∝ d² від найближчого існуючого.
Метод ліктя: Графік WCSS vs K; оптимальне K — у точці «ліктя».
Ця симуляція візуалізує K-Means — алгоритм навчання без учителя, який розбиває набір 2D-точок на K груп. Він чергує два кроки, доки центроїди не перестануть рухатися: призначення, коли кожна точка приєднується до найближчого центроїда за квадратом евклідової відстані, та оновлення, коли кожен центроїд переміщується в середню позицію призначених йому точок. Затінений фон Вороного показує область, яку наразі займає кожен центроїд, а збіжність оголошується, коли рух центроїдів падає нижче крихітного порогу.
Повзунок K задає кількість кластерів (від 2 до 8); «Крок» виконує одну ітерацію, «Запуск» автоматично повторює цикл, а «Скидання» очищає призначення. Перемикачі керують накладанням Вороного, слідами центроїдів та ініціалізацією K-Means++. Генератори створюють згустки, півмісяці та кільцеві дані, а панель «Лікоть» будує внутрішньокластерну суму квадратів (WCSS) залежно від K. K-Means лежить в основі сегментації клієнтів, квантування кольорів зображень та групування документів.
Що таке кластеризація K-Means?
K-Means — це алгоритм навчання без учителя, який ділить непомічені дані на K груп так, щоб точки всередині кластера були якомога ближчими одна до одної. Він робить це, знаходячи K центроїдів (центрів кластерів) і призначаючи кожну точку до найближчого з них. Тут ви можете додавати точки, обирати K та спостерігати, як центроїди займають свої місця.
Як насправді працює цей алгоритм?
Він повторює два кроки. Спершу кожна точка призначається до найближчого центроїда за квадратом евклідової відстані. Потім кожен центроїд переміщується в середнє значення призначених йому точок. Ці два кроки чергуються, і загальний розкид зменшується з кожним раундом, доки центроїди майже не перестануть рухатися — у цей момент алгоритм досягає збіжності.
Що роблять елементи керування на цій сторінці?
Повзунок K задає кількість кластерів (від 2 до 8). «Крок» виконує одну ітерацію; «Запуск» анімує ітерації кожні 300 мс; «Скидання» очищає призначення. Перемикачі вмикають або вимикають області Вороного, пунктирні сліди центроїдів та ініціалізацію K-Means++. Кнопки даних генерують набори точок у вигляді згустків, півмісяців чи кілець, а також ви можете клацати по полотну, щоб додавати точки вручну.
WCSS — це внутрішньокластерна сума квадратів: загальна квадратична відстань від кожної точки до призначеного їй центроїда. Менший WCSS означає щільніші кластери. Панель «Статус» повідомляє кількість точок, поточну ітерацію, поточний WCSS (показаний у тисячах) та чи досяг алгоритм збіжності.
Метод «Лікоть» допомагає обрати розумне K. Він запускає K-Means для K від 2 до 8 і відображає отриманий WCSS у вигляді стовпчиків. WCSS завжди падає зі зростанням K, але темп покращення різко сповільнюється в точці, яка виглядає як лікоть на кривій. Цей вигин зазвичай позначає вдалий компроміс між якістю припасування та простотою.
Випадкова ініціалізація просто обирає K наявних точок як початкові центроїди, що може розмістити кілька з них поруч і призвести до поганих результатів. K-Means++ розставляє їх ширше: після випадкового першого центроїда кожен наступний обирається з імовірністю, пропорційною квадрату його відстані від найближчого наявного центроїда, що дає швидшу й надійнішу збіжність.
Ледь помітний кольоровий фон показує області Вороного: кожен піксель забарвлюється тим центроїдом, який є найближчим, тож межі виявляють кордон рішення між кластерами. Пунктирні лінії — це сліди центроїдів, що простежують шлях, який кожен центроїд долає від початкової позиції до свого кінцевого спокою впродовж ітерацій.
Часто ні, і саме в цьому полягає сенс їх включення. K-Means припускає приблизно круглі кластери схожого розміру, бо спирається на відстань до єдиного центру. Дані у вигляді півмісяців та концентричних кілець є неопуклими, тож K-Means схильний незграбно їх розрізати. Вони ілюструють, де методи на основі щільності чи графів впоралися б краще.
K-Means чутливий до своїх початкових центроїдів, а ініціалізація тут рандомізована. Різні старти можуть зійтися до різних локальних оптимумів, тож WCSS і кінцеві групування можуть відрізнятися між запусками. K-Means++ зменшує цю мінливість, і на практиці аналітики запускають алгоритм кілька разів і залишають результат з найнижчим WCSS.
Це один з найпоширеніших методів кластеризації. Застосування включають сегментацію клієнтів і ринку, стиснення зображень шляхом зведення їх до K репрезентативних кольорів, групування документів чи результатів пошуку за темою, виявлення аномалій та попередню обробку даних перед іншими моделями машинного навчання. Його швидкість і простота роблять його поширеним першим вибором.