
32번 PCA 1D 의 일반화. 첫 번째 축만이 아니라 상위 k개 의 주성분까지 뽑습니다. 2D 시각화(k=2), 3D 시각화, 압축 (k < D) 등 실전 활용의 표준.
Xc = X - mean(X, axis=0).C = Xc.T @ Xc / N (shape (D, D), 대칭).np.linalg.eigh(C) — 오름차순 정렬 eigenvalue와 eigenvector.k 개 고유벡터 선택 (eigenvalue 큰 순). 역순으로 반환.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] 이 분산이 가장 큰 방향 (내림차순).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape | pcs (k, D), z (N, k) |
| 2 | 정규직교 | pcs @ pcs.T == I |
| 3 | 투영 분산 내림차순 | var(z[:, 0]) ≥ var(z[:, 1]) ≥ ... |
| 4 | k=1 과 32번 일치 (부호 무시) | 같은 축 |
| 5 | 재투영 오차 | k=D 이면 완벽 복원 가능 |
코드를 작성하고 Run 을 눌러보세요.