첫 번째 주요 컴포넌트는 클래스를 분리하지 않지만 다른 PC는 클래스를 분리합니다. 어떻게 가능합니까?


11

인스턴스를 두 개의 클래스로 분류하기 위해 감독 기계 학습에 사용되는 더 작은 변수 세트 (주요 구성 요소)를 얻기 위해 17 개의 정량 변수에 대해 PCA를 실행했습니다. PCA 후 PC1은 데이터 분산의 31 %를 차지하고 PC2는 17 %, PC3은 10 %, PC4는 8 %, PC5는 7 %, PC6은 6 %를 차지합니다.

그러나 두 클래스 간의 PC 간의 평균 차이를 볼 때 놀랍게도 PC1은 두 클래스 사이의 좋은 차별자가 아닙니다. 나머지 PC는 좋은 차별 자입니다. 또한 의사 결정 트리에서 사용될 때 PC1은 관련이 없어집니다. 즉, 트리 정리 후에는 트리에도 존재하지 않습니다. 트리는 PC2-PC6으로 구성됩니다.

이 현상에 대한 설명이 있습니까? 파생 변수에 문제가있을 수 있습니까?


5
이 최근 질문 stats.stackexchange.com/q/79968/3277 에 추가 링크가 있습니다. PCA는 않기 때문에 하지 가없는 클래스의 존재에 대해 알고 보장 는 PCS의 정말 좋은 판별 기 될 것; PC1은 좋은 차별자가 될 것입니다. 예를 들어 두 그림을 참조 하십시오 .
ttnphns

2
PCA가 분류기의 결과를 악화시키는 원인무엇입니까?를 참조하십시오 . , 특히 @vqv의 답변에있는 수치.
amoeba

답변:


14

PCA를 수행하기 전에 변수가 단위 분산을 갖도록 스케일되지 않은 경우에도 발생할 수 있습니다. 예를 들어, 이들 데이터 (통지가 있는지 규모 만에서 진행 - 0.5 반면 , X는 로 간다 - 33 )와이0.51엑스

여기에 이미지 설명을 입력하십시오

PC1은 대략 이고 거의 모든 차이를 설명하지만 차별적 인 힘은 없지만 PC2는 y 이고 클래스간에 완벽하게 구별됩니다.엑스와이


안녕, 답변 주셔서 감사합니다! 스케일링은 어떻게해야합니까? (x- 평균) / sd?
Frida

예, RI prcomp(x, center=T, scale=T)에서 (x-mean) / sd를 수행하는 것과 동일합니다. 이 예제에서는 주 구성 요소가 클래스간에 좋은 차별 요소가 아님을 알 수 있습니다. 둘 다 함께 사용하는 경우에만 작동합니다.
Flounderer

PC가 상호 보완 적이지만 이에 대한 설명이 있습니까? 솔직히 말해서 이것은 다른 사람들에 비해 약한 PC1을 얻는 것이 처음입니다.
Frida

@ 프리다 : ttnphns의 의견이 대상입니다. en.wikipedia.org/wiki/Linear_discriminant_analysis 세 번째 단락을 참조하십시오 . 어떤 의미에서는 PCA가 그렇게 자주 유용하다는 것이 운이 좋다.
Wayne

6

나는 @Flounderer가 제공 한 답변과 예제 가 이것을 암시 한다고 가정 하지만, 이것을 철자 할 가치가 있다고 생각합니다. 주성분 분석 (PCA)은 라벨 (분류)에 무관합니다. 모든 고차원 데이터를 다른 차원 공간으로 변환하기 만하면됩니다. 예를 들어 특정 방법으로 쉽게 분리 할 수있는 데이터 세트를 작성하여 분류 시도에 도움 이 될 수 있습니다 . 그러나 이것은 PCA의 부산물 (또는 부작용) 일뿐입니다.


1

주성분 분석을 수행 할 때 주성분은 최대 변동의 방향에 해당하며, 클래스 간 최대 차별 또는 분리를 보장하지는 않습니다.

따라서 두 번째 구성 요소는 우수한 분류를 제공하므로 해당 방향의 데이터를 통해 클래스를보다 잘 구별 할 수 있습니다. 선형 판별 분석 (LDA)을 수행하면 클래스 간 거리를 최대화하고 클래스 내 거리를 최소화하는 최상의 직교 방향 구성 요소를 제공합니다.

따라서 PCA 대신 데이터에 대해 LDA를 수행하면 첫 번째 구성 요소 중 하나가 PC1보다 PC6에 더 가깝습니다. 도움이 되었기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.