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 $$

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

Случайная инициализация проста, но может стартовать из плохих сидов.

k-means++ разносит начальные центры, часто ускоряя сходимость и снижая итоговую инерцию.

В продакшене используйте несколько запусков с разными сидами для снижения чувствительности к локальным минимумам.

  1. Загрузите демо-точки и сравните Random vs k-means++ инициализацию.
  2. Попробуйте разные K и исследуйте границы регионов и количество кластеров.
  3. Используйте Step, чтобы анализировать один цикл назначение/обновление.
  4. Запустите до сходимости и сравните итоговые инерции.

Кликните по холсту, чтобы добавить точки. На тач-устройствах удерживайте или нажмите правой кнопкой, чтобы удалить ближайшую точку.

Статус
Точки: 0
K: 3
Итерация: 0
Инерция: -
Сдвиг центроида: -
Кривая инерции
Сводка по кластерам