Что такое кластеризация k-средних?

Как упоминалось ранее, многие алгоритмы кластеризации не масштабируются для наборов данных, используемых в машинном обучении, которые часто имеют миллионы примеров. Например, алгоритмы агломеративной или разделительной иерархической кластеризации рассматривают все пары точек и имеют сложность \(O(n^2 log(n))\) и \(O(n^2)\), соответственно.

В этом курсе основное внимание уделяется k-средним, поскольку они масштабируются как \(O(nk)\), где \(k\)— количество кластеров, выбранных пользователем. Этот алгоритм группирует точки в\(k\) кластеры путем минимизации расстояний между каждой точкой и центроидом ее кластера (см. рисунок 1).

В результате k-средние эффективно рассматривают данные как состоящие из ряда примерно круговых распределений и пытаются найти кластеры, соответствующие этим распределениям. Но реальные данные содержат выбросы и кластеры на основе плотности и могут не соответствовать предположениям, лежащим в основе k-средних.

алгоритм кластеризации k-средних

Алгоритм состоит из следующих шагов:

  1. Предоставьте первоначальное предположение о \(k\), который можно будет изменить позже. Для этого примера мы выбираем \(k = 3\).

  2. Случайно выбрать \(k\) центроиды.

    График k-средних при   инициализация, показывающая три случайно выбранных центроида
    Рисунок 1: k-средние при инициализации.

  3. Присвойте каждую точку ближайшему центроиду, чтобы получить \(k\) начальные кластеры.

    Каждой точке присвоен цвет ее   ближайший центр тяжести
    Рисунок 2: Начальные кластеры.

  4. Для каждого кластера вычислите новый центроид, взяв среднее положение всех точек в кластере. Стрелки на рисунке 4 показывают изменение положения центроидов.

    Показывает новые центроиды ближе к   центр каждого цветного кластера
    Рисунок 3: Пересчитанные центроиды.

  5. Переназначьте каждую точку ближайшему новому центроиду.

    Скорректированные кластеры после переназначения   к новым центроидам
    Рисунок 4: Кластеры после переназначения.

  6. Повторяйте шаги 4 и 5, пересчитывая центроиды и членство в кластере, пока точки не перестанут изменять кластеры. В случае больших наборов данных вы можете остановить алгоритм до сходимости по другим критериям.

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

Хотя глубокое понимание математики не требуется, для любопытных: k-средние — это частный случай алгоритма максимизации ожидания . См. конспекты лекций по этой теме от UPenn.