PCA(Principal Component Analysis)는 데이터를 더 적은 차원으로 압축하면서도, 원래 데이터의 중요한 정보를 최대한 유지하려는 차원 축소 기법이다. 핵심은 단순히 컬럼 개수를 줄이는 것이 아니라, 데이터가 가장 많이 퍼져 있는 방향을 새로운 축으로 다시 표현하는 것이다.
PCA를 왜 사용하는가
머신러닝에서는 feature 수가 많아질수록 문제가 생길 수 있다.
- 계산량 증가
- feature 간 중복 정보 증가
- 시각화 어려움
- overfitting 가능성 증가
예를 들어 키와 몸무게처럼 거의 비슷하게 움직이는 feature 두 개가 있다면, 두 feature를 모두 사용하는 대신 “사람의 체격” 같은 하나의 축으로 줄여서 표현할 수도 있다.
PCA는 이런 식으로:
원래 feature 공간
→ 정보 손실을 최소화하면서
→ 더 적은 축으로 표현
하는 과정이다.
PCA는 평균 중심화부터 시작한다
PCA에서 가장 먼저 하는 작업은 평균 중심화(mean centering)다.
즉, 각 feature에서 평균을 빼준다.
x_new = x - mean(x)
왜 이렇게 하냐면, PCA는 데이터의 “흩어진 방향”을 찾는 알고리즘이기 때문이다.
데이터 중심이 제각각이면 실제 분산 방향을 제대로 보기 어렵다.
자료에서도 PCA 전에 각 feature를 평균 기준으로 shift해서 원점 중심으로 이동시키는 과정이 먼저 필요하다고 설명된다.
공분산 행렬이 왜 필요한가
평균 중심화를 한 뒤에는 공분산 행렬(covariance matrix)을 계산한다.
공분산 행렬은 변수들이 함께 어떻게 움직이는지를 담고 있는 행렬이다.
예를 들어:
\begin{bmatrix}Var(X_1) & Cov(X_1, X_2) \\Cov(X_2, X_1) & Var(X_2)\end{bmatrix}
- 대각선 → 각 변수의 분산
- 비대각선 → 변수 간 공분산
공분산이 크다는 것은 두 변수 방향이 비슷하게 움직인다는 뜻이다.
자료에서도 공분산 행렬은 변수와 변수 사이의 상관 구조를 표현하기 위한 행렬이라고 설명된다.
PCA는 “분산이 큰 방향”을 찾는다
PCA의 핵심은 이것이다.
데이터가 가장 많이 퍼진 방향 찾기
왜냐하면 데이터가 많이 퍼져 있다는 것은 그 방향이 데이터를 설명하는 정보량이 크다는 의미이기 때문이다.
예를 들어 데이터가 대각선 방향으로 길게 퍼져 있다면:
- x축, y축 기준보다
- 대각선 방향 기준이
데이터를 더 잘 설명할 수 있다.
자료에서도 PCA는 기존 좌표계 대신 새로운 basis를 도입해서 데이터를 바라보는 과정으로 설명된다.
고유값과 고유벡터가 등장하는 이유
공분산 행렬에서 분산이 가장 큰 방향을 찾기 위해 고유값 분해(eigendecomposition)를 사용한다.
Ax = \lambda x
여기서:
- x → 고유벡터
- \lambda → 고유값
PCA에서는:
- 고유벡터 → 새로운 축 방향
- 고유값 → 해당 방향의 분산 크기
를 의미한다.
즉:
고유값이 큰 고유벡터
→ 데이터가 많이 퍼진 방향
→ 중요한 주성분
이 된다.
자료에서도 PCA는 공분산 행렬의 고유값과 고유벡터를 구한 뒤, 큰 고유값에 해당하는 축을 선택하는 과정으로 설명된다.
PCA를 basis 변경으로 이해하기
PCA를 가장 직관적으로 이해하는 방법은:
basis를 바꾸는 과정
으로 보는 것이다.
기존에는:
x축, y축 기준
으로 데이터를 표현했다면,
PCA 이후에는:
데이터가 실제로 많이 퍼진 방향 기준
으로 데이터를 다시 표현한다.
즉, feature를 삭제하는 느낌보다는:
기존 좌표계
→ 데이터에 더 적합한 좌표계
로 바꾸는 과정에 가깝다.
자료에서도 PCA는 새로운 basis system을 도입해 데이터를 projection하는 관점으로 설명된다.
PCA 전체 흐름
원본 데이터
→ 평균 중심화
→ 공분산 행렬 계산
→ 고유값 / 고유벡터 계산
→ 큰 고유값의 고유벡터 선택
→ 새로운 축으로 데이터 변환
실전에서 PCA를 쓸 때 주의할 점
1. 스케일 차이가 크면 결과가 왜곡될 수 있다
키(cm)와 연봉(원)을 같이 PCA하면 연봉 feature가 분산을 거의 지배할 수 있다.
그래서 보통 PCA 전에는 StandardScaler 같은 정규화를 먼저 한다.
2. PCA는 feature 의미가 흐려질 수 있다
PCA 이후 feature는:
PC1, PC2 ...
같은 새로운 축으로 바뀐다.
즉, 기존 컬럼 의미가 직접적으로 유지되지 않을 수 있다.
3. 분산이 크다고 항상 중요한 건 아니다
PCA는 “분산이 큰 방향”을 중요하다고 가정한다.
하지만 실제 문제에서는 작은 분산 feature가 더 중요한 경우도 존재할 수 있다.
PCA는 공분산 행렬에서 분산이 가장 큰 방향을 고유벡터로 찾아, 데이터를 더 적은 차원에서 표현하는 차원 축소 기법이다.
'AI & Machine Learning > ML 수학' 카테고리의 다른 글
| Gradient, Jacobian, Hessian 정리 | 입력과 출력 차원에 따라 미분 결과가 달라지는 이유 (0) | 2026.06.02 |
|---|---|
| 고유값과 고유벡터 정리 | 행렬 변환 후에도 방향이 유지되는 벡터 (0) | 2026.06.02 |
| 선형 변환과 행렬 정리 | 행렬을 함수처럼 이해하는 방법 (0) | 2026.06.01 |
| 벡터 Norm과 Inner Product 정리 | 벡터 크기와 방향 유사도를 계산하는 방법 (0) | 2026.06.01 |
| Span, Basis, Dimension 정리 | 벡터 공간을 표현하는 최소 기준 (0) | 2026.06.01 |
