k- означает кластеризацию - k-means clustering

Кластеризация 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), что следует из закона общей дисперсии .

История

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

Алгоритмы

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

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

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

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

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

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

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

Методы инициализации

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

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

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

Сложность

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

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

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

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

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

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

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

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

Вариации

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

Метод Хартигана – Вонга

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

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

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

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

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

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

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

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

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

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

Обсуждение

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

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

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

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

Приложения

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

Векторное квантование

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

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

Кластерный анализ

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

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

Особенности обучения

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

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

Отношение к другим алгоритмам

Модель гауссовой смеси

Медленный «стандартный алгоритм» для кластеризации k- средних и связанный с ним алгоритм максимизации ожидания является частным случаем модели гауссовской смеси, в частности, предельным случаем, когда все ковариации фиксируются диагональными, равными и имеют бесконечно малую дисперсию. Вместо небольших дисперсий можно также использовать жесткое присвоение кластеров, чтобы показать другую эквивалентность кластеризации k- средних с особым случаем «жесткого» моделирования гауссовой смеси. Это не означает, что эффективно использовать моделирование гауссовой смеси для вычисления k- средних, а просто то, что существует теоретическая взаимосвязь, и что моделирование гауссовой смеси можно интерпретировать как обобщение k- средних; напротив, было предложено использовать кластеризацию k-средних, чтобы найти отправные точки для моделирования гауссовой смеси на сложных данных.

К-СВД

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

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

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

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

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

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

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

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

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

Подобные проблемы

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

Программные реализации

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

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

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

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

Проприетарный

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

Смотрите также

использованная литература