Назад к темам

Алгоритм k-means: шаги и сходимость

Тренироваться
1

Алгоритм k-means: шаги и сходимость

Зачем это в ЕГЭ.
Алгоритм k-means может встретиться в задании 27 ЕГЭ по информатике, которое оценивается в 2 первичных балла. Задача проверяет умение работать с кластеризацией данных и понимание основных шагов алгоритма. В реальных вариантах ФИПИ такие задачи встречаются редко, но их знание может быть полезным для общего понимания методов анализа данных.

Главная идея.
Алгоритм k-means используется для кластеризации данных — разделения множества объектов на группы (кластеры) так, чтобы объекты внутри одного кластера были похожи друг на друга, а между кластерами — максимально различны. Основная идея — итеративное уточнение центров кластеров до тех пор, пока они не перестанут изменяться.

Алгоритм (чеклист).
1. Выбери начальные центры кластеров (например, случайно или на основе первых k объектов).
2. Распредели все объекты по ближайшим центрам кластеров.
3. Пересчитай центры кластеров как среднее значение всех объектов в кластере.
4. Повторяй шаги 2 и 3 до тех пор, пока центры кластеров не перестанут изменяться.
5. Проверь, что объекты действительно разделены на кластеры корректно.

Опоры (кратко).
- Формула расстояния между объектами:

d(x,y)=i=1n(xiyi)2d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}


- Формула нового центра кластера:
cj=1CjxCjxc_j = \frac{1}{|C_j|} \sum_{x \in C_j} x

Пример 1 (базовый подтип).
Даны точки: A(1, 2), B(2, 3), C(4, 5), D(5, 6). Разделить их на 2 кластера.
Шаг 1. Выберем начальные центры: кластер 1 — A(1, 2), кластер 2 — B(2, 3).
Шаг 2. Распределим точки: кластер 1 — A, кластер 2 — B, C, D.
Шаг 3. Пересчитаем центры: кластер 1 — (1, 2), кластер 2 — ((2+4+5)/3, (3+5+6)/3) = (3.67, 4.67).
Шаг 4. Повторяем распределение: кластер 1 — A, B, кластер 2 — C, D.
Шаг 5. Новые центры: кластер 1 — (1.5, 2.5), кластер 2 — (4.5, 5.5).
Шаг 6. Центры больше не изменяются.

Пример 2 (усложнённый подтип).
Даны точки: A(1, 1), B(2, 2), C(3, 3), D(4, 4), E(5, 5). Разделить их на 3 кластера.
Шаг 1. Выберем начальные центры: кластер 1 — A(1, 1), кластер 2 — C(3, 3), кластер 3 — E(5, 5).
Шаг 2. Распределим точки: кластер 1 — A, B, кластер 2 — C, D, кластер 3 — E.
Шаг 3. Пересчитаем центры: кластер 1 — (1.5, 1.5), кластер 2 — (3.5, 3.5), кластер 3 — (5, 5).
Шаг 4. Повторяем распределение: кластер 1 — A, B, кластер 2 — C, D, кластер 3 — E.
Шаг 5. Центры больше не изменяются.

Типичные ошибки.
1. Неправильный выбор начальных центров. Это может привести к некорректной кластеризации.
2. Игнорирование проверки сходимости. Алгоритм может не завершиться, если не проверять изменение центров.
3. Ошибка в формуле расстояния. Неправильное вычисление расстояния между точками приводит к неверному распределению.
4. Неправильный пересчёт центров. Центр кластера должен быть средним значением всех точек в кластере.
5. Недостаточное количество итераций. Алгоритм может не достичь сходимости, если остановиться слишком рано.

Дальше.
Изучи другие методы кластеризации, например, иерархическую кластеризацию или DBSCAN.

Теория изучена?

Закрепи знания на практике — переходи к тренировке!

Тренироваться