🤖 Кластеризація K-Means — візуалізатор машинного навчання
Інтерактивний візуалізатор кластеризації K-Means із зонами Вороного, ініціалізацією K-Means++, траєкторіями центроїдів та методом ліктя. Генеруйте хмари, піввмісяці або кільця, додавайте власні точки та покроково спостерігайте за алгоритмом.
Про кластеризацію K-Means
Ця симуляція візуалізує 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 означає щільніші кластери. Панель статусу показує кількість точок, поточну ітерацію, поточний WCSS (у тисячах) і чи досягнуто збіжності.
Що таке метод ліктя на бічній панелі?
Метод ліктя допомагає обрати розумне значення K. Він запускає K-Means для K від 2 до 8 і будує стовпчики отриманого WCSS. WCSS завжди спадає зі зростанням K, але темп покращення різко сповільнюється в точці, що виглядає як «лікоть» на кривій. Цей злам зазвичай позначає гарний компроміс між точністю та простотою.
Чим ініціалізація K-Means++ відрізняється від випадкової?
Випадкова ініціалізація просто обирає K наявних точок як стартові центроїди, що може розмістити кілька з них поруч і призвести до гірших результатів. K-Means++ розподіляє їх рівномірніше: після випадкового першого центроїда кожен наступний обирається з імовірністю, пропорційною квадрату відстані до найближчого наявного центроїда, що дає швидшу й надійнішу збіжність.
Що таке зони Вороного та пунктирні лінії?
Блідий кольоровий фон показує зони Вороного: кожен піксель забарвлюється кольором найближчого центроїда, тож межі показують межу рішення між кластерами. Пунктирні лінії — це траєкторії центроїдів, що простежують шлях кожного центроїда від початкової позиції до кінцевого положення протягом ітерацій.
Чи добре K-Means впорається з формами піввмісяців і кілець?
Часто ні, і саме тому їх додали. K-Means передбачає приблизно круглі кластери схожого розміру, оскільки покладається на відстань до єдиного центру. Дані у формі піввмісяців і концентричних кілець невипуклі, тож K-Means зазвичай ріже їх незграбно. Вони ілюструють, де методи на основі щільності чи графів працювали б краще.
Чому ті самі дані можуть давати різні результати щоразу?
K-Means чутливий до своїх стартових центроїдів, а ініціалізація тут рандомізована. Різні старти можуть осідати в різних локальних оптимумах, тож WCSS і кінцеве групування можуть відрізнятися між запусками. K-Means++ зменшує цю мінливість, а на практиці аналітики запускають алгоритм кілька разів і залишають результат із найменшим WCSS.
Де K-Means використовується в реальному світі?
Це один із найпоширеніших методів кластеризації. Застосування включають сегментацію клієнтів і ринку, стиснення зображень шляхом зведення до K репрезентативних кольорів, групування документів чи результатів пошуку за темою, виявлення аномалій та попередню обробку даних перед іншими моделями машинного навчання. Швидкість і простота роблять його поширеним першим вибором.