인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

rjsdnr4님의 프로필 이미지
rjsdnr4

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

PCA를 이용한 신용카드 데이터 세트의 차원 축소 실습

PCA 변환시

해결된 질문

작성

·

169

1

PCA 변환시 피처추출시

기존 변수가 결합해서 새로운 변수가 추출된건데

원인 변수를 알 수 없는지요?

예를들어 PCA후 변수1이 생성되었다면

키와 몸무게가 합쳐서 변수1이 생성되었다.

이상입니다.

답변 3

2

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

아쉽게도(제가 아는한) 정확히 알 수 있는 방법은 없습니다. 가령 키 60% 몸무게 40%와 같은 형태로 알 수 없습니다.

PCA는 개별 Feature들의 공분산에 기반하여 고유 벡터를 추출하고, 이 고유 벡터를 기반으로 하여 원본 데이터를 선형 변환하는 방식입니다. 이렇게 선형 변환된 데이터를 정확하지는 않지만 손실을 감안하여 원본 데이터와 유사하게 원복은 할 수 있습니다만, 이렇게 하더라도 각 Feature들이 얼만큼 결합되어 PCA변환되었는지 정확히 알 수 있는 방법은 없습니다.

개괄적으로나마 알기 위해서는 약간의 노가다(?) 방법을 동원할 수도 있습니다.

만일 10개의 FEATURE들이 있고 이를 2개의 PCA component로 변환한다면 10개중 4~5개 정도를 임의로 선택하여 2개의 PCA 로 변환할 때 얼마나 원본과 explained variance ratio가 차이나는지 feature들을 반복해서 테스트 하면서 가장 좋은 feature들을 가려내면서 감을 잡는 방법입니다.

좋은 질문이십니다.  감사합니다.

1

가장 고유값이 높은 고유벡터의 벡터원소들을 구하면 되는 것 아닌가요?! 

0

권 철민님의 프로필 이미지
권 철민
지식공유자

고유값이 높은 고유 벡터는 PCA로 선형 변환할때 적용됩니다만, 이를 이용해도 원본 데이터를 100% 복원할 수는 없습니다.  사이킷런의 PCA의 inverse_transform()을 적용하면 원본 데이터를 어느정도 복원해주지만, 어떤 속성끼리 결합되어 PCA가 만들어졌는지 100%  알수 없습니다.

감사합니다.

rjsdnr4님의 프로필 이미지
rjsdnr4

작성한 질문수

질문하기