-
PCA vs. SVD vs. FAML 2022. 6. 9. 23:14
비슷한 듯 달라보이는, 차원축소 관련된 방법론들을 모았다.
엄밀히 말하자면 PCA vs FA, PCA vs SVD가 될 것 같다.
수식을 최대한 빼고 의미를 설명하면 다음과 같다
1) PCA vs FA :
- 둘다 차원 축소에 쓰임
- PCA는 X 변수들을 잘 조합해서 변별력있는 벡터들을 찾는 것이고, FA는 X변수 각각을 무언가 잠재변수의 조합으로 설명할 수 있다는 것이다.
1-1) PCA
예를 들어,
시험에서 재무, 영어 과목이 있다고 하면,
PCA의 경우, 해당 데이터 포인트들의 분산을 보고 가장 잘 설명하는 축들을 만들어주는 것이다.
PC1 = a_1*재무 + b_1*영어
PC2 = a_2*재무 + b_2*영어
그 축들은 서로 직교(orthogonal)한다.
1-2)FA
FA는 보통 해당 방법론을 설명하는 그림은 없고, 도식으로 설명하는데, 그 이유는 잠재변수가 있다고 가정한 모델을 세우고 계산하여 나오는 결과기 때문이다.
재무 = c_1*잠재변수1 + d_1*잠재변수2 ( + error)
영어 = c_2*잠재변수1 + d_2*잠재변수2 ( + error)
이를테면 잠재변수1과 잠재변수2는 수리 능력, 언어 능력 정도라고 표현할 수 있겠다.
그 모델의 c_i, d_i를 찾는 것은,
재무와 영어의 covariance matrix의 theretical cov matrix 와 sample cov matrix값을 통해 c_i, d_i factor loading 값을 찾게 된다.
이미지 출처 : http://commres.net/wiki/factor_analysis
2) PCA vs SVD:
사실 엄밀하게는 eigen decomposition vs svd 비교가 더 맞다.(행렬분해 방법론이기 때문)
PCA에는 eigen decomposition가 쓰이기 때문에 헷갈릴 수 있다.
어쨌든 기하학적 의미를 간단히 비교하면 다음과 같다.
PCA : 공"분산" 행렬을 가지고 고윳값, 고유벡터 가지고 축소하는것. C = 어쩌구저쩌구
SVD : "데이터"의 열벡터를 가지고 응집성을 찾아 차원 축소 가능. X = 어쩌구저쩌구
아래 글에 기하학적 의미를 매우 잘 파악할 수 있다!
https://velog.io/@pengu/2주차-Day3-08강-SVD-PCA
그렇지만, 현실적으로 sklearn에서는 PCA에 eigen decomposition 대신 SVD 가 활용되고 있어 결과는 동일하다고 한다. 그 이유는 eigen decomposition는 공분산 행렬을 저장해야하나, SVD는 바로 분해가능하기 때문.
(아래 참고)
3) 추가로, PCA에 standardization이 필요한가?
1) centering
필요없음. 이미 covariance matrix 자체가 centering하는 거니까
2) scaling
분산을 보존하고 싶으면 그대로 covariance matrix사용,
분산을 보정하고 싶으면 correlation matrix 사용.
그런데 covariance matrix 사용하여 분산 보정하고 싶으면 scaling해야 겠지
https://stats.stackexchange.com/questions/53/pca-on-correlation-or-covariance
4) svd 에 standardization이 필요한가?
분산 보존 하고 싶냐 아니냐에 따라 다르다.
5) 그런데.. sklearn PCA에는 결국 SVD 쓰이는데...왜 PCA 엄밀하게 안쓰고 SVD 썼냐?
- covariance matrix 너무 크니깐...
- 그리고 PCA sklearn에서 어쨌든 explained variance 계산되어서 쓰긴함. (singluar value --> eigen value 치환을 통해)
6) PC variable과 변수의 관계를 보고 싶으면 loading plot 으로.
예시 : x 축 PC1, y축 PC2 로 하고, 해당 변수의 벡터 방향성을 보고 판단
https://ratsgo.github.io/machine learning/2017/04/24/PCA/
위 링크에서 그림을 보면 됨.
Reference:
'ML' 카테고리의 다른 글
Entropy, Cross Entropy, KLD (0) 2022.06.11 Precision vs. Recall & AUC plot (0) 2022.06.11 Clustering Validation - Prediction Strength (0) 2022.06.10 Causal Inference - causal mediation analysis vs DID vs SCM vs causal impact (0) 2022.06.10 PDP vs. LIME vs. SHAP (0) 2022.06.06