K-Means Clustering

Лабораторія кластеризації K-Means

Інтерактивний 2D симулятор з регіонами Вороного, оновленням центроїдів та відстеженням інерції.

K-Means ділить дані на K кластерів, мінімізуючи квадратичну відстань всередині кластерів (інерцію).

$$ J = \sum_{i=1}^{N} \min_{1 \leq j \leq K} \left\lVert x_i - \mu_j \right\rVert^2 $$

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

Алгоритм чергує два детерміновані кроки:

$$ c_i \leftarrow \arg\min_j \lVert x_i - \mu_j \rVert^2 $$

$$ \mu_j \leftarrow \frac{1}{|C_j|}\sum_{x_i \in C_j} x_i $$

Інерція монотонно зменшується до локального оптимуму.

Випадкова ініціалізація проста, але може стартувати з поганих seed.

k-means++ розносить початкові центроїди, часто даючи швидшу збіжність і нижчу фінальну інерцію.

У продакшені використовуйте кілька запусків з різними seed, щоб зменшити чутливість до локальних мінімумів.

  1. Завантажте demo точки і порівняйте Random vs k-means++ ініціалізацію.
  2. Спробуйте різні значення K та огляньте межі регіонів і кількість кластерів.
  3. Використовуйте Step, щоб переглядати один цикл assign/update за раз.
  4. Запустіть до збіжності та порівняйте фінальні значення інерції.

Клікніть по полотну, щоб додати точки. На touch довге натискання або правий клік видаляє найближчу точку.

Статус
Точки: 0
K: 3
Ітерація: 0
Інерція: -
Зсув центроїда: -
Крива інерції
Підсумок кластерів