Первый основной компонент не разделяет классы, но другие ПК делают; как это возможно?

11

Я запустил PCA на 17 количественных переменных, чтобы получить меньший набор переменных, которые являются основными компонентами, которые будут использоваться в контролируемом машинном обучении для классификации экземпляров на два класса. После PCA на ПК1 приходится 31% отклонений в данных, на ПК2 - 17%, на ПК3 - 10%, на ПК4 - 8%, на ПК5 - 7% и на ПК6 - 6%.

Однако, когда я смотрю на средние различия между ПК между двумя классами, удивительно, что ПК1 не является хорошим разграничением между этими двумя классами. Остальные ПК - хорошие дискриминаторы. Кроме того, PC1 становится неактуальным, когда используется в дереве решений, что означает, что после сокращения дерева он даже не присутствует в дереве. Дерево состоит из ПК2-ПК6.

Есть ли объяснение этому явлению? Может ли быть что-то не так с производными переменными?

Фрида
источник
5
Прочитайте этот недавний вопрос stats.stackexchange.com/q/79968/3277 с дополнительной ссылкой в ​​нем. Поскольку PCA не знает о существовании классов, это не гарантирует, что любой из компьютеров будет действительно хорошим дискриминатором; тем более что PC1 будет хорошим дискриминатором. Смотрите также две картинки в качестве примера здесь .
ttnphns
2
См. Также Что может привести к ухудшению результатов PCA классификатора? В частности цифры в ответе @vqv.
амеба

Ответы:

14

Это также может произойти, если переменные не масштабируются, чтобы иметь единичную дисперсию перед выполнением PCA. Например, для этих данных (уведомление о том , что шкалы идет только от - 0,5 до 1 , тогда как х идет от - 3 до 3 ):Y-0,51Икс-33

введите описание изображения здесь

PC1 приблизительно равен и учитывает почти все отклонения, но не имеет никакой дискриминационной силы, тогда как PC2 равен y и отлично различает классы.ИксY

Flounderer
источник
Привет спасибо за ответ Как масштабирование должно быть сделано? (х-среднее) / SD?
Фрида
Да, в RI используется prcomp(x, center=T, scale=T)то же самое, что и делать (x-mean) / sd. В этом примере вы обнаружите, что ни один из главных компонентов не является хорошим разграничителем между классами; это работает, только если они оба используются вместе.
Камбала
Я понимаю, что компьютеры дополняют друг друга, но есть ли объяснение этому? Если честно, я впервые получаю более слабый ПК1 по сравнению с другими.
Фрида
@Frida: комментарий ttnphns намечен. Смотрите en.wikipedia.org/wiki/Linear_discriminant_analysis третий абзац. В некотором смысле повезло, что PCA оказывается полезным так часто.
Уэйн
6

Я предполагаю, что ответ и пример, предоставленный @Flounderer, подразумевают это, но я думаю, что это стоит изложить. Анализ основных компонентов (PCA) - это метка (классификация) безразличных. Все, что он делает, - это преобразовывает некоторые многомерные данные в другое пространственное пространство. Это может помочь в попытках классификации, например, путем создания набора данных, который легче отделить определенным методом. Тем не менее, это только побочный продукт (или побочный эффект) PCA.

Борис Горелик
источник
1

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

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

Поэтому, если вы будете использовать LDA для данных вместо PCA, возможно, один из самых первых компонентов будет ближе к PC6, чем к PC1. Надеюсь это поможет.

Santanu_Pattanayak
источник