K-means — это алгоритм кластеризации, относящийся к неконтролируемому обучению. Возможно, вы слышали о K-ближайших соседях. Оба слова содержат одну и ту же букву «К», так что вы можете подумать, что они представляют собой похожий алгоритм или имеют что-то общее. Однако это разные алгоритмы.

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

С левой стороны есть линия с 12 черными точками. Мы можем легко разделить эти точки на 3 группы глазами. Мы можем идентифицировать те же кластеры с помощью компьютера, используя алгоритмы k-средних.

K-средний механизм кластеризации

Метод k-средних состоит из нескольких шагов. Для простоты возьмем приведенный выше пример.

  • Шаг 1. Выберите количество кластеров (k), которые вы хотите идентифицировать в своих данных. В этом примере мы выбрали три кластера.
  • Шаг 2. Случайным образом выберите три (k) различных точек данных.

  • Шаг 3. Измерьте расстояние между точками и тремя исходными кластерами.
  • Шаг 4. Назначьте точку ближайшему кластеру в соответствии с расстоянием.

  • Шаг 5. Вычислите среднее значение для каждого кластера.
  • Шаг 6. Оцените качество кластеризации, суммируя различия в каждом кластере.
  • Шаг 7. Повторите эти основные шаги много раз и сравните общие отклонения.

После повторения этих шагов мы получим много результатов общей дисперсии и сравним их. Метод K-средних выберет результат наименьшей общей дисперсии. Общая дисперсия примера больше, чем у лучшей кластеризации. Это означает, что лучшая кластеризация лучше, чем наш случайный пример, так что алгоритм k-средних отбросит наш пример. До сих пор мы рассматривали одномерные данные. Таким же образом можно использовать кластеризацию K-средних для многомерных данных. К сожалению, алгоритм K-средних не знает наилучшей кластеризации в начале. По этой причине этот метод должен повторять все шаги снова с разными начальными точками.

Оптимальное значение К

В этот момент некоторые люди могут задаться вопросом, как выбрать количество кластеров «k». Есть несколько способов найти оптимальное значение k. Самый простой способ найти оптимальное значение k — использовать «правило локтя». Прежде чем рассматривать правило локтя, мы должны знать, что такое инерция. Инерция в K-средних относится к среднему квадрату расстояния между каждым экземпляром и ближайшим к нему центроидом (Géron, 2019). Наша цель — сохранить низкое значение инерции. Однако у вас будет меньшая инерция с большим значением k. Чтобы решить эту проблему, мы можем использовать правило локтя, построив график зависимости инерции от k. Правильным выбором будет k = 4 в соответствии с правилом локтя (график 5).

Однако выбор k с помощью правила локтя — не лучшее решение. Например, Локоть иногда незаметен на сюжете. Альтернативный, более точный подход – использование оценки силуэта. По словам Жерона, «показатель силуэта, который является средним коэффициентом силуэта по всем экземплярам. Коэффициент силуэта экземпляра равен (b — a) / max(a, b), где a — среднее расстояние до других экземпляров в том же кластере (это среднее расстояние внутри кластера), а b — среднее расстояние до ближайшего кластера, то есть среднее расстояние до экземпляров следующий ближайший кластер (определяется как тот, который минимизирует b, исключая собственный кластер экземпляра). Коэффициент силуэта может варьироваться от -1 до +1: коэффициент, близкий к +1, означает, что экземпляр находится внутри своего кластера и далеко от других кластеров, а коэффициент, близкий к 0, означает, что экземпляр находится близко к границе кластера. и, наконец, коэффициент, близкий к -1, означает, что экземпляр мог быть отнесен не к тому кластеру».

‹Версия 1›

Справочник

  1. Стармер, Дж., StatQuest: кластеризация K-средних, (2018), https://www.youtube.com/watch?v=4b5d3muPQmA&t=265s (дата обращения: 01.02.2021)
  2. Герон А. (2019 г.), Практическое машинное обучение с помощью Scikit-Learn, Keras и TensorFlow, 2-е изд., Севастополь: O’Reilly Media, Inc.