Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Задача сложна в вычислительном отношении ( NP-сложная ); однако эффективные эвристические алгоритмы быстро сходятся к локальному оптимуму . Они, как правило , аналогичны алгоритм ожидания-максимизация для смесей из распределений Гаусса с помощью итерационного уточнения подхода , используемого как K-средств и моделирования гауссовой смеси . Оба они используют кластерные центры для моделирования данных; однако k- означает, что кластеризация имеет тенденцию находить кластеры сравнимой пространственной протяженности, тогда как механизм максимизации ожидания позволяет кластерам иметь разные формы.

Алгоритм неконтролируемых k-средних имеет слабую связь с классификатором k- ближайших соседей , популярным методом контролируемого машинного обучения для классификации, который часто путают с k- средними из-за названия. Применение классификатора 1-ближайшего соседа к центрам кластеров, полученным с помощью k -means, классифицирует новые данные по существующим кластерам. Это известно как классификатор ближайшего центроида или алгоритм Роккио .

Описание [ править ]

Учитывая набор наблюдений ( x 1 , x 2 , ..., x n ), где каждое наблюдение является d- мерным вещественным вектором, k- означает, что кластеризация направлена ​​на разделение n наблюдений на k (≤  n ) множеств S  = { S 1S 2 , ...,  S k }, чтобы минимизировать сумму квадратов внутри кластера (WCSS) (т . Е. Дисперсию ). Формально цель - найти:

где μ i - среднее значение точек в S i . Это эквивалентно минимизации попарных квадратов отклонений точек в одном кластере:

Эквивалентность можно вывести из тождества . Поскольку общая дисперсия постоянна, это эквивалентно максимизации суммы квадратов отклонений между точками в разных кластерах (сумма квадратов между кластерами, BCSS) [1], что следует из закона общей дисперсии .

История [ править ]

Термин « k- средние» впервые был использован Джеймсом Маккуином в 1967 году [2], хотя идея восходит к Хьюго Штайнхаусу в 1956 году. [3] Стандартный алгоритм был впервые предложен Стюартом Ллойдом из Bell Labs в 1957 году как методика. для импульсно-кодовой модуляции , хотя он не был опубликован в виде журнальной статьи до 1982 года. [4] В 1965 году Эдвард В. Форги опубликовал, по сути, тот же метод, поэтому его иногда называют алгоритмом Ллойда – Форги. [5]

Алгоритмы [ править ]

Стандартный алгоритм (наивные k-средних) [ править ]

Сходимость k- средних

Наиболее распространенный алгоритм использует метод итеративного уточнения. Из-за его повсеместного распространения его часто называют « алгоритмом k- средних»; его также называют алгоритмом Ллойда , особенно в компьютерном сообществе. Иногда его также называют «наивными k- средними», потому что существуют гораздо более быстрые альтернативы. [6]

При начальном наборе k означает m 1 (1) , ..., m k (1) (см. Ниже), алгоритм действует путем чередования двух шагов: [7]

Этап присвоения : назначьте каждое наблюдение кластеру с ближайшим средним значением: с наименьшим квадратом евклидова расстояния . [8] (Математически это означает разделение наблюдений в соответствии с диаграммой Вороного, сгенерированной средствами.)
где каждому назначается ровно один , даже если он может быть назначен двум или более из них.
Шаг обновления : пересчитайте средние значения ( центроиды ) для наблюдений, назначенных каждому кластеру.

Алгоритм сойдется, когда назначения больше не меняются. Не гарантируется, что алгоритм найдет оптимум. [9]

Алгоритм часто представляется как отнесение объектов к ближайшему кластеру по расстоянию. Использование другой функции расстояния, отличной от (возведенного в квадрат) евклидова расстояния, может препятствовать сходимости алгоритма. Были предложены различные модификации k- средних, такие как сферические k- средние и k -медоиды , позволяющие использовать другие меры расстояния.

Методы инициализации [ править ]

Обычно используемые методы инициализации - это Forgy и Random Partition. [10] Метод Forgy случайным образом выбирает k наблюдений из набора данных и использует их в качестве начальных средств. Метод случайного разбиения сначала случайным образом назначает кластер каждому наблюдению, а затем переходит к этапу обновления, таким образом вычисляя начальное среднее значение как центроид случайно назначенных точек кластера. Метод Forgy имеет тенденцию разбрасывать начальные средние, в то время как Random Partition помещает их все ближе к центру набора данных. Согласно Хамерли и др. [10], метод случайного разбиения обычно предпочтительнее для таких алгоритмов, как k -гармонические средние и нечеткие k- средние. Для максимизации ожиданий и стандартовk -средних алгоритмов, предпочтительнее метод инициализации Forgy. Однако всестороннее исследование, проведенное Селеби и др. [11] , показало, что популярные методы инициализации, такие как Forgy, Random Partition и Maximin, часто работают плохо, тогда как подход Брэдли и Файяда [12] работает «последовательно» в «лучшей группе». а k -means ++ работает "в целом хорошо".

  • Демонстрация стандартного алгоритма
  • 1. k начальных «средств» (в данном случае k = 3) генерируются случайным образом в пределах области данных (показаны цветом).

  • 2. k кластеров создаются путем связывания каждого наблюдения с ближайшим средним. Разбиения здесь представляют диаграмму Вороного, сгенерированную средствами.

  • 3. Центроид каждого из k кластеров становится новым средним.

  • 4. Шаги 2 и 3 повторяются до достижения сходимости.

Алгоритм не гарантирует сходимости к глобальному оптимуму. Результат может зависеть от начальных кластеров. Поскольку алгоритм обычно быстрый, его обычно запускают несколько раз с разными начальными условиями. Однако в худшем случае производительность может быть медленной: в частности, определенные наборы точек, даже в двух измерениях, сходятся за экспоненциальное время, то есть 2 Ом ( n ) . [13] Эти наборы точек, похоже, не возникают на практике: это подтверждается тем фактом, что сглаженное время работы k- средних является полиномиальным. [14]

Этап «назначения» упоминается как «этап ожидания», тогда как «этап обновления» является этапом максимизации, что делает этот алгоритм вариантом обобщенного алгоритма максимизации ожидания .

Сложность [ править ]

Поиск оптимального решения проблемы кластеризации k- средних для наблюдений в d- измерениях:

  • NP-сложно в общем евклидовом пространстве ( d- размерности) даже для двух кластеров, [15] [16] [17] [18]
  • NP-сложно для общего числа кластеров k даже на плоскости, [19]
  • если k и d (размерность) фиксированы, проблема может быть решена точно по времени , где n - количество сущностей, подлежащих кластеризации. [20]

Таким образом, обычно используются различные эвристические алгоритмы, такие как алгоритм Ллойда, приведенный выше.

Время работы алгоритма Ллойда (и большинства его вариантов) равно , [9] [21], где:

  • n - количество d -мерных векторов (подлежащих кластеризации)
  • k количество кластеров
  • i количество итераций, необходимых до сходимости.

Для данных, которые имеют структуру кластеризации, количество итераций до сходимости часто невелико, и результаты улучшаются лишь незначительно после первой дюжины итераций. Поэтому алгоритм Ллойда на практике часто считается «линейной» сложностью, хотя в худшем случае он является суперполиномиальным, когда выполняется до сходимости. [22]

  • В худшем случае алгоритму Ллойда требуются итерации, так что сложность алгоритма Ллойда в худшем случае является суперполиномиальной . [22]
  • Алгоритм k- средних Ллойда имеет полиномиально сглаженное время работы. Показано, что [14] для произвольного набора из n точек в , если каждая точка независимо возмущена нормальным распределением со средним значением 0 и дисперсией , то ожидаемое время работы алгоритма k -средних ограничено величиной , которая является полиномом от n , k , d и .
  • Лучшие оценки доказаны для простых случаев. Например, показано, что время работы алгоритма k- средних ограничено для n точек в целочисленной решетке . [23]

Алгоритм Ллойда - стандартный подход к этой проблеме. Однако он тратит много времени на вычисление расстояний между каждым из k центров кластера и n точками данных. Поскольку точки обычно остаются в одних и тех же кластерах после нескольких итераций, большая часть этой работы не нужна, что делает наивную реализацию очень неэффективной. Некоторые реализации используют кэширование и неравенство треугольника для создания границ и ускорения алгоритма Ллойда. [9] [24] [25] [26] [27]

Варианты [ править ]

  • Оптимизация естественных разрывов Дженкса : k -средние, применяемые к одномерным данным
  • При кластеризации k- medians используется медиана в каждом измерении вместо среднего, и таким образом минимизируетсянорма ( геометрия такси ).
  • k -medoids (также: Partitioning Around Medoids, PAM) использует medoid вместо среднего, и таким образом минимизирует сумму расстояний для произвольных функций расстояния.
  • Кластеризация нечетких C-средних - это мягкая версия k- средних, где каждая точка данных имеет нечеткую степень принадлежности к каждому кластеру.
  • Модели смеси Гаусса, обученные с помощью алгоритма максимизации ожидания ( алгоритм EM), поддерживают вероятностные назначения кластерам вместо детерминированных назначений и многомерные распределения Гаусса вместо средних.
  • k -means ++ выбирает начальные центры таким образом, чтобы получить доказуемую верхнюю границу для цели WCSS.
  • Алгоритм фильтрации использует kd-деревья для ускорения каждого шага k- средних. [28]
  • Некоторые методы пытаются ускорить каждый шаг k- средних, используя неравенство треугольника . [24] [25] [26] [29] [27]
  • Избегайте локальных оптимумов, меняя точки между кластерами. [9]
  • Алгоритм кластеризации сферических k- средних подходит для текстовых данных. [30]
  • Иерархические варианты, такие как Bisecting k -means , [31] X-means clustering [32] и G-means clustering [33], многократно разбивают кластеры для построения иерархии , а также могут попытаться автоматически определить оптимальное количество кластеров в наборе данных. .
  • Внутренние меры оценки кластера, такие как силуэт кластера, могут быть полезны при определении количества кластеров .
  • Взвешенное k- среднее значение Минковского автоматически вычисляет веса конкретных характеристик кластера, поддерживая интуитивно понятную идею о том, что функция может иметь разную степень релевантности для разных функций. [34] Эти веса также могут использоваться для изменения масштаба заданного набора данных, увеличивая вероятность того, что индекс достоверности кластера будет оптимизирован при ожидаемом количестве кластеров. [35]
  • Мини-пакет k- означает: k- означает изменение с использованием «мини-пакетных» выборок для наборов данных, которые не помещаются в память. [36]

Метод Хартигана – Вонга [ править ]

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

Позвольте быть индивидуальной стоимостью, определенной с помощью центра кластера.

Этап присваивания: метод Хартигана и Вонга начинается с разделения точек на случайные кластеры .

Шаг обновления : Затем он определяет и, для которых следующая функция достигает максимума

Для тех , кто достигает этого максимума, перемещается из кластера в кластер .

Завершение : Алгоритм завершается один раз меньше нуля для всех .

Могут использоваться разные стратегии принятия ходов. В стратегии первого улучшения может быть применено любое улучшающее перемещение, тогда как в стратегии наилучшего улучшения все возможные перемещения проверяются итеративно, и только лучшее применяется на каждой итерации. Первый подход способствует скорости, независимо от того, способствует ли последний подход в целом качеству решения за счет дополнительного вычислительного времени. Функция, используемая для вычисления результата перемещения, также может быть эффективно вычислена с помощью равенства [37]

Глобальная оптимизация и метаэвристика [ править ]

Известно, что классический алгоритм k-средних и его разновидности сходятся только к локальным минимумам задачи кластеризации минимальной суммы квадратов, определяемой как

Во многих исследованиях предпринимались попытки улучшить поведение алгоритма сходимости и максимизировать шансы на достижение глобального оптимума (или, по крайней мере, локальных минимумов лучшего качества). Методы инициализации и перезапуска, рассмотренные в предыдущих разделах, являются одной из альтернатив для поиска лучших решений. Совсем недавно алгоритмы математического программирования, основанные на генерации ветвей и границ и столбцов , дали «доказанно оптимальные» решения для наборов данных, содержащих до 2300 объектов. [38] Как и ожидалось, из-за NP-твердостиВ приведенной ниже задаче оптимизации время вычисления оптимальных алгоритмов для K-средних быстро превышает этот размер. Оптимальные решения для малых и средних предприятий по-прежнему ценны в качестве эталонного инструмента для оценки качества других эвристик. Чтобы найти высококачественные локальные минимумы в течение контролируемого времени вычислений, но без гарантий оптимальности, в других работах изучались метаэвристика и другие методы глобальной оптимизации , например, на основе инкрементальных подходов и выпуклой оптимизации [39], случайные перестановки [40] (т. Е. Повторяющиеся локальный поиск ), поиск переменных окрестностей [41] и генетические алгоритмы . [42][43] Действительно, известно, что нахождение лучших локальных минимумов задачи кластеризации с минимальной суммой квадратов может сделать разницу между неудачей и успехом восстановления кластерных структур в пространствах признаков большой размерности. [43]

Обсуждение [ править ]

Типичный пример сходимости k- средних к локальному минимуму. В этом примере результат кластеризации k- средних (правый рисунок) противоречит очевидной кластерной структуре набора данных. Маленькие кружки - это точки данных, четыре лучевых звезды - это центроиды (средние). Начальная конфигурация представлена ​​на левом рисунке. Алгоритм сходится после пяти итераций, представленных на рисунках слева направо. Иллюстрация была подготовлена ​​с помощью Java-апплета Mirkes. [44]
k - означает результат кластеризации для набора данных о цветках ириса и реальных видов, визуализированных с помощью ELKI . Кластерные средние обозначены более крупными полупрозрачными символами.
k - означает кластеризацию по сравнению с EM-кластеризацией на искусственном наборе данных («мышь»). Тенденция k -средних к созданию кластеров одинакового размера приводит здесь к плохим результатам, в то время как EM выигрывает от гауссовых распределений с различным радиусом, присутствующим в наборе данных.

Три ключевые особенности k- средних, которые делают его эффективным, часто считаются его самыми большими недостатками:

  • Евклидово расстояние используется как показатель, а дисперсия - как мера кластерного разброса.
  • Число кластеров k является входным параметром: неправильный выбор k может привести к плохим результатам. Вот почему при выполнении k- средних важно выполнять диагностические проверки для определения количества кластеров в наборе данных .
  • Сходимость к локальному минимуму может привести к противоречивым («неправильным») результатам (см. Пример на рис.).

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

Результат k -средних можно рассматривать как ячейки Вороного кластерных средних. Поскольку данные распределяются посередине между средними кластерами, это может привести к неоптимальному разбиению, как это видно на примере «мыши». Гауссовские модели, используемые алгоритмом максимизации ожидания (возможно, обобщение k- средних), более гибкие, поскольку имеют как дисперсии, так и ковариации. Таким образом, результат ЭМ позволяет приспособить кластеры переменного размера намного лучше, чем k- средние, а также коррелированные кластеры (не в этом примере). Напротив, EM требует оптимизации большего числа свободных параметров и создает некоторые методологические проблемы из-за исчезающих кластеров или плохо обусловленных ковариационных матриц. K-means тесно связан с непараметрическим байесовским моделированием . [45]

Приложения [ править ]

k- означает, что кластеризацию довольно легко применить даже к большим наборам данных, особенно при использовании эвристики, такой как алгоритм Ллойда . Он успешно используется в сегментации рынка , компьютерном зрении , астрономии и многих других областях. Он часто используется как этап предварительной обработки для других алгоритмов, например, для поиска начальной конфигурации.

Векторное квантование [ править ]

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

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

Кластерный анализ [ править ]

В кластерном анализе алгоритм k- средних может быть использован для разделения набора входных данных на k разделов (кластеров).

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

Особенности обучения [ править ]

Кластеризация k-средств использовалась в качестве этапа изучения функций (или изучения словаря ) либо в ( полу ) контролируемом обучении, либо в обучении без учителя . [46] Основной подход состоит в том, чтобы сначала обучить представление кластеризации k- средних с использованием входных обучающих данных (которые не нужно маркировать). Затем, чтобы проецировать любые входные данные в новое пространство признаков, функция "кодирования", такая как пороговое матричное произведение датума с местоположениями центроидов, вычисляет расстояние от точки данных до каждого центроида или просто индикаторная функция для ближайший центроид, [46] [47]или какое-то плавное преобразование расстояния. [48] ​​В качестве альтернативы преобразование расстояния выборка-кластер через гауссовский RBF позволяет получить скрытый слой сети радиальной базисной функции . [49]

Такое использование k- средних успешно сочетается с простыми линейными классификаторами для полууправляемого обучения в НЛП (особенно для распознавания именованных сущностей ) [50] и в компьютерном зрении . Было обнаружено, что в задаче распознавания объектов он демонстрирует сопоставимую производительность с более сложными подходами к обучению свойств, такими как автокодеры и ограниченные машины Больцмана . [48] Однако обычно требуется больше данных для эквивалентной производительности, потому что каждая точка данных вносит вклад только в одну «функцию». [46]

Отношение к другим алгоритмам [ править ]

Модель гауссовой смеси [ править ]

Медленный «стандартный алгоритм» для кластеризации k- средних и связанный с ним алгоритм максимизации ожидания является частным случаем модели гауссовой смеси, в частности, предельным случаем, когда все ковариации фиксируются диагональными, равными и имеют бесконечно малую дисперсию. [51] : 850 Вместо малых дисперсий можно использовать жесткое присвоение кластеров, чтобы показать другую эквивалентность кластеризации k- средних значений особому случаю «жесткого» моделирования гауссовой смеси. [52] ( 11.4.2.5 ) Это не означает, что эффективно использовать моделирование гауссовой смеси для вычисления k- означает, но только то, что существует теоретическая взаимосвязь, и что моделирование гауссовой смеси можно интерпретировать как обобщение k -средних; напротив, было предложено использовать кластеризацию k-средних, чтобы найти отправные точки для моделирования гауссовой смеси на сложных данных. [51] : 849

К-СВД [ править ]

Другим обобщением алгоритма k- средних является алгоритм K-SVD, который оценивает точки данных как разреженную линейную комбинацию «векторов кодовой книги». k -средство соответствует частному случаю использования одного вектора кодовой книги с весом 1. [53]

Анализ главных компонентов [ править ]

Расслабленное решение кластеризации k- средних, определяемое индикаторами кластера, дается анализом главных компонентов (PCA). [54] [55] Интуиция подсказывает, что k-средства описывают скопления сферической (шарообразной) формы. Если данные имеют 2 кластера, линия, соединяющая два центроида, является лучшим направлением одномерной проекции, которое также является первым направлением PCA. Разрезание линии в центре масс разделяет кластеры (это непрерывная релаксация дискретного индикатора кластера). Если данные имеют три кластера, двумерная плоскость, охватываемая тремя центроидами кластера, является лучшей двумерной проекцией. Эта плоскость также определяется первыми двумя размерами PCA. Хорошо разделенные кластеры эффективно моделируются кластерами в форме шара и, таким образом, обнаруживаются с помощью k- средних. Грозди, не имеющие формы шара, трудно разделить, когда они расположены близко. Например, два скопления в форме полумесяца, переплетенные в пространстве, плохо разделяются при проецировании на подпространство PCA.Не следует ожидать, что k- средство будет хорошо работать с этими данными. [56] Несложно привести контрпримеры к утверждению, что подпространство центроида кластера натянуто на главные направления. [57]

Кластеризация среднего сдвига [ править ]

Базовые алгоритмы кластеризации среднего сдвига поддерживают набор точек данных того же размера, что и набор входных данных. Первоначально этот набор копируется из входного набора. Затем этот набор итеративно заменяется средним значением тех точек в наборе, которые находятся на заданном расстоянии от этой точки. Напротив, k- средство ограничивает этот обновленный набор до k точек, обычно намного меньших, чем количество точек во входном наборе данных, и заменяет каждую точку в этом наборе средним значением всех точек во входном наборе , которые ближе к этой точке. чем любой другой (например, в разделе Вороного каждой точки обновления). Алгоритм среднего сдвига, который похож на k -средний, называемый правдоподобным средним сдвигом, заменяет набор точек, подлежащих замене, на среднее значение всех точек во входном наборе, которые находятся на заданном расстоянии от изменяющегося набора. [58] Одним из преимуществ среднего сдвига по сравнению с k- средними является то, что количество кластеров не задано заранее, потому что средний сдвиг, вероятно, найдет только несколько кластеров, если существует только небольшое количество кластеров. Однако средний сдвиг может быть намного медленнее, чем k- среднее, и по-прежнему требует выбора параметра полосы пропускания. Среднее смещение имеет мягкие варианты.

Независимый компонентный анализ [ править ]

При допущении разреженности и когда входные данные предварительно обрабатываются преобразованием отбеливания , k -means дает решение задачи анализа линейных независимых компонентов (ICA). Это помогает объяснить успешное применение k- средних для обучения особенностям . [59]

Двусторонняя фильтрация [ править ]

k -means неявно предполагает, что порядок входных данных не имеет значения. Двусторонний фильтр похож на k- среднее и средний сдвиг в том, что он поддерживает набор точек данных, которые итеративно заменяются средствами. Однако двусторонний фильтр ограничивает вычисление среднего (взвешенного по ядру), чтобы включать только точки, которые близки по порядку входных данных. [58] Это делает его применимым к таким проблемам, как шумоподавление изображения, где пространственное расположение пикселей в изображении имеет решающее значение.

Подобные проблемы [ править ]

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

Программные реализации [ править ]

Различные реализации алгоритма демонстрируют различия в производительности: самая быстрая из тестовых данных завершается за 10 секунд, самая медленная - за 25 988 секунд (~ 7 часов). [1] Различия могут быть связаны с качеством реализации, различиями в языке и компиляторах, различными критериями завершения и уровнями точности, а также использованием индексов для ускорения.

Бесплатное программное обеспечение / открытый исходный код [ править ]

Следующие реализации доступны по лицензиям на бесплатное / открытое программное обеспечение с общедоступным исходным кодом.

  • Accord.NET содержит реализации C # для k- средних, k- средних ++ и k- режимов.
  • ALGLIB содержит параллельные реализации C ++ и C # для k- средних и k- средних ++.
  • AOSP содержит реализацию на Java для k- средних.
  • CrimeStat реализует два пространственных алгоритма k- средних, один из которых позволяет пользователю определять начальные местоположения.
  • ELKI содержит k -средние (с итерациями Ллойда и Маккуина, а также различные инициализации, такие как инициализация k -means ++) и различные более сложные алгоритмы кластеризации.
  • Smile содержит k -means и множество других алгоритмов и визуализации результатов (для java, kotlin и scala).
  • Julia содержит реализацию k -means в пакете JuliaStats Clustering.
  • KNIME содержит узлы для k- средних и k -медоидов.
  • Mahout содержит k- средние на основе MapReduce .
  • mlpack содержит реализацию k- средств на C ++ .
  • Октава содержит k -средние.
  • OpenCV содержит реализацию k -means.
  • Orange включает компонент для кластеризации k- средних с автоматическим выбором k и оценки силуэта кластера.
  • PSPP содержит k -средние. Команда QUICK CLUSTER выполняет кластеризацию k- средних значений для набора данных.
  • R содержит три варианта k- средних.
  • SciPy и scikit-learn содержат несколько реализаций k -means.
  • Spark MLlib реализует распределенный алгоритм k- средних.
  • Torch содержит пакет unsup , который обеспечивает кластеризацию k- средних.
  • Weka содержит k -средние и x -средства.

Собственный [ править ]

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

  • Аясди
  • Mathematica
  • MATLAB
  • OriginPro
  • RapidMiner
  • SAP HANA
  • SAS
  • SPSS
  • Stata

См. Также [ править ]

  • Алгоритм BFR
  • Центроидная мозаика Вороного
  • Голова / хвост ломается
  • k кв. квартир
  • K-означает ++
  • Алгоритм Линде – Бузо – Грея
  • Самоорганизующаяся карта

Ссылки [ править ]

  1. ^ a b Кригель, Ганс-Петер ; Шуберт, Эрих; Зимек, Артур (2016). «(Черное) искусство оценки времени выполнения: сравниваем ли мы алгоритмы или реализации?». Знания и информационные системы . 52 (2): 341–378. DOI : 10.1007 / s10115-016-1004-2 . ISSN  0219-1377 . S2CID  40772241 .
  2. ^ Маккуин, JB (1967). Некоторые методы классификации и анализа многомерных наблюдений . Труды 5-го симпозиума Беркли по математической статистике и теории вероятностей. 1 . Калифорнийский университет Press. С. 281–297. Руководство по ремонту 0214227 . Zbl 0214.46201 . Проверено 7 апреля 2009 .  
  3. Перейти ↑ Steinhaus, Hugo (1957). "Sur la division des corps matériels en party". Бык. Акад. Полон. Sci. (На французском). 4 (12): 801–804. Руководство по ремонту 0090073 . Zbl 0079.16403 .  
  4. ^ Ллойд, Стюарт П. (1957). «Квантование методом наименьших квадратов в PCM». Бумага Bell Telephone Laboratories .Опубликовано в журнале значительно позже: Lloyd, Stuart P. (1982). «Квантование методом наименьших квадратов в PCM» (PDF) . IEEE Transactions по теории информации . 28 (2): 129–137. CiteSeerX 10.1.1.131.1338 . DOI : 10.1109 / TIT.1982.1056489 . Проверено 15 апреля 2009 .  
  5. ^ Форги, Эдвард В. (1965). «Кластерный анализ многомерных данных: эффективность против интерпретируемости классификаций». Биометрия . 21 (3): 768–769. JSTOR 2528559 . 
  6. ^ Пеллег, Дэн; Мур, Эндрю (1999). «Ускорение точных алгоритмов k-средних с помощью геометрических рассуждений» . Материалы пятой Международной конференции ACM SIGKDD по открытию знаний и интеллектуальному анализу данных - KDD '99 . Сан-Диего, Калифорния, США: ACM Press: 277–281. DOI : 10.1145 / 312129.312248 . ISBN 9781581131437. S2CID  13907420 .
  7. ^ Маккей, Дэвид (2003). «Глава 20. Пример задачи вывода: кластеризация» (PDF) . Теория информации, логические выводы и алгоритмы обучения . Издательство Кембриджского университета. С. 284–292. ISBN  978-0-521-64298-9. MR  2012999 .
  8. ^ Поскольку квадратный корень является монотонной функцией, это также минимальное присвоение евклидова расстояния.
  9. ^ a b c d e Хартиган, Дж. А; Вонг, Массачусетс (1979). «Алгоритм AS 136: алгоритм кластеризации k- средств». Журнал Королевского статистического общества, серия C . 28 (1): 100–108. JSTOR 2346830 . 
  10. ^ a b Хэмерли, Грег; Элкан, Чарльз (2002). «Альтернативы алгоритму k- средних, которые находят лучшие кластеры» (PDF) . Материалы одиннадцатой международной конференции по управлению информацией и знаниями (CIKM) .
  11. ^ Селеби, Мэн; Kingravi, HA; Вела, Пенсильвания (2013). «Сравнительное исследование эффективных методов инициализации для алгоритма кластеризации k- средних». Экспертные системы с приложениями . 40 (1): 200–210. arXiv : 1209.1960 . DOI : 10.1016 / j.eswa.2012.07.021 . S2CID 6954668 . 
  12. ^ Брэдли, Пол S .; Файяд, Усама М. (1998). « Уточнение начальных точек для кластеризации k- средств». Материалы Пятнадцатой международной конференции по машинному обучению .
  13. ^ Ваттани, A. (2011). «k-means требует экспоненциально большого числа итераций даже в плоскости» (PDF) . Дискретная и вычислительная геометрия . 45 (4): 596–616. DOI : 10.1007 / s00454-011-9340-1 . S2CID 42683406 .  
  14. ^ а б Артур, Дэвид; Manthey, B .; Роглин, Х. (2009). «k-means имеет полиномиально сглаженную сложность». Материалы 50-го симпозиума по основам информатики (FOCS) . arXiv : 0904.1113 .
  15. ^ Garey, M .; Johnson, D .; Витсенхаузен, Х. (1982-03-01). «Сложность обобщенной проблемы Ллойда - Макса (Корр.)». IEEE Transactions по теории информации . 28 (2): 255–256. DOI : 10.1109 / TIT.1982.1056488 . ISSN 0018-9448 . 
  16. ^ Клейнберг, Джон; Пападимитриу, Христос; Рагхаван, Прабхакар (1998-12-01). «Микроэкономический взгляд на интеллектуальный анализ данных». Интеллектуальный анализ данных и обнаружение знаний . 2 (4): 311–324. DOI : 10,1023 / A: 1009726428407 . ISSN 1384-5810 . S2CID 15252504 .  
  17. ^ Aloise, D .; Deshpande, A .; Hansen, P .; Попат П. (2009). «NP-трудность евклидовой кластеризации по сумме квадратов» . Машинное обучение . 75 (2): 245–249. DOI : 10.1007 / s10994-009-5103-0 .
  18. ^ Dasgupta, S .; Фройнд, Ю. (июль 2009 г.). «Деревья случайных проекций для векторного квантования». IEEE Transactions по теории информации . 55 (7): 3229–3242. arXiv : 0805.1390 . DOI : 10.1109 / TIT.2009.2021326 . S2CID 666114 . 
  19. ^ Махаджан, Мина; Нимбхоркар, Праджакта; Варадараджан, Кастури (2009). Задача плоских k- средних является NP-сложной . Конспект лекций по информатике. 5431 . С. 274–285. CiteSeerX 10.1.1.331.1306 . DOI : 10.1007 / 978-3-642-00202-1_24 . ISBN  978-3-642-00201-4.
  20. ^ Inaba, M .; Katoh, N .; Имаи, Х. (1994). Применение взвешенных диаграмм Вороного и рандомизации к k- кластеризации на основе дисперсии . Материалы 10-го симпозиума ACM по вычислительной геометрии . С. 332–339. DOI : 10.1145 / 177424.178042 .
  21. ^ Мэннинг, Кристофер Д .; Рагхаван, Прабхакар; Шютце, Хинрих (2008). Введение в поиск информации . Нью-Йорк: Издательство Кембриджского университета. ISBN 978-0521865715. OCLC  190786122 .
  22. ^ а б Артур, Дэвид; Васильвицкий, Сергей (01.01.2006). Насколько медленен метод k- средних? . Труды двадцать второго ежегодного симпозиума по вычислительной геометрии . SCG '06. Нью-Йорк, Нью-Йорк, США: ACM. С. 144–153. DOI : 10.1145 / 1137856.1137880 . ISBN 978-1595933409. S2CID  3084311 .
  23. ^ Bhowmick, Абхишек (2009). «Теоретический анализ алгоритма Ллойда для кластеризации k- средних» (PDF) . Архивировано из оригинального (PDF) 08.12.2015. Cite journal requires |journal= (help)Смотрите также здесь .
  24. ^ a b Филлипс, Стивен Дж. (4 января 2002 г.). «Ускорение K-средних и связанных алгоритмов кластеризации». В Маунт, Дэвид М .; Стейн, Клиффорд (ред.). Ускорение k- средств и связанных алгоритмов кластеризации . Конспект лекций по информатике. 2409 . Springer Berlin Heidelberg. С. 166–177. DOI : 10.1007 / 3-540-45643-0_13 . ISBN 978-3-540-43977-6.
  25. ^ a b Элкан, Чарльз (2003). «Использование неравенства треугольника для ускорения k- средних» (PDF) . Труды двадцатой международной конференции по машинному обучению (ICML) .
  26. ^ a b Хэмерли, Грег. «Делаем k- средство еще быстрее». CiteSeerX 10.1.1.187.3017 . 
  27. ^ a b Хэмерли, Грег; Дрейк, Джонатан (2015). Ускорение алгоритма Ллойда для кластеризации k- средних . Алгоритмы частичной кластеризации . С. 41–78. DOI : 10.1007 / 978-3-319-09259-1_2 . ISBN 978-3-319-09258-4.
  28. ^ Канунго, Тапас; Mount, Дэвид М .; Нетаньяху, Натан С .; Пятко, Кристина Д .; Сильверман, Рут; Ву, Анджела Ю. (2002). «Эффективный алгоритм кластеризации k- средних: анализ и реализация» (PDF) . IEEE Transactions по анализу шаблонов и машинному анализу . 24 (7): 881–892. DOI : 10.1109 / TPAMI.2002.1017616 . Проверено 24 апреля 2009 .
  29. ^ Дрейк, Джонатан (2012). «Ускоренные k- средние с адаптивными границами расстояния» (PDF) . 5-й семинар NIPS по оптимизации для машинного обучения, OPT2012 .
  30. ^ Диллон, IS; Модха, DM (2001). «Разложение понятий для больших разреженных текстовых данных с использованием кластеризации» . Машинное обучение . 42 (1): 143–175. DOI : 10.1023 / а: 1007612920971 .
  31. ^ Steinbach, M .; Karypis, G .; Кумар, В. (2000). « « Сравнение методов кластеризации документов ». В». KDD Workshop по интеллектуальному анализу текста . 400 (1): 525–526.
  32. ^ Pelleg, D .; И Мур, AW (2000, июнь). « X-средства: расширение k- средних с помощью эффективной оценки количества кластеров ». В ICML , Vol. 1
  33. ^ Хэмерли, Грег; Элкан, Чарльз (2004). «Изучение k в k-средних» (PDF) . Достижения в системах обработки нейронной информации . 16 : 281.
  34. ^ Аморим, RC; Миркин Б. (2012). "Метрика Минковского, взвешивание признаков и инициализация аномального кластера в кластеризации k- средств". Распознавание образов . 45 (3): 1061–1075. DOI : 10.1016 / j.patcog.2011.08.012 .
  35. ^ Аморим, RC; Хенниг, К. (2015). «Восстановление количества кластеров в наборах данных с шумовыми характеристиками с использованием коэффициентов масштабирования функций». Информационные науки . 324 : 126–145. arXiv : 1602.06989 . DOI : 10.1016 / j.ins.2015.06.039 . S2CID 315803 . 
  36. ^ Скалли, Дэвид (2010). « Кластеризация k -средств веб-масштаба » . Материалы 19-й международной конференции во всемирной паутине . ACM. С. 1177–1178 . Проверено 21 декабря 2016 .
  37. ^ Telgarsky, Матус. «Метод Хартигана: k- означает кластеризацию без Вороного» (PDF) .
  38. ^ Aloise, Даниил; Хансен, Пьер; Либерти, Лев (2012). «Улучшенный алгоритм генерации столбцов для кластеризации по минимальной сумме квадратов». Математическое программирование . 131 (1–2): 195–220. DOI : 10.1007 / s10107-010-0349-7 . S2CID 17550257 . 
  39. ^ Багиров, AM; Taheri, S .; Угон, Дж. (2016). «Негладкий подход программирования постоянного тока к задачам кластеризации с минимальной суммой квадратов». Распознавание образов . 53 : 12–24. DOI : 10.1016 / j.patcog.2015.11.011 .
  40. ^ Franti, Pasi (2018). «Эффективность кластеризации случайного свопа» . Журнал больших данных . 5 (1): 1-21. DOI : 10.1186 / s40537-018-0122-у .
  41. ^ Hansen, P .; Младенович, Н. (2001). «J-средство: новая эвристика локального поиска для кластеризации по минимальной сумме квадратов». Распознавание образов . 34 (2): 405–413. DOI : 10.1016 / S0031-3203 (99) 00216-2 .
  42. ^ Кришна, К .; Мурти, Миннесота (1999). «Генетический алгоритм k-средних» . IEEE Transactions по системам, человеку и кибернетике, часть B: кибернетика . 29 (3): 433–439. DOI : 10.1109 / 3477.764879 . PMID 18252317 . 
  43. ^ a b Грибель, Даниил; Видаль, Тибо (2019). «HG-означает: масштабируемая гибридная метаэвристика для кластеризации с минимальной суммой квадратов». Распознавание образов . 88 : 569–583. arXiv : 1804.09813 . DOI : 10.1016 / j.patcog.2018.12.022 . S2CID 13746584 . 
  44. ^ Миркс, Э.М. " Аплет К-средних и к- медоидов" . Проверено 2 января +2016 .
  45. ^ Кулис, Брайан; Джордан, Майкл И. (26.06.2012). Возвращаясь к k- средним: новые алгоритмы через байесовские непараметрики (PDF) . ICML . С. 1131–1138. ISBN  9781450312851.
  46. ^ a b c Коутс, Адам; Нг, Эндрю Ю. (2012). «Изучение представлений функций с помощью k- средних» (PDF) . В Монтавоне, Дж .; Орр, Великобритания; Мюллер, К.-Р. (ред.). Нейронные сети: хитрости . Springer.
  47. ^ Csurka, Габриэлла; Танец, Кристофер С .; Fan, Lixin; Вилламовски, Ютта; Брей, Седрик (2004). Визуальная категоризация с помощью наборов ключевых точек (PDF) . Семинар ECCV по статистическому обучению в компьютерном зрении.
  48. ^ a b Коутс, Адам; Ли, Хонглак; Нг, Эндрю Ю. (2011). Анализ однослойных сетей в неконтролируемом обучении функций (PDF) . Международная конференция по искусственному интеллекту и статистике (AISTATS). Архивировано из оригинального (PDF) 10 мая 2013 года.
  49. ^ Швенкер, Фридхельм; Kestler, Hans A .; Пальма, Гюнтер (2001). «Три этапа обучения для сетей с радиальной базисной функцией». Нейронные сети . 14 (4–5): 439–458. CiteSeerX 10.1.1.109.312 . DOI : 10.1016 / s0893-6080 (01) 00027-2 . PMID 11411631 .  
  50. ^ Лин, Деканг; У, Сяоюнь (2009). Кластеризация фраз для разборчивого обучения (PDF) . Ежегодное собрание ACL и IJCNLP. С. 1030–1038.
  51. ^ a b Нажмите, WH; Теукольский С.А.; Феттерлинг, штат Вашингтон; Фланнери, ВР (2007). «Раздел 16.1. Модели гауссовской смеси и кластеризация k- средних» . Числовые рецепты: искусство научных вычислений (3-е изд.). Нью-Йорк (Нью-Йорк): Издательство Кембриджского университета. ISBN 978-0-521-88068-8.
  52. ^ Кевин П. Мерфи (2012). Машинное обучение: вероятностная перспектива . Кембридж, Массачусетс: MIT Press. ISBN 978-0-262-30524-2. OCLC  810414751 .
  53. ^ Аарон, Михал; Элад, Майкл; Брукштейн, Альфред (2006). «K-SVD: алгоритм для разработки переполненных словарей для разреженного представления» (PDF) . Транзакции IEEE по обработке сигналов . 54 (11): 4311. Bibcode : 2006ITSP ... 54.4311A . DOI : 10.1109 / TSP.2006.881199 . S2CID 7477309 .  
  54. ^ Чжа, Хунъюань; Дин, Крис; Гу, Мин; Он, Сяофэн; Саймон, Хорст Д. (декабрь 2001 г.). "Спектральная релаксация для кластеризации k- средних" (PDF) . Системы обработки нейронной информации, том 14 (NIPS 2001) : 1057–1064.
  55. ^ Дин, Крис; Он, Сяофэн (июль 2004 г.). «К-означает кластеризацию с помощью анализа главных компонентов» (PDF) . Труды Международной конференции по машинному обучению (ICML 2004) : 225–232.
  56. ^ Drineas, Петрос; Frieze, Alan M .; Каннан, Рави; Вемпала, Сантош; Винай, Вишванатан (2004). «Кластеризация больших графов с помощью разложения по сингулярным числам» (PDF) . Машинное обучение . 56 (1–3): 9–33. DOI : 10.1023 / B: mach.0000033113.59016.96 . S2CID 5892850 . Проверено 2 августа 2012 .  
  57. ^ Коэн, Майкл Б .; Старейшина, Сэм; Муско, Кэмерон; Муско, Кристофер; Персу, Мадалина (2014). «Снижение размерности для кластеризации k-средств и приближения низкого ранга (Приложение B)». arXiv : 1410.6801 [ cs.DS ].
  58. ^ a b Литтл, Макс А .; Джонс, Ник С. (2011). "Обобщенные методы и решатели для кусочно-постоянных сигналов: Часть I" (PDF) . Труды Королевского общества А . 467 (2135): 3088–3114. Bibcode : 2011RSPSA.467.3088L . DOI : 10,1098 / rspa.2010.0671 . PMC 3191861 . PMID 22003312 .   
  59. ^ Винников, Алон; Шалев-Шварц, Шай (2014). «K-means восстанавливает фильтры ICA, когда независимых компонентов недостаточно» (PDF) . Труды Международной конференции по машинному обучению (ICML 2014) .