설문조사 문항이 50개인데, 응답 패턴을 보니 사실상 3~4개의 큰 흐름으로 설명됩니다.
경제 지표가 20개인데, GDP와 실업률 두 축만으로 대부분의 변동을 설명할 수 있습니다.
이런 상황에서 주성분 분석(PCA)이 빛을 발합니다.
PCA는 고차원 데이터에서 분산이 가장 큰 방향을 찾아내고,
그 방향으로 데이터를 투영하여 차원을 줄입니다.
시각화, 노이즈 제거, 전처리 등 다양한 곳에 활용됩니다.
비유: 3D 물체의 그림자를 벽에 비추는 것과 같습니다.
어떤 각도로 빛을 비추느냐에 따라 그림자의 모양이 달라집니다.
PCA는 가장 많은 정보(분산)를 보존하는 각도를 자동으로 찾아줍니다.
첫 번째 그림자가 PC1, 두 번째 직교 그림자가 PC2입니다.
PCA의 핵심 아이디어
쉽게 말하면 -- 그림자로 이해하기:
3D 물체에 손전등을 비추면 벽에 2D 그림자가 생깁니다.
어떤 각도로 비추느냐에 따라 그림자의 모양이 달라지는데,
어떤 각도에서는 물체의 특징이 잘 드러나고, 어떤 각도에서는 납작한 선으로만 보입니다.
PCA는 가장 정보를 많이 담는 각도를 자동으로 찾아,
고차원 데이터의 "최적의 그림자"를 만들어줍니다.
이 그림자가 바로 주성분(PC)입니다.
PCA는 데이터의 공분산 행렬에서 고유벡터(eigenvector)를 구합니다.
고유벡터가 주성분의 방향이고, 대응하는 고유값(eigenvalue)이 그 방향의 분산량입니다.
공분산 행렬: C = (1/n) * X^T * X (표준화 후)
고유값 분해: C * v = lambda * v
PC1: 가장 큰 고유값의 고유벡터 방향
설명된 분산 비율 = lambda_k / sum(lambda)
주성분은 "데이터가 가장 많이 퍼진 방향"입니다:
교실에 학생들이 서 있다고 상상해보세요. PC1은 학생들이 가장 넓게 퍼져 있는 방향입니다.
만약 학생들이 좌우로 길게 서 있다면 PC1은 가로 방향이 됩니다.
PC2는 PC1에 수직이면서 그 다음으로 퍼진 방향입니다.
설명 분산은 "이 방향이 전체 정보의 몇 %를 담고 있는가"를 뜻합니다.
PC1이 80%를 설명한다면, 그 한 방향만으로도 데이터의 대부분을 파악할 수 있다는 의미입니다.
PCA가 하는 일
데이터를 표준화 (평균 0, 분산 1)
분산이 최대인 방향(PC1)을 찾음
PC1에 직교하면서 분산이 최대인 방향(PC2)을 찾음
원하는 만큼 반복
데이터를 새 축(주성분)으로 변환
PCA가 아닌 것
변수 선택(feature selection)이 아님 -- 새로운 축을 만드는 것
비선형 관계는 잡지 못함
해석이 항상 쉽지는 않음
클래스 정보를 사용하지 않음 (비지도)
실습 1: 2D에서 1D로 -- 주성분 축 회전
2D 산점도에서 PC1 축(빨간 선)을 마우스로 회전시킬 수 있습니다.
점들이 축에 투영될 때 설명된 분산이 어떻게 변하는지 관찰하세요.
마우스를 놓으면 최적 PC1 위치로 자동 이동합니다.