////
Search

PCA & LDA

태그
전처리
목차
출처

1. 개요

크게 불필요한 변수를 제거하는 변수 선택, 변수 정보를 잘 담은 새로운 변수를 추출하는 변수추출이 있다. 변수추출 방법으로 차원축소를 하는 기법에는 PCA와 LDA가 있다. PCA입력데이터의 공분산 행렬을 고유값 분해하여 정보를 잘 담고 있는 고유벡터에 투영하여 차원 축소를 한다. LDA도 데이터의 정보를 잘 담은 방향으로 저차원 공간에 투영하여 축소하나, 분류 학습을 위해 개별 클래스를 분별할 수 있는 기준을 유지하며 차원 축소를 한다.

2. PCA(Principal Component Analysis)

여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분을 추출해 차원을 축소하는 기법이다. 데이터를 축에 사영했을 때 가장 큰 분산을 가지는 데이터의 축을 찾아 그 축으로 차원을 축소하는데, 이 축을 주성분이라고 한다. 큰 분산을 가지는 축은 그만큼 원래 데이터의 분포를 잘 설명할 수 있다는 것이고, 이는 정보의 손실을 최소화해준다.
입력 데이터의 공분산 행렬을 고유값 분해하여, 그때 구해진 고유벡터가 PCA의 주성분 벡터이고 입력데이터의 분산이 큰 방향을 알 수 있다. 고유값이 고유벡터의 크기와 입력 데이터의 분산을 나타낸다.
분류 예측 정확도는 PCA 변환 차원 개수에 따라 달라질 수밖에 없다.
주성분을 몇개로 할 것인지에 대한 명확한 기준은 없으며, elbow plot으로 정하기도 한다.
원본 데이터를 최대한 그대로 차원축소를 한다고 분류 또는 예측을 잘하는 방향으로 차원축소를 하는 것은 아니다. (분류/예측에 영향을 끼치지 않는 변수가 많이 반영된 차원 축소일 경우)

3. LDA(Linear Discriminant Analysis)

PCA와 유사하게 데이터를 저차원 공간해 투영하는 차원 축소 기법이지만, 분류 학습을 위해 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소한다. 투영 후에 클래스 간 분산은 최대한 크게 클래스 내부의 분산은 최대한 작게 만들어 각 클래스 간 중심이 서로 멀어지도록 분류한다. 분류 학습을 최적화하는 피쳐 부분공간을 찾아 경계에 따라 데이터를 분류한다. PCA와 달리 분류 알고리즘에 사용할 수 있다.