본문 바로가기

파이썬/전처리

차원축소 방법 PCA 외 LDA, SVD 등

차원이 커지거나 독립변수 간 강한 상관관계가 있는 경우(다중공산성) 모델의 정확도가 떨어질 수 있다. 차원축소는 여러 변수의 정보를 최대한 유지하면서 데이터 변수의 개수를 줄이는 통계 기법이다.


PCA(주성분 분석)


1. LDA(선형 판별 분석)
PCA와 유사하게 데이터셋을 저차원 공간으로 투영해 차원을 축소하는 기법이나 PCA와 달리 지도학습의 분류에서 사용된다. LDA는데이터를 최적으로 분류하여 차원을 축소하는 기법이고, PCA는 데이터를 최적으로 표현하는 관점에서 차원을 축소하는 방법이다.


투영 후 클래스 간 분산은 최대한 크게, 클래스 내부 분산은 최대한 작게 만들어 각 클래스 간 중심이 서로 멀어지도록 분류한다. 그렇기 때문에 SVM 같은 분류 알고리즘을 적용하기 전에 사용하면 성능을 높일 수 있다.


2. SVD(특이값 분해)
행과 열의 크기가 다른 m x n 차원의 행렬 데이터에 대해 적용이 가능한 차원 축소 방법이다. 매우 많은 feature를 가진 고차원 행렬을 저차원 행렬로 분리하는 행렬 분해 기법이다.


3. 요인분석
수집된 많은 변수들을 유사한 항목들끼리 묶어 적은 수의 요인으로 축솨는 분석방법이다. 변수들 간 상관관계를 분석하여 모형을 세운 뒤 잠재 요인을 도출해 데이터 안의 구조를 해석하는 기법이다. 가능한 적은 요인이 추출되는 것이 바람직하다.


요인의 수를 결정하는 방법에는 아이겐값, 설명력, 사전결정, 스크리도표 4가지가 있다. 아이겐값이 크다는 것은 해당 요인이 변수들의 분산을 잘 설명함을 의미하며 이는 변수의 개수가 20개가 넘을 때 사용하는 것이 적절하다. 스크리도표는 각 요인의 아이겐값을 시각화한 그림으로 요인 수가 커질수록 아이겐값은 점점 작아진다.


요인 분석을 하기 위해서는 보통 표본의 크기가 100개 이상, 변수의 수는 관측지 수의 10배 이상이 되어야 바람직하다. 요인분석은 주어진 자료 자체를 분석하는 것이기 때문에 분석 결과로부터 모집단의 특성에 대한 추정으 할 수는 없다.


4. ICA(독립성분 분석)
다변량의 신호를 통계적으로 독립적인 하부성분으로 분리하는 차원 축소 기법이다. 독립 성분의 분포는 비정규 분포를 따르게 되며 데이터의 상관관계뿐만 아니라 더 높은 차수의 상관관계도 없앨 수 있어 차원들 간의 관계를 독립적으로 변환시킨다.


PCA와 ICA 모두 공통적으로 데이터를 대표하는 기저백터를 찾는다. 다만 PCA은 서로 직교하는 기저 백터 집합을 찾아주지만 ICA의 기저백터들은 서로 직교하지 않을 수도 있다.


5. MDS(다차원 척도법)
데이터 간 거리를 바탕으로 이들 간의 관계를 시각적으료 표현하는 분석 기법으로 군집 분석과 유사하다. 다차원 공간에서 정의되는 유사성 또는 비유사성을 저차원 공간에 기하학적으로 나타내 관계를 탐색적으로 살펴보는 다변량 그래프적 기법에 해당한다.


다차원 척도 분석은 계량적 MDS와 비계량적 MDS로 나뉜다.


계량적 MDS
-데이터가 연속형 변수인 경우에 사용. 각 개체들 간 유클리드 거리 행렬을 구하고 개체들 간 비유사성을 공간상에 표현

비계량적 MDS
-데이터가 순서 척도인 경우에 사용. 순서 척도를 거리의 속성과 같도록 변환하여 거리 생성