주성분 분석(PCA)은 상관관계가 있을 수 있는 변수들로 구성된 데이터셋을 더 적은 수의 상관관계가 없는 변수들, 즉 주성분이라고 불리는 변수들로 변환하는 선형 차원 축소 기법입니다. 이 방법은 데이터에서 분산이 최대인 방향들을 식별하고, 원래 관측치들을 이러한 방향들에 투영하여 가능한 한 많은 정보를 유지하는 저차원 표현을 생성합니다. PCA는 Machine learning 분야에서 탐색적 데이터 분석, 특징 공학, 전처리를 위해 가장 널리 사용되는 도구 중 하나이며, 유전학에서 금융에 이르기까지 다양한 분야의 기초 개념으로도 활용됩니다.
이 기법은 1901년 칼 피어슨에 의해 처음 소개되었고, 이후 1933년 해럴드 호텔링에 의해 독립적으로 발전되었습니다. 이는 수학적으로 중심화된 데이터 행렬에 특이값 분해(SVD)를 수행하는 것과 동일하며, 이로 인해 계산 효율성이 높고 수치적으로 안정적입니다. PCA는 레이블이 지정된 데이터를 요구하지 않으므로 비지도 학습 방법이며, 분산이 큰 방향이 가장 유용한 정보를 담고 있다는 가정에 기반합니다. 이 가정은 많은 실제 데이터셋에서 유효합니다.
수학적 정의
데이터 행렬 X가 n개의 관측치와 p개의 변수를 가질 때, PCA는 먼저 각 변수의 평균을 0으로 중심화합니다. 그런 다음 중심화된 데이터의 공분산 행렬을 계산하고, 이 행렬의 고유벡터와 고유값을 구합니다. 고유값이 큰 순서대로 정렬된 고유벡터들이 주성분 축을 정의하며, 각 고유값은 해당 주성분이 설명하는 분산의 양을 나타냅니다. 첫 번째 주성분은 가장 큰 분산을 포착하고, 두 번째 주성분은 첫 번째 주성분과 직교하면서 그다음으로 큰 분산을 포착하는 식으로 진행됩니다.
데이터를 처음 k개의 주성분에 투영하면 k차원 표현을 얻을 수 있습니다. 처음 k개의 주성분이 설명하는 전체 분산의 비율은 이들 고유값의 합을 전체 고유값의 합으로 나눈 값입니다. 이 비율은 주성분의 개수 k를 선택하는 데 중요한 기준이 되며, 일반적으로 스크리 플롯(scree plot)이나 분산 설명 비율이 95%와 같은 임계값에 도달할 때까지의 개수를 선택합니다.
기계 학습에서의 응용
Machine learning 파이프라인에서 PCA는 모델을 훈련하기 전에 특징의 수를 줄이는 데 자주 사용됩니다. 고차원 데이터는 차원의 저주(curse of dimensionality)로 인해 과적합 위험이 증가하고 계산 비용이 높아질 수 있습니다. PCA를 통해 저차원 부분공간으로 데이터를 투영하면 모델의 일반화 성능을 향상시키고 훈련 속도를 높일 수 있습니다. 특히 이미지 처리 분야에서 원시 픽셀 강도는 서로 높은 상관관계를 가지므로, PCA는 이러한 중복을 제거하는 데 효과적입니다. 유전체학에서도 수천 개의 유전자 발현 수치를 동시에 측정한 데이터를 요약하는 데 널리 사용됩니다.
PCA는 또한 시각화 도구로도 활용됩니다. 데이터를 처음 두세 개의 주성분에 투영하면 고차원 데이터를 2차원 또는 3차원 공간에 나타낼 수 있어, 군집, 이상치, 또는 기타 구조를 발견하는 데 유용합니다. 이는 Neural network 분류기와 같은 고급 방법을 적용하기 전에 탐색적 분석 단계에서 자주 수행됩니다.
다른 기법과의 관계
PCA는 요인 분석(factor analysis)과 밀접한 관련이 있지만, 두 기법의 목적은 다릅니다. PCA는 데이터의 분산을 설명하는 데 초점을 맞추는 반면, 요인 분석은 잠재 변수를 통해 공분산 구조를 모델링합니다. 또한 PCA는 유클리드 거리를 비유사도 측도로 사용할 때 다차원 척도법(MDS)의 특수한 경우로 간주됩니다. Deep learning의 맥락에서 PCA는 Neural network 입력의 전처리 단계로 사용되기도 하지만, 현대의 방법들은 종종 학습된 표현에 의존합니다.
커널 PCA는 커널 함수를 적용하여 비선형 다양체로 PCA를 확장한 기법으로, 비선형 구조를 포착할 수 있습니다. 희소 PCA와 강건 PCA는 각각 희소성을 부과하거나 이상치에 강건한 변형 기법입니다. 이러한 확장 기법들은 신호 처리와 컴퓨터 비전 분야에서 유용하게 사용됩니다.
한계 및 고려 사항
PCA는 선형성을 가정하므로 변수 간의 비선형 관계를 포착하지 못합니다. 데이터가 비선형 다양체 위에 놓여 있는 경우 PCA는 잘못된 결과를 초래할 수 있으며, 이 경우 t-SNE나 UMAP과 같은 방법이 선호됩니다. 또한 PCA는 변수의 스케일에 민감하므로, 변수 간 단위가 크게 다른 경우 표준화 없이 적용하면 분산이 큰 변수가 주성분을 지배하게 됩니다. 따라서 PCA를 적용하기 전에 각 변수를 단위 분산으로 표준화하는 것이 일반적인 관행입니다.
주성분의 해석 가능성도 한계로 지적됩니다. 각 주성분은 원래 변수들의 선형 결합이므로, 실제 의미를 부여하기 어려운 경우가 많습니다. 또한 PCA는 비지도 학습 방법이므로 클래스 레이블을 고려하지 않습니다. 따라서 분류에 중요한 정보가 분산이 작은 방향에 포함되어 있다면, PCA는 이러한 정보를 버릴 수 있습니다.
역사적 및 현대적 맥락
PCA는 기상학(경험적 직교 함수로 불림)과 생태학을 포함한 여러 분야에서 독립적으로 재발견되었습니다. 수학적 기초는 20세기 초에 마련되었으며, 1950년대 컴퓨터의 등장으로 대규모 데이터에 실제로 적용할 수 있게 되었습니다. 오늘날 PCA는 데이터 과학자들의 표준 도구로 자리 잡았으며, scikit-learn, R, MATLAB을 포함한 모든 주요 통계 및 Machine learning 라이브러리에 구현되어 있습니다.
대규모 Artificial intelligence 시대에도 PCA는 여전히 Deep learning 모델의 화이트닝(whitening) 작업이나 Large language model 파이프라인에서 임베딩을 압축하는 데 사용됩니다. 단순성, 해석 가능성, 계산 효율성 덕분에 더 복잡한 비선형 방법이 등장했음에도 불구하고 PCA는 여전히 관련성을 유지하고 있습니다.