Обычной практикой является применение PCA (анализ главных компонентов) перед алгоритмом кластеризации (таким как k-средних). Считается, что это улучшает результаты кластеризации на практике (снижение шума).
Однако я заинтересован в сравнительном и углубленном изучении взаимосвязи между PCA и k-средних. Например, Крис Дин и Сяофэн Хе, 2004, Кластеризация K-средних с помощью анализа главных компонентов, показали, что «главными компонентами являются непрерывные решения индикаторов дискретного членства в кластере для кластеризации K-средних». Однако мне трудно понять эту статью, и Википедия фактически утверждает, что это неправильно .
Кроме того, результаты двух методов несколько различаются в том смысле, что PCA помогает уменьшить количество «функций» при сохранении дисперсии, тогда как кластеризация уменьшает количество «точек данных», суммируя несколько точек по их ожиданиям / средствам. (в случае k-средних). Таким образом, если набор данных состоит из точек, каждый из которых содержит объектов, PCA стремится к сжатию объектов тогда как кластеризация стремится к сжатию точек данных.Т Т Н
Я ищу непрофессиональное объяснение отношений между этими двумя методами + еще несколько технических документов, касающихся этих двух методов.
источник
Ответы:
Это правда, что кластеризация K-средних и PCA, по-видимому, имеют совершенно разные цели и на первый взгляд, похоже, не связаны между собой. Однако, как объяснено в статье D-& He 2004 г. Кластеризация K-средних с помощью анализа основных компонентов , между ними существует глубокая связь.
Интуиция заключается в том, что PCA стремится представить все векторов данных в виде линейных комбинаций небольшого числа собственных векторов и делает это для минимизации среднеквадратичной ошибки восстановления. Напротив, K-среднее стремится представлять все векторов данных через небольшое количество центроидов кластеров, то есть представлять их как линейные комбинации небольшого числа векторов центроидов кластеров, где веса линейных комбинаций должны быть равны нулю, за исключением одного . Это также сделано, чтобы минимизировать среднеквадратичную ошибку реконструкции.n 1n n 1
Таким образом, K-средних можно рассматривать как супер разреженный PCA.
То, что делает бумага Ding & He, это сделать эту связь более точной.
К сожалению, статья Ding & He содержит неаккуратные формулировки (в лучшем случае) и может быть легко понята неправильно. Например, может показаться, что Ding & He утверждают, что доказали, что центроиды кластеров решения кластеризации K-средних лежат в -мерном подпространстве PCA:(K−1)
Для это будет означать, что проекции на оси PC1 обязательно будут отрицательными для одного кластера и положительными для другого кластера, то есть ось PC2 будет идеально разделять кластеры.K=2
Это либо ошибка, либо неаккуратное написание; в любом случае, буквально это конкретное утверждение является ложным.
Давайте начнем с рассмотрения некоторых игрушечных примеров в 2D для . Я сгенерировал несколько выборок из двух нормальных распределений с одной и той же ковариационной матрицей, но разными способами. Я тогда управлял и K-means и PCA. На следующем рисунке показан график разброса данных выше и те же данные, окрашенные в соответствии с решением K-средних, приведенным ниже. Я также показываю первое основное направление в виде черной линии и центроидов классов, найденных с помощью K-средних с черными крестами. Ось PC2 показана пунктирной черной линией. К-среднее было повторено раз со случайными семенами, чтобы обеспечить сходимость к глобальному оптимуму.100K=2 100
Хорошо видно, что, хотя центроиды классов, как правило, довольно близки к первому направлению ПК, они точно не падают на него. Более того, даже несмотря на то, что ось PC2 прекрасно разделяет кластеры на участках 1 и 4, на участках 2 и 3 есть пара точек с обратной стороны.
Таким образом, соглашение между K-means и PCA довольно хорошее, но не точное.
Так что же доказали Дин и Он? Для простоты я рассмотрю только случай . Пусть количество точек, назначенных каждому кластеру, равно и а общее количество точек . Следуя Ding & He, давайте определим вектор индикатора кластера следующим образом: если точки принадлежат кластеру 1, и если он принадлежит кластеру 2. Вектор индикатора кластера имеет единичную длину и является "центрированным", то есть его элементы sum to zero .n 1 n 2 n = n 1 + n 2 q ∈ R n q i = √K=2 n1 n2 n=n1+n2 q∈Rn iqi=-√qi=n2/nn1−−−−−−√ i qi=−n1/nn2−−−−−−√ ∥q∥=1 ∑qi=0
Ding & He показывают, что функция потерь K-средних (этот алгоритм K-средних минимизирует) может быть эквивалентно переписана как , где - матрица Грама скалярных произведений между всеми точками: , где - матрица данных и - центрированная матрица данных.∑k∑i(xi−μk)2 −q⊤Gq G n×n G=X⊤cXc X n×2 Xc
(Примечание: я использую обозначения и терминологию, которые немного отличаются от их статьи, но которые я нахожу более понятными).
Таким образом, решение K-средних - это центрированный единичный вектор, максимизирующий . Легко показать, что первый главный компонент (когда нормализовано иметь единичную сумму квадратов) является ведущим собственным вектором матрицы Грама, то есть он также является центрированным единичным вектором максимизирующим . Единственное отличие состоит в том, что дополнительно ограничен двумя разными значениями, тогда как не имеет этого ограничения.q q⊤Gq p p⊤Gp q p
Другими словами, K-средних и PCA максимизируют одну и ту же целевую функцию , с той лишь разницей, что у K-средних есть дополнительное «категориальное» ограничение.
Само собой разумеется, что в большинстве случаев решения K-средних (с ограничениями) и PCA (без ограничений) будут довольно близки друг к другу, как мы видели выше при моделировании, но не следует ожидать, что они будут идентичными. Принятие и установка всех его отрицательных элементов равными и всех его положительных элементов в обычно не дают точно .p −n1/nn2−−−−−−√ n2/nn1−−−−−−√ q
Дин и Он, кажется, хорошо это понимают, потому что они формулируют свою теорему следующим образом:
Обратите внимание, что слова «непрерывное решение». После доказательства этой теоремы они дополнительно комментируют, что PCA может использоваться для инициализации итераций K-средних, что имеет полный смысл, учитывая, что мы ожидаем, что будет близко к . Но все же нужно выполнять итерации, потому что они не идентичны.q p
Тем не менее, Дин и Хэ продолжили разработку более общего подхода к и в итоге сформулировали теорему 3.3 какK>2
Я не проходил математику в разделе 3, но я полагаю, что эта теорема на самом деле также относится к «непрерывному решению» K-средних, то есть его утверждение должно читаться как «кластерное центроидное пространство непрерывного решения K-средних. натянутый [...] ".
Ding & He, однако, не делают эту важную квалификацию, и, кроме того, напишите в своем резюме, что
Первое предложение абсолютно правильно, а второе - нет. Мне не ясно, является ли это (очень) неаккуратным письмом или подлинной ошибкой. Я очень вежливо послал по электронной почте обоим авторам, просящим разъяснения. (Обновление два месяца спустя: я никогда не получал ответ от них.)
Matlab симуляционный код
источник
kmeans
функцию с 100 повторениями: она каждый раз выбирает различную случайную инициализацию, а затем выбирает лучшее решение, поэтому следует надеяться, что будет достигнут глобальный оптимум.PCA и K-средства делают разные вещи.
PCA используется для уменьшения размерности / выбора признаков / обучения представлению, например, когда пространство признаков содержит слишком много ненужных или избыточных функций. Цель состоит в том, чтобы найти внутреннюю размерность данных.
Вот двумерный пример, который можно обобщить на пространства более высоких измерений. Набор данных имеет две особенности: и , каждый кружок является точкой данных.x y
На изображении имеет большую величину, чем . Это собственные векторы. Размерность данных уменьшена с двух измерений до одного измерения (в этом случае выбор невелик), и это делается путем проецирования в направлении вектора (после поворота, когда становится параллельным или перпендикулярным одной из осей) , Это связано с тем, что ортогональна направлению наибольшей дисперсии. Один из способов думать об этом - минимальная потеря информации. (Потеря все еще существует, так как потерялась одна ось координат).v1 v2 v2 v2 v2
K-means - это алгоритм кластеризации, который возвращает естественную группировку точек данных на основе их сходства. Это особый случай гауссовых моделей смесей .
На изображении ниже набор данных имеет три измерения. Из трехмерного графика слева видно, что размер можно «отбросить» без потери большого количества информации. PCA используется для проецирования данных в два измерения. На рисунке слева также показана проекционная плоскость. Затем можно использовать K-средства на проецируемых данных для маркировки различных групп, на рисунке справа, закодированных разными цветами.X
PCA или другие методы уменьшения размерности используются до как неконтролируемых, так и контролируемых методов в машинном обучении. В дополнение к причинам, изложенным вами и тем, что я упомянул выше, он также используется для целей визуализации (проекция в 2D или 3D из более высоких измерений).
Что касается статьи, я не верю, что есть какая-либо связь, PCA не имеет информации относительно естественной группировки данных и оперирует целыми данными, а не подмножествами (группами). Если некоторые группы можно объяснить одним собственным вектором (просто потому, что этот конкретный кластер распределен вдоль этого направления), это просто совпадение, и его не следует принимать за общее правило.
Действительно, сжатие - это интуитивно понятный способ думать о PCA. Однако в K-означает, что для описания каждой точки относительно ее кластера вам все равно нужно по крайней мере такое же количество информации (например, размеры) , где - это расстояние, а хранится вместо . И вам также нужно сохранить чтобы знать, к чему относится дельта. Вы можете, конечно , магазин и , однако , вы не сможете получить актуальную информацию в данных.xi=d(μi,δi) d δi xi μi d i
Кластеризация действительно добавляет информацию. Я думаю об этом как о разделении данных на естественные группы (которые не обязательно должны быть непересекающимися), не зная, что означает метка для каждой группы (ну, пока вы не посмотрите на данные внутри групп).
источник
Обычно отбеливают данные перед использованием k-средних. Причина в том, что k-means чрезвычайно чувствителен к масштабу, а когда у вас смешанные атрибуты, «истинного» масштаба больше нет. Затем вы должны нормализовать, стандартизировать или отбелить ваши данные. Ни один из них не идеален, но отбеливание устранит глобальную корреляцию, которая иногда может дать лучшие результаты. PCA / отбеливание - так как вы работаете с ковариационной матрицей.O(n⋅d2+d3)
Насколько я понимаю, отношение k-средних к PCA не соответствует исходным данным . Он заключается в использовании PCA на матрице расстояний (которая имеет записей, и, таким образом, полное PCA составляет - то есть непомерно дорого, в частности по сравнению с k-средних, которые где - единственный большой член), и, возможно, только для . K-среднее - это задача оптимизации методом наименьших квадратов, как и PCA. k-means пытается найти раздел наименьших квадратов данных. PCA находит вектор принадлежности кластера наименьших квадратов.n2 O(n2⋅d+n3) O(k⋅n⋅i⋅d) n k=2
Первый собственный вектор имеет наибольшую дисперсию, поэтому расщепление по этому вектору (которое напоминает принадлежность кластера, а не координаты входных данных!) Означает максимизацию дисперсии кластера . Максимизируя дисперсию кластера, вы также минимизируете дисперсию внутри кластера.
Но для реальных проблем это бесполезно. Это только теоретический интерес.
источник
Решение k-средних в приближении O (k / epsilon) низкого ранга (т. Е. Проекция на диапазон первых по величине сингулярных векторов, как в PCA) даст (1 + эпсилон) приближение в терминах мультипликативной ошибки.
В частности, проецирование на k-самый большой вектор даст 2-аппроксимацию.
Фактически, сумма квадратов расстояний для ЛЮБОГО множества k центров может быть аппроксимирована этой проекцией. Затем мы можем вычислить базовый набор на сокращенных данных, чтобы уменьшить входные данные до поли (k / eps) точек, которые приближаются к этой сумме.
См .: Дэн Фельдман, Мелани Шмидт, Кристиан Солер: Превращение больших данных в крошечные данные: наборы ядер постоянного размера для k-средних, PCA и проективной кластеризации. СОДА 2013: 1434-1453
источник
Интуитивные отношения PCA и KMeans
Теоретически анализ измерений PCA (первое измерение K сохраняет, скажем, 90% дисперсии ... не обязательно иметь прямую связь с кластером K Means), однако ценность использования PCA пришла из а) практического рассмотрения, учитывая природу объектов, которые мы анализируем тенденцию естественным образом объединяться вокруг (или сегмента) их основных компонентов (возраст, пол и т. д.) b / эволюционировать b) PCA устраняет эти низкие дисперсионные измерения (шум), поэтому сама добавляет ценность (и формирует ощущение, подобное кластеризации ) сосредоточив внимание на этом ключевом измерении. Проще говоря, это то же самое, что ось XY - это то, что помогает нам овладеть любой абстрактной математической концепцией, но более продвинутым образом.
K означает попытку минимизировать общее расстояние внутри кластера для данного K
Выбор кластеров на основе / вдоль CP может удобно привести к удобному механизму распределения
Этот пример может быть примером, если x - первый ПК вдоль оси X: (........... CC1 ............... CC2 ..... ....... CC3 X ось), где ось X, скажем, захватить более 9X% дисперсии и, скажем, единственный компьютер
6. Наконец, PCA также используется для визуализации после того, как сделано K-средство (ссылка 4).
Если PCA отображает * результат нашей K-кластеризации как ортогональный или близкий к этому, то это признак того, что наша кластеризация является надежной, каждая из которых обладает уникальными характеристиками
(* поскольку по определению PCA обнаруживает / отображает эти основные измерения (от 1D до 3D), такие, что, скажем, K (PCA) будет охватывать, вероятно, подавляющее большинство дисперсии.
Таким образом, PCA полезен как для визуализации, так и для подтверждения хорошей кластеризации, а также как полезный элемент для определения кластеризации K-средств - должен использоваться до и после K-средств.
Ссылка:
источник