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

Алгоритм векторного квантования, минимизирующий сумму квадратов отклонений

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

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

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

Описание

При наличии набора наблюдений ( x 1 , x 2 , ..., x n ) , где каждое наблюдение является -мерным действительным вектором, кластеризация k -средних направлена ​​на разбиение n наблюдений на k ( n ) наборов S = { S 1 , S 2 , ..., Sk } таким образом, чтобы минимизировать внутрикластерную сумму квадратов (WCSS) (т. е. дисперсию ). Формально цель состоит в том, чтобы найти: где μ i - среднее значение (также называемое центроидом) точек в , т. е. - размер , а - обычная норма L 2 . Это эквивалентно минимизации попарных квадратов отклонений точек в одном кластере: Эквивалентность может быть выведена из тождества . Поскольку общая дисперсия постоянна, это эквивалентно максимизации суммы квадратов отклонений между точками в разных кластерах (междукластерная сумма квадратов, BCSS). [1] Эта детерминированная связь также связана с законом полной дисперсии в теории вероятностей. d {\displaystyle d} a r g m i n S i = 1 k x S i x μ i 2 = a r g m i n S i = 1 k | S i | Var S i {\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}=\mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}|S_{i}|\operatorname {Var} S_{i}} S i {\displaystyle S_{i}} μ i = 1 | S i | x S i x , {\displaystyle {\boldsymbol {\mu _{i}}}={\frac {1}{|S_{i}|}}\sum _{\mathbf {x} \in S_{i}}\mathbf {x} ,} | S i | {\displaystyle |S_{i}|} S i {\displaystyle S_{i}} {\displaystyle \|\cdot \|} a r g m i n S i = 1 k 1 | S i | x , y S i x y 2 {\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\,{\frac {1}{|S_{i}|}}\,\sum _{\mathbf {x} ,\mathbf {y} \in S_{i}}\left\|\mathbf {x} -\mathbf {y} \right\|^{2}} | S i | x S i x μ i 2 = 1 2 x , y S i x y 2 {\textstyle |S_{i}|\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}={\frac {1}{2}}\sum _{\mathbf {x} ,\mathbf {y} \in S_{i}}\left\|\mathbf {x} -\mathbf {y} \right\|^{2}}

История

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

Алгоритмы

Стандартный алгоритм (наивный)к-означает)

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

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

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

  1. Шаг назначения : назначить каждое наблюдение кластеру с ближайшим средним значением: с наименьшим квадратом евклидова расстояния . [8] (Математически это означает разбиение наблюдений в соответствии с диаграммой Вороного, созданной средними значениями.) где каждое наблюдение назначается ровно одному , даже если его можно было бы назначить двум или более из них. S i ( t ) = { x p : x p m i ( t ) 2 x p m j ( t ) 2   j , 1 j k } , {\displaystyle S_{i}^{(t)}=\left\{x_{p}:\left\|x_{p}-m_{i}^{(t)}\right\|^{2}\leq \left\|x_{p}-m_{j}^{(t)}\right\|^{2}\ \forall j,1\leq j\leq k\right\},} x p {\displaystyle x_{p}} S ( t ) {\displaystyle S^{(t)}}
  2. Шаг обновления : пересчитать средние значения ( центроиды ) для наблюдений, назначенных каждому кластеру. m i ( t + 1 ) = 1 | S i ( t ) | x j S i ( t ) x j {\displaystyle m_{i}^{(t+1)}={\frac {1}{\left|S_{i}^{(t)}\right|}}\sum _{x_{j}\in S_{i}^{(t)}}x_{j}}

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

Алгоритм сходится, когда назначения больше не меняются или, что эквивалентно, когда WCSS становится стабильным. Алгоритм не гарантирует нахождение оптимума. [9]

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

Псевдокод

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

определение  k_means_cluster ( k ,  points ): # Инициализация: выбрать k центроидов (Forgy, Random Partition и т. д.) центроиды  =  [ c1 ,  c2 ,  ... ,  ck ]  # Инициализация списка кластеров кластеры  =  [[]  для  _  в  диапазоне ( k )]  # Цикл до сходимости конвергентный  =  ложный пока  не  сошлись : # Очистить предыдущие кластеры кластеры  =  [[]  для  _  в  диапазоне ( k )]  # Назначаем каждую точку «ближайшему» центроиду для  точки  в  точках : distances_to_each_centroid  =  [ расстояние ( точка ,  центроид )  для  центроида  в  центроидах ] cluster_assignment  =  argmin ( расстояния_до_каждого_центроида ) кластеры [ кластер_назначение ] .append ( точка )  # Рассчитать новые центроиды # (стандартная реализация использует среднее значение всех точек в # кластер для определения нового центроида) new_centroids  =  [ calcul_centroid ( cluster )  для  кластера  в  кластерах ]  конвергентный  =  ( new_centroids  ==  centroids ) центроиды  =  новые_центроиды  если  сходится : возврат  кластеров

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

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

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

Шаг «назначения» называется «шагом ожидания», в то время как «шаг обновления» является шагом максимизации, что делает этот алгоритм вариантом обобщенного алгоритма ожидания–максимизации .

Сложность

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

  • NP-трудная задача в общем евклидовом пространстве ( d измерений) даже для двух кластеров, [15] [16]
  • NP-трудно для общего числа кластеров k даже в плоскости, [17]
  • Если k и d (размерность) фиксированы, то задача может быть точно решена за время , где n — число объектов, которые необходимо сгруппировать. [18] O ( n d k + 1 ) {\displaystyle O(n^{dk+1})}

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

Время работы алгоритма Ллойда (и большинства вариантов) составляет , [9] [19] где: O ( n k d i ) {\displaystyle O(nkdi)}

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

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

  • В худшем случае алгоритму Ллойда требуются итерации, так что сложность алгоритма Ллойда в худшем случае является суперполиномиальной . [20] i = 2 Ω ( n ) {\displaystyle i=2^{\Omega ({\sqrt {n}})}}
  • Алгоритм k -средних Ллойда имеет полиномиально сглаженное время выполнения. Показано, что [14] для произвольного набора из n точек в , если каждая точка независимо возмущена нормальным распределением со средним 0 и дисперсией , то ожидаемое время выполнения алгоритма k -средних ограничено , что является полиномом от n , k , d и . [ 0 , 1 ] d {\displaystyle [0,1]^{d}} σ 2 {\displaystyle \sigma ^{2}} O ( n 34 k 34 d 8 log 4 ( n ) / σ 6 ) {\displaystyle O(n^{34}k^{34}d^{8}\log ^{4}(n)/\sigma ^{6})} 1 / σ {\displaystyle 1/\sigma }
  • Для простых случаев доказаны лучшие границы. Например, показано, что время выполнения алгоритма k -средних ограничено для n точек в целочисленной решетке . [21] O ( d n 4 M 2 ) {\displaystyle O(dn^{4}M^{2})} { 1 , , M } d {\displaystyle \{1,\dots ,M\}^{d}}

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

Оптимальное количество кластеров

Нахождение оптимального количества кластеров ( k ) для кластеризации методом k -средних является важным шагом для обеспечения того, чтобы результаты кластеризации были значимыми и полезными. [26] Существует несколько методов определения подходящего количества кластеров. Вот некоторые из наиболее часто используемых методов:

  • Метод локтя (кластеризация) : этот метод включает построение графика объясненной вариации как функции числа кластеров и выбор локтя кривой в качестве числа кластеров для использования. [27] Однако понятие «локтя» не является четко определенным, и известно, что оно не является надежным. [28]
  • Силуэт (кластеризация) : Анализ силуэта измеряет качество кластеризации и дает представление о расстоянии разделения между полученными кластерами. [29] Более высокая оценка силуэта указывает на то, что объект хорошо соответствует своему собственному кластеру и плохо соответствует соседним кластерам.
  • Статистика разрыва : Статистика разрыва сравнивает общую внутрикластерную вариацию для различных значений k с их ожидаемыми значениями при нулевом эталонном распределении данных. [30] Оптимальное значение k — это значение, которое дает наибольшую статистику разрыва.
  • Индекс Дэвиса-Боулдина : Индекс Дэвиса-Боулдина является мерой того, насколько велико разделение между кластерами. [31] Более низкие значения индекса Дэвиса-Боулдина указывают на модель с лучшим разделением.
  • Индекс Калински-Харабаша : этот индекс оценивает кластеры на основе их компактности и разделения. Индекс рассчитывается с использованием отношения дисперсии между кластерами к дисперсии внутри кластера, причем более высокие значения указывают на более определенные кластеры. [32]
  • Индекс Рэнда : он вычисляет долю согласия между двумя кластерами, учитывая обе пары элементов, которые правильно отнесены к одному и тому же или разным кластерам. [33] Более высокие значения указывают на большее сходство и лучшее качество кластеризации. Чтобы обеспечить более точную меру, скорректированный индекс Рэнда (ARI), введенный Хьюбертом и Араби в 1985 году, корректирует индекс Рэнда, корректируя ожидаемое сходство всех пар из-за случайности. [34]

Вариации

  • Оптимизация естественных разрывов Дженкса : k -средние, применяемые к одномерным данным
  • Кластеризация k -медиан использует медиану в каждом измерении вместо среднего значения, и таким образом минимизируетнорму ( геометрия такси ). L 1 {\displaystyle L_{1}}
  • k -медоиды (также: разбиение по медоидам, PAM) используют медоид вместо среднего значения, и таким образом минимизируют сумму расстояний для произвольных функций расстояния.
  • Нечеткая кластеризация C-средних — это мягкая версия метода k -средних, где каждая точка данных имеет нечеткую степень принадлежности к каждому кластеру.
  • Модели гауссовой смеси , обученные с помощью алгоритма максимизации ожидания (алгоритм EM), поддерживают вероятностные назначения кластерам вместо детерминированных назначений и многомерные гауссовские распределения вместо средних значений.
  • k -means++ выбирает начальные центры таким образом, чтобы получить доказуемую верхнюю границу цели WCSS.
  • Алгоритм фильтрации использует k -d деревья для ускорения каждого шага k -средних. [35]
  • Некоторые методы пытаются ускорить каждый шаг k -средних, используя неравенство треугольника . [22] [23] [24] [36] [25]
  • Избежать локальных оптимумов можно, переставив точки между кластерами. [9]
  • Алгоритм сферической кластеризации k -средних подходит для текстовых данных. [37]
  • Иерархические варианты, такие как деление k -средних пополам, [38] кластеризация X-средних [39] и кластеризация G-средних [40], многократно разбивают кластеры для построения иерархии , а также могут попытаться автоматически определить оптимальное количество кластеров в наборе данных.
  • Внутренние меры оценки кластера , такие как силуэт кластера, могут быть полезны при определении количества кластеров .
  • Взвешенные по Минковскому k -средние автоматически вычисляют веса признаков, характерные для кластера, поддерживая интуитивную идею о том, что признак может иметь разную степень релевантности для разных признаков. [41] Эти веса также можно использовать для повторного масштабирования заданного набора данных, увеличивая вероятность оптимизации индекса валидности кластера при ожидаемом количестве кластеров. [42]
  • Мини-пакет k -средних: вариация k -средних с использованием образцов «мини-пакетов» для наборов данных, которые не помещаются в память. [43]
  • Метод Оцу

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

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

Пусть будет индивидуальной стоимостью , определяемой с центром кластера. φ ( S j ) {\displaystyle \varphi (S_{j})} S j {\displaystyle S_{j}} x S j ( x μ j ) 2 {\textstyle \sum _{x\in S_{j}}(x-\mu _{j})^{2}} μ j {\displaystyle \mu _{j}}

Шаг задания
Метод Хартигана и Вонга начинается с разбиения точек на случайные кластеры . { S j } j { 1 , k } {\displaystyle \{S_{j}\}_{j\in \{1,\cdots k\}}}
Шаг обновления
Затем он определяет и , для которых следующая функция достигает максимума. Для , которые достигают этого максимума, перемещается из кластера в кластер . n , m { 1 , , k } {\displaystyle n,m\in \{1,\ldots ,k\}} x S n {\displaystyle x\in S_{n}} Δ ( m , n , x ) = φ ( S n ) + φ ( S m ) φ ( S n { x } ) φ ( S m { x } ) . {\displaystyle \Delta (m,n,x)=\varphi (S_{n})+\varphi (S_{m})-\varphi (S_{n}\setminus \{x\})-\varphi (S_{m}\cup \{x\}).} x , n , m {\displaystyle x,n,m} x {\displaystyle x} S n {\displaystyle S_{n}} S m {\displaystyle S_{m}}
Прекращение
Алгоритм завершается, как только все значения становятся меньше нуля . Δ ( m , n , x ) {\displaystyle \Delta (m,n,x)} x , n , m {\displaystyle x,n,m}

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

Δ ( x , n , m ) = S n S n 1 μ n x 2 S m S m + 1 μ m x 2 . {\displaystyle \Delta (x,n,m)={\frac {\mid S_{n}\mid }{\mid S_{n}\mid -1}}\cdot \lVert \mu _{n}-x\rVert ^{2}-{\frac {\mid S_{m}\mid }{\mid S_{m}\mid +1}}\cdot \lVert \mu _{m}-x\rVert ^{2}.}

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

Известно, что классический алгоритм k -средних и его вариации сходятся только к локальным минимумам задачи кластеризации минимальной суммы квадратов, определяемой как Во многих исследованиях предпринимались попытки улучшить поведение сходимости алгоритма и максимизировать шансы достижения глобального оптимума (или, по крайней мере, локальных минимумов лучшего качества). Методы инициализации и перезапуска, обсуждавшиеся в предыдущих разделах, являются одной из альтернатив для поиска лучших решений. Совсем недавно глобальные алгоритмы оптимизации, основанные на ветвях и границах и полуопределенном программировании, дали «доказанно оптимальные» решения для наборов данных, содержащих до 4177 сущностей и 20531 признаков. [45] Как и ожидалось, из-за NP-трудности нижележащей задачи оптимизации время вычислений оптимальных алгоритмов для k -средних быстро увеличивается за пределами этого размера. Оптимальные решения для малых и средних масштабов по-прежнему остаются ценными в качестве эталонного инструмента для оценки качества других эвристик. Чтобы найти высококачественные локальные минимумы в контролируемом вычислительном времени, но без гарантий оптимальности, в других работах изучались метаэвристики и другие методы глобальной оптимизации , например, основанные на инкрементальных подходах и выпуклой оптимизации, [46] случайных обменах [47] (т. е. итеративный локальный поиск ), поиске переменного соседства [48] и генетических алгоритмах . [49] [50] Действительно известно, что нахождение лучших локальных минимумов задачи кластеризации минимальной суммы квадратов может иметь решающее значение между неудачей и успехом при восстановлении кластерных структур в пространствах признаков высокой размерности. [50] a r g m i n S i = 1 k x S i x μ i 2 . {\displaystyle \mathop {\operatorname {arg\,min} } _{\mathbf {S} }\sum _{i=1}^{k}\sum _{\mathbf {x} \in S_{i}}\left\|\mathbf {x} -{\boldsymbol {\mu }}_{i}\right\|^{2}.}

Обсуждение

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

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

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

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

Приложения

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

Векторная квантизация

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

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

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

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

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

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

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

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

Кластеризация k -средних использовалась в качестве шага обучения признакам (или обучения словарю ) как в ( полу- ) контролируемом обучении, так и в неконтролируемом обучении . [53] Основной подход заключается в том, чтобы сначала обучить представление кластеризации k -средних с использованием входных обучающих данных (которые не обязательно должны быть помечены). Затем, чтобы спроецировать любые входные данные в новое пространство признаков, функция «кодирования», такая как пороговое матричное произведение данных с местоположениями центроидов, вычисляет расстояние от данных до каждого центроида или просто индикаторную функцию для ближайшего центроида, [53] [54] или некоторое плавное преобразование расстояния. [55] В качестве альтернативы, преобразование расстояния выборка-кластер через гауссовскую RBF , получает скрытый слой сети радиальной базисной функции . [56]

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

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

Последние события

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

Связь с другими алгоритмами

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

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

к-СВД

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

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

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

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

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

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

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

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

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

Похожие проблемы

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

Реализации программного обеспечения

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

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

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

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

Запатентованный

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

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

Ссылки

  1. ^ ab Кригель, Ханс-Петер ; Шуберт, Эрих; Зимек, Артур (2016). «(Черное) искусство оценки времени выполнения: сравниваем ли мы алгоритмы или реализации?». Системы знаний и информации . 52 (2): 341–378. doi :10.1007/s10115-016-1004-2. ISSN  0219-1377. S2CID  40772241.
  2. ^ MacQueen, JB (1967). Некоторые методы классификации и анализа многомерных наблюдений. Труды 5-го симпозиума в Беркли по математической статистике и вероятности. Том 1. Издательство Калифорнийского университета. С. 281–297. MR  0214227. Zbl  0214.46201 . Получено 07.04.2009 .
  3. ^ Штайнхаус, Хьюго (1957). «Sur la Division des Corps Matériels en Party». Бык. акад. Полон. наук. (на французском языке). 4 (12): 801–804. МР  0090073. Збл  0079.16403.
  4. ^ Ллойд, Стюарт П. (1957). «Квантование по методу наименьших квадратов в PCM». Bell Telephone Laboratories Paper .Опубликовано в журнале гораздо позже: Lloyd, Stuart P. (1982). "Least squares quantization in PCM" (PDF) . IEEE Transactions on Information Theory . 28 (2): 129–137. CiteSeerX 10.1.1.131.1338 . doi :10.1109/TIT.1982.1056489. S2CID  10833328 . Получено 15.04.2009 . 
  5. ^ Форджи, Эдвард В. (1965). «Кластерный анализ многомерных данных: эффективность против интерпретируемости классификаций». Биометрия . 21 (3): 768–769. JSTOR  2528559.
  6. ^ Pelleg, Dan; Moore, Andrew (1999). "Accelerating exact k-means algorithms with geometric reasoning". Труды пятой международной конференции ACM SIGKDD по обнаружению знаний и добыче данных . Сан-Диего, Калифорния, США: ACM Press. стр. 277–281. doi :10.1145/312129.312248. ISBN 9781581131437. S2CID  13907420.
  7. ^ MacKay, David (2003). "Глава 20. Пример задачи вывода: кластеризация" (PDF) . Теория информации, вывод и алгоритмы обучения. Cambridge University Press. С. 284–292. ISBN 978-0-521-64298-9. МР  2012999.
  8. ^ Поскольку квадратный корень является монотонной функцией, это также является минимальным евклидовым расстоянием.
  9. ^ abcde Hartigan, JA; Wong, MA (1979). "Алгоритм AS 136: алгоритм кластеризации k -средних". Журнал Королевского статистического общества, серия C. 28 ( 1): 100–108. JSTOR  2346830.
  10. ^ ab Хамерли, Грег; Элкан, Чарльз (2002). "Альтернативы алгоритму k-средних, которые находят лучшие кластеризации" (PDF) . Труды одиннадцатой международной конференции по управлению информацией и знаниями (CIKM) .
  11. ^ Celebi, ME; Kingravi, HA; Vela, PA (2013). "Сравнительное исследование эффективных методов инициализации для алгоритма кластеризации k -средних". Expert Systems with Applications . 40 (1): 200–210. arXiv : 1209.1960 . doi : 10.1016/j.eswa.2012.07.021. S2CID  6954668.
  12. ^ Брэдли, Пол С.; Файяд, Усама М. (1998). «Уточнение начальных точек для кластеризации методом k -средних». Труды пятнадцатой международной конференции по машинному обучению .
  13. ^ Vattani, A. (2011). "k-means требует экспоненциально много итераций даже в плоскости" (PDF) . Дискретная и вычислительная геометрия . 45 (4): 596–616. doi : 10.1007/s00454-011-9340-1 . S2CID  42683406.
  14. ^ ab Артур, Дэвид; Мантей, Б.; Роглин, Х. (2009). "k-средние имеют полиномиальную сглаженную сложность". Труды 50-го симпозиума по основам компьютерной науки (FOCS) . arXiv : 0904.1113 .
  15. ^ Алоиз, Д.; Дешпанде, А.; Хансен, П.; Попат, П. (2009). «NP-трудность кластеризации евклидовой суммы квадратов». Машинное обучение . 75 (2): 245–249. doi : 10.1007/s10994-009-5103-0 .
  16. ^ Дасгупта, С.; Фройнд, Ю. (июль 2009 г.). «Случайные проекционные деревья для векторного квантования». Труды IEEE по теории информации . 55 (7): 3229–42. arXiv : 0805.1390 . doi : 10.1109/TIT.2009.2021326. S2CID  666114.
  17. ^ Махаджан, Мина ; Нимбхоркар, Праджакта; Варадараджан, Кастури (2009). «Плоская задача k-средних NP-сложна». WALCOM: Алгоритмы и вычисления . Конспект лекций по информатике. Том 5431. С. 274–285. doi :10.1007/978-3-642-00202-1_24. ISBN 978-3-642-00201-4.
  18. ^ Инаба, М.; Като, Н.; Имаи, Х. (1994). Применение взвешенных диаграмм Вороного и рандомизации к дисперсионной k -кластеризации . Труды 10-го симпозиума ACM по вычислительной геометрии . стр. 332–9. doi : 10.1145/177424.178042 .
  19. ^ Мэннинг, Кристофер Д.; Рагхаван, Прабхакар; Шютце, Хинрих (2008). Введение в поиск информации . Издательство Кембриджского университета. ISBN 978-0521865715. OCLC  190786122.
  20. ^ ab Артур, Дэвид; Васильвицкий, Сергей (2006-01-01). "Насколько медленным является метод k -средних?". Труды двадцать второго ежегодного симпозиума по вычислительной геометрии . SCG '06. ACM. стр. 144–153. doi :10.1145/1137856.1137880. ISBN 978-1595933409. S2CID  3084311.
  21. ^ Bhowmick, Abhishek (2009). "Теоретический анализ алгоритма Ллойда для кластеризации k-средних" (PDF) . Архивировано из оригинала (PDF) 2015-12-08.Смотрите также здесь.
  22. ^ ab Phillips, Steven J. (2002). "Ускорение K-средних и связанных с ними алгоритмов кластеризации". В Mount, David M.; Stein, Clifford (ред.). Ускорение k -средних и связанных с ними алгоритмов кластеризации . Lecture Notes in Computer Science. Vol. 2409. Springer. pp. 166–177. doi :10.1007/3-540-45643-0_13. ISBN 978-3-540-43977-6.
  23. ^ ab Элкан, Чарльз (2003). "Использование неравенства треугольника для ускорения k-средних" (PDF) . Труды Двадцатой международной конференции по машинному обучению (ICML) .
  24. ^ ab Hamerly, Greg (2010). «Сделать k-средние еще быстрее». Труды Международной конференции SIAM 2010 года по интеллектуальному анализу данных . С. 130–140. doi :10.1137/1.9781611972801.12. ISBN 978-0-89871-703-7.
  25. ^ ab Hamerly, Greg; Drake, Jonathan (2015). «Ускорение алгоритма Ллойда для кластеризации k-средних». Partitional Clustering Algorithms . стр. 41–78. doi :10.1007/978-3-319-09259-1_2. ISBN 978-3-319-09258-4.
  26. ^ Абиодун М. Икотун, Абсалом Э. Эзугву, Лаит Абуалигах, Белал Абухайджа, Цзя Хеминг, Алгоритмы кластеризации K-средних: всесторонний обзор, анализ вариантов и достижения в эпоху больших данных, Информационные науки, том 622, 2023, страницы 178–210, ISSN 0020-0255, https://doi.org/10.1016/j.ins.2022.11.139.
  27. ^ 276. doi:10.1007/BF02289263. S2CID 120467216.
  28. ^ Шуберт, Эрих (2023-06-22). «Прекратите использовать критерий локтя для k-средних и как вместо этого выбрать количество кластеров». ACM SIGKDD Explorations Newsletter. 25 (1): 36–42. arXiv:2212.12189. doi:10.1145/3606274.3606278. ISSN 1931-0145.
  29. ^ Питер Дж. Руссеу (1987). «Силуэты: графическое средство интерпретации и проверки кластерного анализа». Вычислительная и прикладная математика. 20: 53–65. doi:10.1016/0377-0427(87)90125-7.
  30. ^ Роберт Тибширани; Гюнтер Вальтер; Тревор Хасти (2001). «Оценка количества кластеров в наборе данных с помощью статистики разрывов». Журнал Королевского статистического общества, Серия B. 63 (2): 411–423. doi:10.1111/1467-9868.00293. S2CID 59738652.
  31. ^ Дэвис, Дэвид Л.; Боулдин, Дональд В. (1979). «Мера разделения кластеров». Труды IEEE по анализу шаблонов и машинному интеллекту. PAMI-1 (2): 224–227. doi:10.1109/TPAMI.1979.4766909. S2CID 13254783.
  32. ^ Caliński, Tadeusz; Harabasz, Jerzy (1974). «Метод дендритов для кластерного анализа». Communications in Statistics. 3 (1): 1–27. doi:10.1080/03610927408827101.
  33. ^ WM Rand (1971). «Объективные критерии оценки методов кластеризации». Журнал Американской статистической ассоциации. 66 (336). Американская статистическая ассоциация: 846–850. doi:10.2307/2284239. JSTOR 2284239.
  34. ^ Хьюберт Л. и Араби П. (1985). Хьюберт Л. и Араби П. (1985). Сравнение разделов. Классификационный журнал, 2 (1), 193–218. https://doi.org/10.1007/BF01908075
  35. ^ Канунго, Тапас; Маунт, Дэвид М .; Нетаньяху, Натан С .; Пиатко, Кристин Д .; Сильверман, Рут; Ву, Анджела Й. (2002). «Эффективный алгоритм кластеризации k-средних: анализ и реализация» (PDF) . Труды IEEE по анализу шаблонов и машинному интеллекту . 24 (7): 881–892. doi :10.1109/TPAMI.2002.1017616. S2CID  12003435. Получено 24.04.2009 .
  36. ^ Дрейк, Джонатан (2012). "Ускоренные k-средние с адаптивными границами расстояний" (PDF) . 5-й семинар NIPS по оптимизации для машинного обучения, OPT2012 .
  37. ^ Диллон, И.С.; Модха, Д.М. (2001). «Разложение понятий для больших разреженных текстовых данных с использованием кластеризации». Машинное обучение . 42 (1): 143–175. doi : 10.1023/a:1007612920971 .
  38. ^ Штайнбах, М.; Карыпис, Г.; Кумар, В. (2000).«Сравнение методов кластеризации документов». В». Практикум KDD по интеллектуальному анализу текста . 400 (1): 525–526.
  39. ^ Пеллег, Д.; и Мур, А. В. (2000, июнь). "X-средние: расширение k-средних с эффективной оценкой числа кластеров". В ICML , том 1
  40. ^ Хамерли, Грег; Элкан, Чарльз (2004). «Изучение k в k-средних» (PDF) . Достижения в области нейронных систем обработки информации . 16 : 281.
  41. ^ Аморим, RC; Миркин, Б. (2012). «Метрика Минковского, взвешивание признаков и аномальная инициализация кластера в кластеризации k -средних». Распознавание образов . 45 (3): 1061–1075. doi :10.1016/j.patcog.2011.08.012.
  42. ^ Аморим, RC; Хенниг, C. (2015). «Восстановление количества кластеров в наборах данных с шумовыми признаками с использованием коэффициентов масштабирования признаков». Информационные науки . 324 : 126–145. arXiv : 1602.06989 . doi : 10.1016/j.ins.2015.06.039. S2CID  315803.
  43. ^ Скалли, Дэвид (2010). «Кластеризация методом k-средних в масштабе сети». Труды 19-й международной конференции по всемирной паутине . ACM. С. 1177–1178 . Получено 21 декабря 2016 г.
  44. ^ Телгарски, Матус. «Метод Хартигана: кластеризация k-средних без Вороного» (PDF) .
  45. ^ Пикчиалли, Вероника; Судосо, Антонио М.; Вигеле, Анжелика (28 марта 2022 г.). «SOS-SDP: точный решатель для кластеризации минимальной суммы квадратов». ИНФОМС Журнал по вычислительной технике . 34 (4): 2144–2162. arXiv : 2104.11542 . дои : 10.1287/ijoc.2022.1166. ISSN  1091-9856. S2CID  233388043.
  46. ^ Багиров, AM; Тахери, S.; Угон, J. (2016). «Подход негладкого DC-программирования к задачам кластеризации с минимальной суммой квадратов». Pattern Recognition . 53 : 12–24. Bibcode : 2016PatRe..53...12B. doi : 10.1016/j.patcog.2015.11.011.
  47. ^ Франти, Паси (2018). «Эффективность кластеризации случайных свопов». Журнал больших данных . 5 (1): 1–21. doi : 10.1186/s40537-018-0122-y .
  48. ^ Хансен, П.; Младенович, Н. (2001). "J-средние: новая эвристика локального поиска для кластеризации минимальной суммы квадратов". Распознавание образов . 34 (2): 405–413. Bibcode : 2001PatRe..34..405H. doi : 10.1016/S0031-3203(99)00216-2.
  49. ^ Кришна, К.; Мурти, МН (1999). «Генетический алгоритм k-средних». Труды IEEE по системам, человеку и кибернетике — Часть B: Кибернетика . 29 (3): 433–439. doi :10.1109/3477.764879. PMID  18252317.
  50. ^ ab Gribel, Daniel; Vidal, Thibaut (2019). «HG-means: масштабируемая гибридная метаэвристика для кластеризации с минимальной суммой квадратов». Pattern Recognition . 88 : 569–583. arXiv : 1804.09813 . doi : 10.1016/j.patcog.2018.12.022. S2CID  13746584.
  51. ^ Mirkes, EM "Апплет K-средних и k-медоидов" . Получено 2 января 2016 г.
  52. ^ Кулис, Брайан; Джордан, Майкл И. (2012-06-26). «Пересмотр k-средних: новые алгоритмы с использованием байесовских непараметрических методов» (PDF) . ICML . Ассоциация вычислительной техники. стр. 1131–1138. ISBN 9781450312851.
  53. ^ abc Коутс, Адам; Нг, Эндрю Й. (2012). "Изучение представлений признаков с помощью k-средних" (PDF) . В Монтавон, Г.; Орр, ГБ; Мюллер, К.-Р. (ред.). Нейронные сети: секреты торговли . Springer.
  54. ^ Csurka, Gabriella; Dance, Christopher C.; Fan, Lixin; Willamowski, Jutta; Bray, Cédric (2004). Визуальная категоризация с использованием наборов ключевых точек (PDF) . Семинар ECCV по статистическому обучению в области компьютерного зрения.
  55. ^ ab Коутс, Адам; Ли, Хонглак; Нг, Эндрю Й. (2011). Анализ однослойных сетей в неконтролируемом обучении признаков (PDF) . Международная конференция по искусственному интеллекту и статистике (AISTATS). Архивировано из оригинала (PDF) 2013-05-10.
  56. ^ Швенкер, Фридхельм; Кестлер, Ганс А.; Пальм, Гюнтер (2001). «Три фазы обучения для сетей с радиально-базисными функциями». Нейронные сети . 14 (4–5): 439–458. CiteSeerX 10.1.1.109.312 . doi :10.1016/s0893-6080(01)00027-2. PMID  11411631. 
  57. ^ Линь, Деканг; У, Сяоюнь (2009). Кластеризация фраз для дискриминативного обучения (PDF) . Ежегодное собрание ACL и IJCNLP. С. 1030–1038.
  58. ^ ab Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). "Раздел 16.1. Модели гауссовских смесей и кластеризация k-средних". Numerical Recipes: The Art of Scientific Computing (3-е изд.). Нью-Йорк (NY): Cambridge University Press. ISBN 978-0-521-88068-8.
  59. ^ Кевин П. Мерфи (2012). Машинное обучение: вероятностная перспектива . Кембридж, Массачусетс: MIT Press. ISBN 978-0-262-30524-2. OCLC  810414751.
  60. ^ Аарон, Михал ; Элад, Майкл; Брукштейн, Альфред (2006). "K-SVD: алгоритм проектирования сверхполных словарей для разреженного представления" (PDF) . IEEE Transactions on Signal Processing . 54 (11): 4311. Bibcode : 2006ITSP...54.4311A. doi : 10.1109/TSP.2006.881199. S2CID  7477309.
  61. ^ Чжа, Хунъюань; Дин, Крис; Гу, Мин; Хэ, Сяофэн; Саймон, Хорст Д. (декабрь 2001 г.). «Спектральная релаксация для кластеризации k-средних» (PDF) . Neural Information Processing Systems Vol.14 (NIPS 2001) : 1057–1064.
  62. ^ Дин, Крис; Хе, Сяофэн (июль 2004 г.). «Кластеризация методом k-средних с помощью анализа главных компонент» (PDF) . Труды Международной конференции по машинному обучению (ICML 2004) : 225–232.
  63. ^ Дринеас, Петрос; Фриз, Алан М.; Каннан, Рави; Вемпала, Сантош; Винай, Вишванатан (2004). «Кластеризация больших графов с помощью сингулярного разложения» (PDF) . Машинное обучение . 56 (1–3): 9–33. doi : 10.1023/b:mach.0000033113.59016.96 . S2CID  5892850 . Получено 2012-08-02 .
  64. ^ Коэн, Майкл Б.; Элдер, Сэм; Маско, Кэмерон; Маско, Кристофер; Персу, Мадалина (2014). «Уменьшение размерности для кластеризации k -средних и аппроксимации низкого ранга (Приложение B)». arXiv : 1410.6801 [cs.DS].
  65. ^ ab Little, Max A.; Jones, Nick S. (2011). «Обобщенные методы и решатели для удаления шума из кусочно-постоянных сигналов. I. Фоновая теория». Труды Королевского общества A . 467 (2135): 3088–3114. Bibcode :2011RSPSA.467.3088L. doi :10.1098/rspa.2010.0671. PMC 3191861 . PMID  22003312. 
  66. ^ Винников, Алон; Шалев-Шварц, Шай (2014). "K-средние восстанавливают фильтры ICA, когда независимые компоненты разрежены" (PDF) . Труды Международной конференции по машинному обучению (ICML 2014) .
Retrieved from "https://en.wikipedia.org/w/index.php?title=K-means_clustering&oldid=1254235236"