Лаборатория 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++ разносит начальные центры, часто ускоряя сходимость и снижая итоговую инерцию.
В продакшене используйте несколько запусков с разными сидами для снижения чувствительности к локальным минимумам.
- Загрузите демо-точки и сравните Random vs k-means++ инициализацию.
- Попробуйте разные K и исследуйте границы регионов и количество кластеров.
- Используйте Step, чтобы анализировать один цикл назначение/обновление.
- Запустите до сходимости и сравните итоговые инерции.
Кликните по холсту, чтобы добавить точки. На тач-устройствах удерживайте или нажмите правой кнопкой, чтобы удалить ближайшую точку.