PCA, Principal Component Analysis, 주성분 분석
고차원의 원본 데이터를 저차원의 부분 공간으로 투영하여 데이터 축소
- 예시: 10차원의 데이터를 2차원의 부분 공간으로 투영하여 데이터 축소
PCA는 원본 데이터가 가지는 데이터 변동성을 가장 중요한 정보로 간주하고 이 변동성에 기반한 원본 데이터 투영으로 차원 축소
원본 데이터 변동성이 가장 큰 방향으로 순차적으로 축을 생성하고, 그 축에 데이터를 투영
두 번째로 변동성이 큰 축은 첫 번째 축에 직각이 되는 벡터인 직교 벡터임
-> 세 번째 축은 두 번째 축에 직각이 되는 벡터인 직교 벡터
-> ...
원본 데이터의 Feature 개수에 비해 매우 작은 주성분으로 원본 데이터의 총 변동성을 대부분 설명할 수 있는 분석법!
PCA 순서
1. 원본 데이터의 공분산 행렬 추출
2. 공분산 행렬을 고유벡터와 고윳값 분해
3. 원본 데이터를 고유 벡터로 선형 변환
4. PCA 변환 값 도출
- 고유벡터
-> PCA의 주성분 벡터로서 입력 데이터의 분산이 가장 큰 방향을 나타냄- 고윳값
-> 고유벡터의 크기를 나타내며 입력 데이터의 분산- 공분산
-> 두 변수간의 변동을 의미함
이면, 가 증가할 때, 도 증가함- 공분산 행렬
-> 여러 변수와 관련된 공분산을 포함하는 정방형 행렬이며 대칭 행렬
선형 변환
- 특정 벡터에 행렬 A를 곱해 새로운 벡터로 변환하는 것을 의미
- 특정 벡터를 하나의 공간에서 다른 공간으로 투영하는 개념
-> 이때 이 행렬을 공간으로 가정하는 것!
고유벡터
- 행렬 를 곱하더라도 방향이 변하지 않고, 그 크기만 변하는 벡터를 지칭
- 즉 (는 행렬, 는 고유벡터, 는 스칼라)
- 고유벡터는 여러 개 존재하고, 정방 행렬은 최대 그 차원 수만큼의 고유벡터를 가질 수 있음
- 고유벡터는 행렬이 작용하는 힘의 방향과 관계가 있어서 행렬을 분해하는 데 사용
: 공분산 행렬
: 고유벡터
: 고윳값 정방 행렬
공분산 행렬이 다음과 같이 분해됨
은 가장 분산이 큰 방향을 가진 고유벡터
는 e_1에 수직이면서 다음으로 가장 분산이 큰 방향을 가진 고유벡터