관리 메뉴

Bull

[ML] PCA (Principal Component Analysis) 원리 본문

Artificial Intelligence/Machine Learning

[ML] PCA (Principal Component Analysis) 원리

Bull_ 2024. 7. 29. 15:27

PCA (Principal Component Analysis)

PCA(Principal Component Analysis, 주성분 분석)는 고차원 데이터를 저차원으로 변환하면서 데이터의 주요 변동성을 최대한 보존하는 선형 변환 기법입니다. PCA는 데이터의 분산을 가장 잘 설명하는 새로운 축(주성분)을 찾아내어 데이터를 이 새로운 축으로 투영함으로써 차원을 축소하거나 데이터의 구조를 이해하는 데 사용됩니다. 고차원 데이터를 저차원으로 압축하여 저장 공간을 절약하기 위해 데이터 압축을 하거나 데이터의 주요 변동성을 유지하면서 노이즈를 줄이고 시각화, 주요 특성 추출을 위해 사용합니다.

PCA 수행 예제

원본 데이터

학생 수학 과학 영어
A 80 90 85
B 85 85 80
C 78 88 82
D 92 87 90

1. 평균 중심화

각 과목의 평균을 계산합니다.

  • 수학: (80 + 85 + 78 + 92) / 4 = 83.75
  • 과학: (90 + 85 + 88 + 87) / 4 = 87.5
  • 영어: (85 + 80 + 82 + 90) / 4 = 84.25

각 점수에서 평균을 뺍니다.
$$
X_{\text{centered}} = X - \mu
$$

$$
X_{\text{centered}} =
\begin{bmatrix}
80 - 83.75 & 90 - 87.5 & 85 - 84.25\\
85 - 83.75 & 85 - 87.5 & 80 - 84.25\\
78 - 83.75 & 88 - 87.5 & 82 - 84.25\\
92 - 83.75 & 87 - 87.5 & 90 - 84.25
\end{bmatrix}
$$

$$
X_{\text{centered}} = \begin{bmatrix}
-3.75 & 2.5 & 0.75 \\
1.25 & -2.5 & -4.25 \\
-5.75 & 0.5 & -2.25 \\
8.25 & -0.5 & 5.75
\end{bmatrix}
$$

  • 중심화된 데이터에서 계산된 주성분은 데이터의 실제 변동성을 반영합니다.
  • 중심화되지 않은 데이터에서 계산된 주성분은 데이터의 중심 위치에 따라 왜곡될 수 있습니다.
  • 공분산 행렬은 각 변수의 분산과 변수 간의 상관관계를 나타내므로, 중심화된 데이터에서 계산해야 정확한 값을 얻을 수 있습니다. 중심화되지 않은 데이터로 계산된 공분산 행렬은 올바른 고유값과 고유벡터를 반영하지 않습니다.
  • 데이터가 중심화되지 않으면, 각 변수(특성)의 평균값이 0이 아니기 때문에 공분산 행렬이 제대로 계산되지 않습니다.

2. 공분산 행렬 계산

$$
C = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}}
$$

계산 결과는 다음과 같습니다.
$$
C \approx \begin{bmatrix}
37.5833 & -2.5833 & 15.0833 \\
-2.5833 & 4.3333 & -0.5833 \\
15.0833 & -0.5833 & 19.5833
\end{bmatrix}
$$

3. 고유값 분해 및 고유벡터 선택

공분산 행렬 ( C )에 대해 고유값 분해를 수행하여 고유값과 고유벡터를 구합니다.
고유값
$$
\lambda = [45.0, 15.0, 1.5]
$$
고유벡터
$$
V = \begin{bmatrix}
0.6 & 0.7 & 0.4 \\
0.3 & -0.1 & -0.9 \\
0.7 & -0.7 & 0.2
\end{bmatrix}
$$
상위 2개의 고유벡터를 선택합니다.
$$
W = \begin{bmatrix}
0.6 & 0.7 \\
0.3 & -0.1 \\
0.7 & -0.7
\end{bmatrix}
$$

4. 차원 축소

고유벡터 (W)를 사용하여 차원 축소된 데이터를 얻습니다.
$$
Z = X_{\text{centered}} W
$$

5. 데이터 재구성

차원 축소된 데이터를 원래 차원으로 재구성합니다.
$$
X_{\text{reconstructed, centered}} = Z W^T
$$

중심화 해제
$$
X_{\text{reconstructed}} = X_{\text{reconstructed, centered}} + \mu
$$

참고 자료

https://ddongwon.tistory.com/114

 

PCA (Principal Component Analysis) : 주성분 분석 이란?

1. PCA (주성분 분석) PCA는 대표적인 dimensionality reduction (차원 축소)에 쓰이는 기법으로, 머신러닝, 데이터마이닝, 통계 분석, 노이즈 제거 등 다양한 분야에서 널리 쓰이는 녀석이다. 쉽게 말해 PC

ddongwon.tistory.com

https://www.kaggle.com/code/xvivancos/image-compression-using-pca/report

 

Image compression using PCA

Explore and run machine learning code with Kaggle Notebooks | Using data from [Private Datasource]

www.kaggle.com