해결된 질문
작성
·
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% 알수 없습니다.
감사합니다.