← 문제 목록/PCA — 1차원 주성분

PCA — 1차원 주성분

차원축소 · easy

preview

PCA — 1차원 주성분

주성분분석(PCA) 은 데이터의 분산이 가장 큰 방향을 찾아 고차원 데이터를 저차원으로 압축합니다. 시각화·노이즈 제거·특성 감소의 기본 도구.

수학

  1. 데이터 중심화: Xc=XXˉX_c = X - \bar{X}
  2. 공분산 행렬: Σ=1NXcXc\Sigma = \frac{1}{N} X_c^\top X_c (shape (D, D))
  3. Σ\Sigma 의 고유값 분해 → 가장 큰 고유값에 대응하는 고유벡터 v1\mathbf{v}_1첫 번째 주성분.
  4. 1D 투영: zi=v1(xixˉ)z_i = \mathbf{v}_1^\top (x_i - \bar{x})

v1\mathbf{v}_1단위 벡터. 투영 결과 zz 는 분산이 최대.

부호 모호성

v\mathbf{v}v-\mathbf{v} 는 모두 유효한 해 — 방향은 같은 축을 가리키니까요. 채점은 부호 무관하게 허용합니다.

과제

함수 pca_1d(X) 를 완성하세요.

  • 반환: (pc, z)pc shape (D,) 단위벡터, z shape (N,) 투영값.
  • 힌트: np.linalg.eigh 는 오름차순으로 고유쌍 반환 → 마지막 열이 가장 큰 방향.

테스트 케이스

#이름검증
1pc 단위벡터‖pc‖ ≈ 1
2z shape(N,)
3명확한 주축 데이터회전된 타원형 데이터의 PC 방향 정확 (부호 무관)
4투영의 평균 ≈ 0중심화 후 투영이므로
5투영 분산 = 가장 큰 eigenvalue정확 일치
Loading...

코드를 작성하고 Run 을 눌러보세요.