PCA(Principal Component Analysis)는 고차원 데이터를 저차원으로 축소하면서도 데이터의 중요한 정보(변동성)를 최대한 유지하려는 방법이다. 이를 통해 데이터의 차원 축소, 잡음 제거, 시각화 또는 데이터의 구조 분석을 할 수 있다. 데이터를 가장 큰 분산을 설명하는 방향(주성분)으로 변환하여, 차원이 축소된 저차원 공간에서 데이터의 핵심적인 패턴을 유지한다.
과정
데이터 중심화:
데이터의 평균을 중심화하지 않으면 공분산 행렬에 대한 분석이 왜곡될 수 있다. 평균을 중심화하지 않으면, 데이터의 분산이 실제로 원점을 기준으로 분석되지 않기 때문에, 주성분 분석에서 부정확한 결과를 초래할 수 있다. 따라서 데이터 중심화는 데이터의 분산을 정확히 분석하여 올바른 주성분을 찾기 위해 필수적이다.
공분산 행렬 계산
공분산 행렬을 사용하는 이유
데이터의 변동성 분석 - 공분산 행렬의 대각선 요소는 각 변수의 분산을 나타내고, 비대각선 요소는 두 변수 간의 공분산을 나타낸다.
pca의 목적은 데이터의 가장 큰 변동성(분산)이 있는 방향을 찾는 것이 때문에, 공분산 행렬을 분석하는 것이 주성분을 찾는 핵심이다.
고유값 분해
고유벡터: 행렬에 의해 변환되었을 때 방향이 변하지 않는 벡터
고유값: 그 변환에서 고유벡터의 크기 변화 비율
즉, 고유벡터는 변환의 "특별한 방향"을 나타내며, 고유값은 그 방향에서 벡터가 얼마나 늘어나거나 줄어드는지를 나타낸다.
공분산행렬을 고유값 분해하면 고유 벡터는 공분산 행렬이 설명하는 주된 방향, 즉 주성분 벡터를 나타낸다. 이때, 고유값은 그 방향으로의 분산 크기를 나타낸다.
추가적으로, 공분산 행렬은 대칭이고, 양의 정준부호 행렬이기 때문에, 고유값 분해를 통해 얻은 고유벡터들은 서로 직교한다. 따라서, 고유값 분해를 통해 얻은 고유벡터 행렬은 orthnormal matrix이다.
주성분 선택
고유값을 내림차순으로 정렬하여, 가장 큰 𝑘개의 고유값에 해당하는 고유벡터를 선택한다.
이 고유벡터들은 데이터의 가장 큰 분산을 설명하는 주성분(Principal Components)을 나타낸다. 선택된 주성분 벡터들은 서로 직교하며, 각각 데이터의 다른 분산 방향을 설명한다.
각 고유벡터(주성분 벡터)는 원본 데이터의 변수들의 선형 결합으로 나타낼 수 있으며, 다음과 같이 표현된다:
이러한 주성분 벡터를 통해, 원본 데이터는 주성분 벡터들에 의해 재표현되며, 이는 데이터의 변동성이 가장 큰 방향을 기준으로 데이터를 해석하는 데 도움을 준다. 여기서 𝑘는 최종적으로 남길 차원의 수를 나타낸다.
데이터 투영
고유벡터로 구성된 V_k가 orthonormal matrix라고 하자.
일반적으로 orthonormal basis가 주어졌을 때 정사영 벡터를 구하는 공식은 다음과 같다.
svd와의 관계
PCA는 공분산 행렬의 고유값 분해를 사용하지만, 실제로는 SVD를 통해 더 효율적으로 계산할 수 있다. ( 추후 근거 추가할 것)
데이터 행렬 $𝑋_{centered}$에 대해 SVD를 적용하면: $𝑋_{centered} = 𝑈Σ𝑉^𝑇$