Кластеризация данных после уменьшения размерности с помощью PCA

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

Использование PCA в наборе данных Iris (с данными в CSV, упорядоченными таким образом, что перечислены все из первого класса, затем второго, затем третьего) дает следующий график: - Заказные данные проходят через PCA

Видно, что три класса в наборе данных Iris были сохранены. Однако, когда порядок выборок рандомизирован, получается следующий график:

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

Будут ли неточности из-за отказа от основных компонентов более низкого порядка?

РЕДАКТИРОВАТЬ: - Чтобы было ясно, я спрашиваю, можно ли кластеризовать набор данных после запуска PCA, и если да, то каким будет наиболее точный метод.


person Jack H    schedule 25.09.2013    source источник
comment
Что именно вы затеяли? Некоторое время назад я построил PCA радужной оболочки, и на первых двух уменьшенных измерениях (содержащих наибольшую дисперсию) кластеры были видны.   -  person Thomas Jungblut    schedule 25.09.2013
comment
Привет, я строю произведение первого основного компонента собственного вектора и исходного (нулевого среднего) набора данных.   -  person Jack H    schedule 25.09.2013
comment
Сделайте гистограмму, вместо того, чтобы просто строить точки.   -  person Don Reba    schedule 26.09.2013


Ответы (2)


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

Ваши данные вполне могут быть разделены в измерении с низкой дисперсией. Я бы не рекомендовал запускать PCA до кластеризации.

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

Существуют эффективные алгоритмы кластеризации, не требующие предварительного знания количества классов, такие как Mean Shift и DBSCAN.

person Don Reba    schedule 25.09.2013

Попробуйте отсортировать набор данных после PCA, а затем построить его.

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

Плюс "мудрый" - в каком смысле? Если вы хотите съесть пиццу, неразумно строить набор данных по радужной оболочке.

person Has QUIT--Anony-Mousse    schedule 25.09.2013
comment
Но в случае, когда порядок неизвестен, что происходит? Мудрый/точный - даст ли это правильное представление данных. - person Jack H; 25.09.2013
comment
Сортируйте по значению в первом измерении, а не по исходному порядку, и результат будет еще лучше! Определите правильное представление. В реальных данных нет такого понятия, как правильное. - person Has QUIT--Anony-Mousse; 26.09.2013