주성분 분석(Principal Component Analysis, PCA)

cuckoo·2022년 10월 25일
0

선형대수

목록 보기
10/11

PCA의 원시적 의미

종합점수를 계산하는 방법

  • 100명 학새들의 국어와 영어 시험 성적에 대해 종합점수를 잘 내려면?
  • 벡터의 내적(정사영)을 통해 표현
  • 데이터 벡터를 어떤 벡터에 내적(혹은 정사영)하는 것이 최적의 결과를 얻어 주는가?
  • 기왕 정사영 할 벡터(혹은 축)를 찾는데, 데이터 분포의 중심을 중심축으로 하는 벡터를 찾는제 좋지 않을까?

⇒ ‘데이터의 구조’를 기술하는 ‘공분산 행렬’로 부터 해답을 얻자!

PCA의 의미

원래 데이터의 정보(분산)를 최대한 보존하는 새로운 축을 찾고, 그 축에 데이터를 사영(Linear Projection)하여 고차원의 데이터를 저차원으로 변환하는 기법입니다.

  • 주성분(PC)은 기존 데이터의 분산을 최대한 보존하도록 데이터를 투영하는 축입니다.
    • PC의 단위벡터는 데이터의 공분산 행렬에 대한 고유벡터입니다.
    • 고유벡터에 투영한 데이터의 분산이 고윳값입니다.
  • Feature Extraction 방식 중 하나로, 기존 변수의 선형결합으로 새로운 변수(PC)를 생성합니다.

PCA 과정

  1. 데이터셋 불러오기
  2. 데이터 표준화하기
    • 표준화린 각 열에 대해 평균을 빼고 표준편차로 나누어서 데이터를 평균 0, 표준편차 1로 scaling 하는 것입니다.
  3. 표준화한 데이터셋의 공분산행렬 구하기
    4.공분산행렬의 Eigenstuff 구하기
    • 공분산행렬의 고유벡터(eigencvector)와 고윳값(eigenvalue)는 쌍을 이루며, 그 수는 feature수와 동일합니다.
  4. 데이터를 고유벡터(eigenvector)에 투영(projection)하기
  5. 투영한 데이터(Projected Data)에서 PCA 차원 정하기
    • Scree Plots을 활용하여 explained variance(eigenvector로 투영했을 때의 분산=eigenvalue) 혹은 explained variance ratio를 이용하여 주성분들의 상대적인 중요도를 보여줍니다.
    • 70 ~ 80%를 넘는 PC 차원 선택합니다.
  6. seaborn 라이브러리로 데이터를 시각화하기
profile
ENTJ 데이터 분석가 준비중입니다:)

0개의 댓글