차원 축소 (Dimension Reduction) 개요
차원 축소는 많은 피처로 구성된 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것이다
- 데이터 세트의 차원이 증가할수록 데이터 포인트 간의 거리가 기하급수적으로 멀어지고 Sparse 한 구조를 가지게 되면서 학습한 모델의 예측 신뢰도가 떨어진다.
- 이를 해결하기 위해 차원 축소를 하는데, 데이터 크기가 줄어 필요한 처리 능력도 줄어든다.
**피처 선택 (Feature Selection)**과 **피처 추출 (Feature Extration)**으로 나뉜다.
- 피처 선택은 특정 피처에 종속성이 강한 불필요한 피처는 아예 제거하고, 데이터의 특징을 잘 나타내는 주요 피처만 선택하는 방법이다.
- 피처 추출은 기존 피처를 저차원의 중요 피처로 압축해서 추출하는 것이다. 이렇게 추출된 중요 특성은 기존의 피처가 압축된 것이므로 기존의 피처와는 완전히 다른 값이 된다.
- 함축적인 특성 추출은 기존 피처가 전혀 인지하기 어려웠던 잠재적인 요소 (Latent Facotr)를 추출한다.
PCA (Principal Component Analysis)
가장 대표적인 차원 축소 기법으로, 여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분 (Principal Component)를 추출해 차원을 축하는 기법이다.
- 기존 데이터의 정보 유실이 최소화되는 것이 중요하기 때문에, 가장 높은 분산을 가진 데이터의 축을 찾아서, 그 축으로 차원을 축소하는데, 이것이 PCA의 주 성분이 된다.
- 분산이 데이터의 특성을 가장 잘 나타내는 것으로 간주한다.
- 가장 큰 데이터 변동성을 기반으로 첫 번째 벡터 축을 생성하고, 두 번째 축은 이 벡터 축에 직각이 는 벡터를 축으로 한다. 생성된 축에 데이터를 투용하면 벡터 축의 개수만큼의 차원으로 원본 데이터가 축소된다.
- PCA는 원본에 비해 작은 주성분으로 원본 데이터의 총 변동성을 설명 할 수 있는 분석법이다.
선형대수 관점에서의 해석
- 입력 데이터의 공분산 행렬 (Covariance Matrix)를 공유값 분해하고, 이렇게 구한 고유 벡터 (주성분 벡터)에 입력 데이터를 선형 변환하는 것이다.
- 고윳값 (eigenvalue)는 이 고유 벡터의 크기를 나타내며, 동시에 입력 데이터의 분산을 나타낸다
- 선형 변환이란 특정 벡터에 행렬을 곱해 새로운 벡터로 변환하는 것을 말한다. 이를 특정 벡터를 하나의 공간에서 다른 공간으로 투영하는 개념으로도 볼 수 있으며, 이 경우 이 행렬을 바로 공간으로 가정 하는 것이다.
- 공분산은 두변수 간의 변동을 의미한다. 변수 X, Y가 있고, $Cov(X,Y)>0$ 이면, X가 증가함에 따라 Y도 증가한다는 의미이다.
- 공분산 행렬은 여러 변수와 관련된 공분산을 포함하는 정방형 행렬이다.
- 고유 벡터는 행렬 A를 곱하더라도 방향이 변하지 않고, 크기만 변하는 벡터를 지칭한다.
입력 데이터의 공분산 행렬이 고유 벡터와 고유값으로 분해될 수 있으며, 이렇게 분해된 고유 벡터를 이용해 입력 데이터를 선형 변환하는 방식이 PCA라는 것이다.