Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

주성분 분석(PCA)이란? 개념부터 작동 원리까지 완벽 정리

주성분 분석(Principal Component Analysis)의 정의

주성분 분석(PCA, Principal Component Analysis)은 머신러닝에서 차원 축소를 위해 사용되는 대표적인 비지도 학습 알고리즘입니다. 서로 상관관계가 있는 여러 특성(feature)들의 관측값을, 직교 데이터를 기반으로 선형적으로 상관관계가 없는 새로운 특성들의 집합으로 변환하는 통계적 기법입니다. 이렇게 변환된 새로운 특성들을 바로 주성분(Principal Components)이라고 부릅니다.

PCA의 주요 특징과 활용 분야

PCA는 탐색적 데이터 분석(EDA)과 예측 모델링에 널리 쓰이는 강력한 도구입니다. 데이터의 분산을 줄이면서도 핵심 구조를 유지함으로써, 주어진 데이터셋에서 의미 있는 패턴을 도출할 수 있습니다.

PCA는 각 속성(attribute)의 분산(variance)을 기준으로 작동합니다. 분산이 클수록 해당 속성이 클래스 간의 구분력을 더 잘 보여주기 때문에, 이를 활용해 차원을 효과적으로 줄일 수 있습니다.

PCA의 대표적인 실무 활용 사례는 다음과 같습니다.

  • 이미지 처리: 이미지 압축 및 노이즈 제거
  • 영화 추천 시스템: 사용자 선호도 데이터의 차원 축소
  • 통신 공학: 다양한 통신 채널에서의 전력 할당 최적화

또한 PCA는 특징 추출(feature extraction) 방법이기도 합니다. 즉, 중요한 변수는 남기고 덜 중요한 변수는 자동으로 제거하여 데이터의 본질적인 정보만 추려냅니다.

카후넨-뢰브(Karhunen-Loeve) 변환과의 관계

주성분 분석은 카후넨-뢰브(Karhunen-Loeve, K-L) 방법이라고도 불립니다. 이 방법은 원본 데이터를 가장 잘 표현할 수 있는 k개의 n차원 직교 벡터(k ≤ n)를 탐색합니다. 원본 데이터는 이렇게 찾아낸 훨씬 작은 공간에 사영(projection)되며, 그 결과 차원 축소가 이루어집니다.

핵심은 더 작은 크기의 대체 변수 집합을 만들어 속성들의 본질을 보존한다는 점입니다. 이후 원래 데이터를 이 작은 변수 집합 위에 사영시켜 분석을 진행하게 됩니다.

PCA의 4단계 작동 원리

1단계: 입력 데이터 정규화

각 속성이 비슷한 범위 안에 들어오도록 입력 데이터를 정규화(normalization)합니다. 이 단계는 값의 범위가 넓은 속성이 범위가 좁은 속성을 지배하지 않도록 보장하는 역할을 합니다.

2단계: 주성분(정규직교 벡터) 계산

정규화된 입력 데이터에 대한 기저(basis)가 되는 k개의 정규직교(orthonormal) 벡터를 평가합니다. 이 벡터들은 서로 수직 방향을 가리키는 단위 벡터들이며, 이것이 바로 주성분으로 정의됩니다. 입력 데이터는 이 주성분들의 선형 결합으로 표현됩니다.

3단계: 중요도 순으로 주성분 정렬

주성분들은 '중요도' 또는 강도의 내림차순으로 정렬됩니다. 주성분은 사실상 데이터를 위한 새로운 축의 집합 역할을 하며, 분산에 관한 중요한 정보를 제공합니다. 즉, 첫 번째 축은 데이터에서 가장 큰 분산을 나타내고, 두 번째 축은 그다음으로 큰 분산을 나타내는 식으로 배열됩니다.

4단계: 약한 성분 제거를 통한 차원 축소

주성분이 중요도 내림차순으로 정렬되어 있기 때문에, 분산이 낮은 약한 성분들을 제거함으로써 데이터의 크기를 줄일 수 있습니다. 가장 강한 주성분들만 사용해도 원본 데이터를 충분히 좋은 근사치로 재구성하는 것이 가능합니다.