Открыть сервис

Алгоритм k-средних

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

История

Метод k-средних был впервые предложен в 1956 году Стюартом Ллойдом в рамках работы над квантованием сигналов в лаборатории Bell Labs, однако его статья была опубликована только в 1982 году. В 1965 году польский математик Ежи Мацкун (Jerzy MacQueen) независимо разработал и формализовал алгоритм, введя термин «k-средние» и описав итеративную процедуру. В 1967 году Джеймс Маккуин (James MacQueen) опубликовал работу, закрепившую название метода. С тех пор алгоритм многократно модифицировался и оптимизировался, став базовым инструментом в задачах кластеризации.

Описание алгоритма

Алгоритм k-средних работает итеративно, последовательно уточняя положение центров кластеров. Входными данными являются набор из n объектов (каждый описывается d признаками) и число кластеров k. Основная цель — минимизировать целевую функцию:

\[ J = \sum_{i=1}^{k} \sum_{x \in C_i} \|x - \mu_i\|^2 \]

где \(C_i\) — множество точек, принадлежащих кластеру \(i\), а \(\mu_i\) — центроид этого кластера.

Базовый алгоритм (алгоритм Ллойда)

  1. Инициализация. Выбираются k начальных центров кластеров (центроидов). Это могут быть случайные точки из набора данных или случайные значения в пространстве признаков.
  2. Шаг присваивания. Каждый объект относится к тому кластеру, центроид которого находится к нему ближе всего (обычно по евклидову расстоянию).
  3. Шаг обновления. Для каждого кластера вычисляется новый центроид как среднее арифметическое всех точек, входящих в этот кластер.
  4. Проверка сходимости. Если центроиды не изменились (или изменение меньше заданного порога), алгоритм завершает работу. Иначе повторяются шаги 2 и 3.

Инициализация центроидов

Качество работы алгоритма сильно зависит от начального выбора центроидов. Наиболее распространённые методы:

Выбор числа кластеров

Одна из ключевых проблем алгоритма — необходимость заранее задавать число кластеров k. Для его определения используются эвристические методы:

Свойства и ограничения

Достоинства

Недостатки

Модификации и варианты

Применение

Алгоритм k-средних широко используется в различных областях:

Пример работы

Рассмотрим простой пример: набор точек на плоскости (признаки — координаты x и y). Пусть k = 2. После инициализации двух случайных центроидов алгоритм последовательно перераспределяет точки между двумя кластерами, пока центроиды не стабилизируются. В результате точки сгруппируются в два компактных облака, каждое со своим центром.

Интересные факты

Критика

Основная критика метода k-средних связана с его ограничениями: необходимость заранее задавать число кластеров, чувствительность к выбросам и непригодность для невыпуклых кластеров. В научных работах часто отмечается, что для сложных структур данных (например, с перекрывающимися кластерами или неравномерной плотностью) предпочтительнее использовать другие методы, такие как DBSCAN, иерархическая кластеризация или спектральная кластеризация.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →