본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 23. 15:24

PCA 밑바닥부터 구현하기: 데이터 압축 및 신호 유지

요약

데이터 차원 축소 기법인 PCA(주성분 분석)의 원리와 구현 과정을 설명합니다. 데이터의 분산이 가장 큰 방향을 찾아 정보를 유지하며 차원을 줄이는 핵심 메커니즘을 다룹니다.

핵심 포인트

  • 데이터의 분산이 최대인 주성분 축을 찾아 차원 축소 수행
  • 중심화, 공분산 행렬, 고유값/고유벡터 계산을 통한 구현 과정
  • 시각화, 데이터 압축, 노이즈 제거 및 학습 속도 향상에 활용
  • PCA는 데이터의 선형 구조만을 포착한다는 특징이 있음

100개의 특징(features)이 있는데 시각화가 어렵거나 학습 속도가 느린가요? PCA는 대부분의 정보를 담고 있는 몇 가지 방향을 찾아내고 나머지는 버립니다. 그리고 이를 2D 산점도(scatter)를 통해 직접 확인할 수 있습니다. 여기 브라우저에서 실제로 계산되는 PCA가 있습니다.

📉 주성분 축 확인하기 (상관관계 슬라이더를 드래그하세요): https://dev48v.infy.uk/ml/day14-pca.html

핵심 아이디어: 분산이 큰 방향으로 회전하기

PCA는 데이터가 가장 많이 퍼져 있는 방향을 가리키는 새로운 축인 주성분 (principal components) 을 찾아냅니다. PC1은 가장 긴 확산 방향이며, PC2는 그 다음(PC1에 수직인 방향)이며, 이런 식으로 이어집니다. 상위 몇 개만 유지하면 최소한의 손실로 데이터를 압축할 수 있습니다.

실제 계산 방식

  1. 데이터를 중심화 (Center) 합니다 (평균을 뺍니다).
  2. 공분산 행렬 (covariance matrix) 을 구축합니다 (특징들이 함께 어떻게 변하는지 나타냄).
  3. 행렬의 고유벡터 (eigenvectors) (성분 방향)와 고유값 (eigenvalues) (각 성분이 보유한 분산의 양)을 찾습니다.
  4. 고유값 순으로 정렬하여 상위 k개를 선택하고, 그 위로 투영 (project) 합니다.

데모에서는 데이터 구름을 관통하는 PC1/PC2를 그리고 "설명된 분산 (variance explained)" 백분율을 보여줍니다. PC1으로 축소했을 때 얼마나 많은 정보가 살아남는지 확인해 보세요.

언제 사용해야 할까

시각화 (고차원 → 2D), 압축, 노이즈 제거 (denoising), 학습 속도 향상. 먼저 특징들의 스케일을 조정(Scale)하세요. PCA는 오직 선형 (linear) 구조만을 포착한다는 점을 기억해야 합니다.

🔨 페이지에서 직접 구현됨 (중심화 → 공분산 → 고유값/고유벡터 → 투영): https://dev48v.infy.uk/ml/day14-pca.html

MachineLearningFromZero의 일부입니다. 🌐 https://dev48v.infy.uk

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0