jisung-02notes
← Archive

PCA (주성분분석)

PCA는 데이터 공분산 행렬의 고유분해로 분산을 가장 많이 보존하는 직교 축(주성분)을 찾아 차원을 축소하는 비지도 학습 기법이다.

jisung-02

Notion 소스 페이지에 본문이 아직 비어 있고 “비지도 학습”이라는 분류만 적혀 있다. 아래는 강의 표준 흐름(공분산 → 고유분해 → 주성분 파이프라인)을 채운 것으로, 소스가 채워지면 갱신 필요.

한 줄 요약

PCA는 데이터 공분산 행렬의 고유분해로 분산을 가장 많이 보존하는 직교 축(주성분)을 찾아 차원을 축소하는 비지도 학습 기법이다.

핵심 개념

  • 비지도 학습: 레이블 없이 데이터 구조만으로 학습. PCA는 라벨을 쓰지 않고 분산 구조만 본다.
  • 목표: 정보(분산) 손실을 최소화하면서 고차원 데이터를 저차원으로 투영. 주성분은 서로 직교하며, 분산이 큰 순서로 정렬된다.
  • 주성분(Principal Component): 데이터의 분산이 최대가 되는 방향. 첫 번째 주성분이 분산을 가장 많이 설명하고, 두 번째는 그에 직교하면서 남은 분산을 가장 많이 설명.
  • 활용: 차원 축소, 시각화(2~3차원), 노이즈 제거, 다중공선성 완화.

핵심 수식 / 예시 — 공분산 → 고유분해 → 주성분 파이프라인

  1. 표준화 / 평균 중심화. 각 특성에서 평균을 빼 평균 0으로 맞춘다(스케일 차이 크면 표준화): x~i=xi−xˉ\tilde{x}_i = x_i - \bar{x}

  2. 공분산 행렬 계산. 중심화된 n×dn \times d 데이터 행렬 XX에 대해: Σ=1n−1X⊤X(d×d 대칭 행렬)\Sigma = \frac{1}{n-1} X^\top X \quad (d \times d \text{ 대칭 행렬})

  3. 고유분해(eigendecomposition). 공분산 행렬의 고유값·고유벡터를 구한다: Σvi=λivi\Sigma v_i = \lambda_i v_i 고유벡터 viv_i = 주성분 방향, 고유값 λi\lambda_i = 그 방향이 설명하는 분산의 크기.

  4. 주성분 선택. 고유값을 내림차순 정렬해 큰 것부터 kk개의 고유벡터를 고른다. 설명 분산 비율(explained variance ratio): λi∑jλj\frac{\lambda_i}{\sum_j \lambda_j} 상위 kk개의 누적 비율이 충분(예: 90~95%)하도록 kk를 정한다.

  5. 투영. 선택한 고유벡터들로 만든 행렬 W=[v1,…,vk]W = [v_1, \dots, v_k] (d×kd \times k)에 데이터를 투영: Z=X~W(n×k)Z = \tilde{X} W \quad (n \times k) ZZ가 차원 축소된 새 좌표.