🎯 Кластеризація K-Means — Машинне навчання
Покrokово виконуйте k-means кластеризацію: спостерігайте за збіжністю центроїдів, оновленням областей Вороного та зменшенням інерції (WCSS).
Покrokово виконуйте k-means кластеризацію: спостерігайте за збіжністю центроїдів, оновленням областей Вороного та зменшенням інерції (WCSS).
Ця симуляція візуалізує k-means — класичний алгоритм навчання без учителя, який розбиває точки на k груп. Він чергує два кроки: призначає кожну точку найближчому центроїду (використовуючи квадрат евклідової відстані), а потім переміщує кожен центроїд у середню позицію призначених йому точок. Це повторюється, доки призначення не перестануть змінюватися. Затінені області Вороного показують територію кожного центроїда, а графік інерції відстежує суму квадратів відстаней усередині кластера, WCSS = Σ|xᵢ − μ|².
Симуляція демонструє повний цикл k-means на різних наборах даних: гаусові скупчення (blobs), концентричні кола, два півмісяці, рівномірний шум або власний набір, який ви створюєте, клацаючи по полотну. Це дозволяє побачити, коли алгоритм працює добре, а коли — ні.
Повзунок k задає кількість кластерів (1–8), а меню наборів даних обирає форму точок. Кнопка «Крок» виконує одну ітерацію, «Авто» запускає алгоритм безперервно, а «Скинути» повторно ініціалізує центроїди.
Ініціалізація використовує k-means++, який розподіляє початкові центроїди по простору для швидшої та надійнішої збіжності. K-means лежить в основі сегментації клієнтів, квантування кольорів зображень і групування документів.
K-means — це алгоритм навчання без учителя, який розбиває дані на k кластерів, мінімізуючи сумарну квадратичну відстань між точками та центром їхнього кластера, який називається центроїдом. Він є навчанням без учителя, тому що мітки не задаються — структура виявляється виключно на основі того, як точки розташовані у просторі. Це один із найпоширеніших методів кластеризації в машинному навчанні.
Спочатку розміщуються k центроїдів, потім кожна точка призначається найближчому центроїду, а насамкінець кожен центроїд переміщується в середню позицію призначених йому точок. Ці кроки призначення й оновлення повторюються, доки жодна точка не змінює свій кластер. У цій симуляції кожне натискання кнопки «Крок» виконує одну повну ітерацію цього циклу.
Повзунок k задає, скільки кластерів шукає алгоритм — від 1 до 8. Його зміна перезавантажує набір даних і повторно ініціалізує центроїди. Правильний вибір k важливий: занадто мале значення об'єднує різні групи, а занадто велике розбиває одну групу на фрагменти.
Інерція, яку також називають сумою квадратів відстаней усередині кластера (WCSS, within-cluster sum of squares), — це сума квадратів відстаней від кожної точки до центроїда її кластера. Формула: WCSS = Σ|xᵢ − μ|². K-means намагається зробити це значення якомога меншим, і графік показує, як воно зменшується в міру збіжності алгоритму.
Кожна затінена область позначає ділянку полотна, яка ближча до одного конкретного центроїда, ніж до будь-якого іншого. Це комірки Вороного, і їхні межі — це саме ті місця, де точка переходила б з одного кластера в інший. Коли центроїди рухаються під час ітерацій, ці області змінюють форму, слідуючи за ними.
Алгоритм досягає збіжності, коли цілий крок призначення не спричиняє жодної зміни кластера для жодної точки. У цей момент центроїди вже перебувають у середньому положенні своїх точок, тож крок оновлення більше не може їх зрушити. Індикатор «Збіжність» перемикається на «Так», і режим «Авто» автоматично зупиняється.
K-means++ — це розумніший спосіб вибору початкових центроїдів. Після випадкового вибору першого центроїда кожен наступний обирається з імовірністю, пропорційною квадрату його відстані до найближчого вже обраного центроїда, що розподіляє їх по простору. Ця симуляція використовує k-means++, що зменшує ризик поганих локальних мінімумів і зазвичай пришвидшує збіжність.
Не дуже добре. K-means передбачає приблизно круглі кластери однакового розміру, оскільки спирається на відстань до єдиної середньої точки. Концентричні кола та переплетені півмісяці не розділяються таким способом, тому k-means розрізає їх на клини замість того, щоб відтворити їхню справжню форму. Ці набори даних додано саме для того, щоб показати це важливе обмеження.
Ні. K-means гарантовано досягає збіжності, але лише до локального мінімуму інерції, а не обов'язково глобально найкращого результату. Результат залежить від початкових центроїдів, тому різні перезапуски можуть давати різні результати. K-means++ допомагає, але не усуває цю чутливість повністю.
K-means застосовують для сегментації клієнтів і ринку, стиснення зображень шляхом зведення їх до невеликої палітри репрезентативних кольорів, групування документів або новинних статей за темами, а також виявлення аномалій, що лежать далеко від будь-якого кластера. Його швидкість і простота роблять його поширеним першим вибором для розвідувального аналізу даних.