← 문제 목록/PCA — k개 주성분
문제 해설

PCA — k개 주성분

차원축소 · easy

preview

PCA — k개 주성분

32번 PCA 1D 의 일반화. 첫 번째 축만이 아니라 상위 k 의 주성분까지 뽑습니다. 2D 시각화(k=2), 3D 시각화, 압축 (k < D) 등 실전 활용의 표준.

알고리즘

  1. 중심화: Xc = X - mean(X, axis=0).
  2. 공분산 행렬: C = Xc.T @ Xc / N (shape (D, D), 대칭).
  3. np.linalg.eigh(C) — 오름차순 정렬 eigenvalue와 eigenvector.
  4. 마지막 k 고유벡터 선택 (eigenvalue 큰 순). 역순으로 반환.
  5. 투영: Z = Xc @ PCs.T (shape (N, k)).

과제

함수 pca_k(X, k) 를 완성하세요.

  • X shape (N, D).
  • 반환: (pcs, z)pcs shape (k, D) (각 행이 주성분), z shape (N, k).
  • pcs[0]분산이 가장 큰 방향 (내림차순).

테스트 케이스

#이름검증
1shapepcs (k, D), z (N, k)
2정규직교pcs @ pcs.T == I
3투영 분산 내림차순var(z[:, 0]) ≥ var(z[:, 1]) ≥ ...
4k=1 과 32번 일치 (부호 무시)같은 축
5재투영 오차k=D 이면 완벽 복원 가능
코드 작성
Loading...
실행 결과

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