Метод K-средних
Кластеризация представителями
Повторим общую схему работы метода представителей:
-
Инициализировать .
-
ПОВТОРЯТЬ до сходимости:
-
Для обновить метки кластеров:
-
Для обновить центроиды кластеров:
-
-
ВЕРНУТЬ .
Здесь
-
индексы объектов, принадлежащих кластеру ;
-
назначения объектам номеров их кластеров ;
-
центры каждого кластера , называемые также центроидами.
Кластеризация методом средних
Метод средних (K-Means) является самым популярным частным случаем общего алгоритма представителей. Он получается, если в качестве меры расстояния выбрать квадрат Евклидова расстояния:
где — вектор объекта, а — вектор центра кластера. Инде кс здесь обозначает номер признака.
Минимизируемая функция потерь называемая инерцией или внутрикластерной суммой квадратов и выглядит так:
Расчёт центроидов
Почему же метод называется " средних"? Рассмотрим шаг обновления центров при фиксированных метках кластеров . Нам нужно найти такой вектор , который минимизирует сумму квадратов расстояний до всех объектов , входящих в кластер :
Функция является суммой квадратичных функций, а значит — строго выпуклой (параболоиды с ветвями вверх). Следовательно, условие равенства градиента нулю является не только необходимым, но и достаточным условием глобального минимума.
Возьмем производную по вектору и приравняем её к нулю:
Раскрывая сумму, получаем:
Отсюда следует формула пересчета:
Таким образом, оптимальным представителем кластера по квадрату метрики является среднее арифметическое всех объектов этого кластера.
Алгоритм Ллойда
Классическая реализация метода средних называется алгоритмом Ллойда. Она выглядит следующим образом:
-
Инициализировать центры (случайно или методом K-means++).
-
ПОВТОРЯТЬ до сходимости:
-
Для обновить метки кластеров (Assign step):
-
Для обновить центроиды кластеров (Update step):
-
-
ВЕРНУТЬ .
Метод K-средних, как частный случай метода K-представителей, чувствителен к начальной инициализации центров кластеров. К нему применимы те же приёмы повышения эффективности инициализации, что и для метода K-представителей.
Пример работы
Ниже приведен процесс работы алгоритма шаг за шагом:

Кластеризация рукописных цифр (MNIST):
Если кластеризовать уменьшенные до двух измер ений с помощью метода главных компонент данные датасета Digits (рукописные цифры [1]), то разбиение на кластера будет следующим [2]:

Метод всегда возвращает кластеров, где специфицированно пользователем, даже если кластерная структура в данных реально отсутствует, как на примере ниже:
