PCA의 원시적 의미
종합점수를 계산하는 방법
- 100명 학새들의 국어와 영어 시험 성적에 대해 종합점수를 잘 내려면?
- 벡터의 내적(정사영)을 통해 표현
- 데이터 벡터를 어떤 벡터에 내적(혹은 정사영)하는 것이 최적의 결과를 얻어 주는가?
- 기왕 정사영 할 벡터(혹은 축)를 찾는데, 데이터 분포의 중심을 중심축으로 하는 벡터를 찾는제 좋지 않을까?
⇒ ‘데이터의 구조’를 기술하는 ‘공분산 행렬’로 부터 해답을 얻자!
PCA의 의미
원래 데이터의 정보(분산)를 최대한 보존하는 새로운 축을 찾고, 그 축에 데이터를 사영(Linear Projection)하여 고차원의 데이터를 저차원으로 변환하는 기법입니다.
- 주성분(PC)은 기존 데이터의 분산을 최대한 보존하도록 데이터를 투영하는 축입니다.
- PC의 단위벡터는 데이터의 공분산 행렬에 대한 고유벡터입니다.
- 고유벡터에 투영한 데이터의 분산이 고윳값입니다.
- Feature Extraction 방식 중 하나로, 기존 변수의 선형결합으로 새로운 변수(PC)를 생성합니다.
PCA 과정
- 데이터셋 불러오기
- 데이터 표준화하기
- 표준화린 각 열에 대해 평균을 빼고 표준편차로 나누어서 데이터를 평균 0, 표준편차 1로 scaling 하는 것입니다.
- 표준화한 데이터셋의 공분산행렬 구하기
4.공분산행렬의 Eigenstuff 구하기
- 공분산행렬의 고유벡터(eigencvector)와 고윳값(eigenvalue)는 쌍을 이루며, 그 수는 feature수와 동일합니다.
- 데이터를 고유벡터(eigenvector)에 투영(projection)하기
- 투영한 데이터(Projected Data)에서 PCA 차원 정하기
- Scree Plots을 활용하여 explained variance(eigenvector로 투영했을 때의 분산=eigenvalue) 혹은 explained variance ratio를 이용하여 주성분들의 상대적인 중요도를 보여줍니다.
- 70 ~ 80%를 넘는 PC 차원 선택합니다.
- seaborn 라이브러리로 데이터를 시각화하기