데이터 분석에서 차원 축소는 고차원의 데이터셋을 저차원으로 변환하여 분석을 용이하게 하고, 시각화하며, 계산 비용을 줄이는 중요한 과정입니다. 다음은 널리 사용되는 7가지 전통적인 차원 축소 기법입니다.
1. 주성분 분석 (Principal Component Analysis - PCA)
주성분 분석(PCA)은 가장 널리 알려진 비지도 학습 기반의 차원 축소 기법입니다. 데이터의 분산(variance)을 가장 잘 보존하는 새로운 좌표축, 즉 '주성분(Principal Component)'을 찾습니다. 첫 번째 주성분은 데이터의 가장 큰 분산을 설명하며, 두 번째 주성분은 첫 번째와 직교하면서 나머지 분산을 가장 잘 설명하는 축입니다. 이 과정을 통해 원본 데이터의 정보를 최대한 유지하면서 차원을 줄일 수 있습니다.
- 핵심 목표: 데이터의 분산을 최대로 보존하는 새로운 특징(주성분)을 추출합니다.
- 작동 원리:
- 데이터 표준화: 각 변수(특징)의 스케일이 다를 경우 분석에 미치는 영향을 동일하게 하기 위해, 모든 변수의 평균을 0, 분산을 1로 표준화합니다.
- 공분산 행렬 계산: 표준화된 데이터의 변수 간 선형 관계를 나타내는 공분산 행렬을 계산합니다. 이 행렬은 데이터가 어떤 방향으로 흩어져 있는지를 보여줍니다.
- 고유값 분해: 공분산 행렬을 고유값(Eigenvalue)과 고유벡터(Eigenvector)로 분해합니다. 고유벡터는 데이터 분산의 방향을 나타내고, 고유값은 해당 방향으로의 분산의 크기(중요도)를 나타냅니다.
- 주성분 결정: 계산된 고유값의 크기가 큰 순서대로 고유벡터를 정렬합니다. 이 정렬된 고유벡터가 바로 주성분(PC1, PC2, ...)이 됩니다.
- 데이터 투영: 원본 데이터를 차원 축소 목표에 맞게 선택된 상위 k개의 주성분으로 이루어진 새로운 공간에 투영(dot product)하여 저차원 데이터를 생성합니다.
- 주요 용도: 데이터 시각화, 노이즈 제거, 특징 추출, 데이터 압축 등에 사용됩니다.
2. 선형 판별 분석 (Linear Discriminant Analysis - LDA)
선형 판별 분석(LDA)은 지도 학습 기반의 차원 축소 기법으로, 주로 분류 문제에서 사용됩니다. 클래스(범주) 간의 분산은 최대화하고, 클래스 내의 분산은 최소화하는 새로운 축을 찾습니다. 즉, 각 클래스를 가장 잘 구별할 수 있는 방향으로 데이터를 투영하여 차원을 축소합니다.
- 핵심 목표: 클래스 간의 분리를 최대로 하는 새로운 특징을 추출합니다.
- 작동 원리:
- 클래스 내 분산 행렬(S_W) 계산: 각 클래스 내부의 데이터들이 얼마나 흩어져 있는지를 측정합니다. 이 값은 최소화하는 것이 목표입니다.
- 클래스 간 분산 행렬(S_B) 계산: 각 클래스의 중심점이 전체 데이터의 중심점으로부터 얼마나 멀리 떨어져 있는지를 측정합니다. 이 값은 최대화하는 것이 목표입니다.
- 고유값 분해: (S_W)⁻¹ * (S_B) 행렬의 고유값과 고유벡터를 계산합니다. 이 과정은 클래스 내 분산은 작게, 클래스 간 분산은 크게 만드는 최적의 변환 방향을 찾는 것입니다.
- 판별 벡터 결정: 고유값이 큰 순서대로 고유벡터를 정렬하여 클래스를 가장 잘 구별하는 새로운 축(판별 벡터)으로 선택합니다.
- 데이터 투영: 원본 데이터를 선택된 판별 벡터에 투영하여 클래스 분리가 극대화된 저차원 데이터를 얻습니다.
- 주요 용도: 얼굴 인식, 의료 데이터 분류, 텍스트 분류 등 분류 모델의 전처리 단계에서 특징 추출용으로 많이 사용됩니다.
3. 특이값 분해 (Singular Value Decomposition - SVD)
특이값 분해(SVD)는 임의의 m x n 행렬을 세 개의 다른 행렬(U, Σ, Vᵀ)의 곱으로 분해하는 강력한 행렬 분해 기법입니다. PCA와 매우 밀접한 관련이 있으며, PCA가 공분산 행렬을 이용하는 것과 달리 SVD는 데이터 행렬 자체를 분해합니다. 분해된 대각 행렬 Σ의 특이값(Singular Value) 중 상위 몇 개만 사용하여 원본 행렬을 근사함으로써 차원을 축소할 수 있습니다.
- 핵심 목표: 행렬을 특이값과 특이벡터를 이용해 분해하여 데이터의 주요 정보를 추출합니다.
- 작동 원리:
- 행렬 분해: 원본 데이터 행렬 A를 A = UΣVᵀ 로 분해합니다.
- U: 좌측 특이벡터(Left Singular Vectors)로 구성된 직교 행렬. 데이터의 행(row)에 대한 방향 정보를 담고 있습니다.
- Σ: 대각선상에 특이값(Singular Values)이 내림차순으로 정렬된 대각 행렬. 각 특이값은 해당 차원의 중요도를 나타냅니다.
- Vᵀ: 우측 특이벡터(Right Singular Vectors)로 구성된 직교 행렬의 전치 행렬. 데이터의 열(column), 즉 특징(feature)에 대한 방향 정보를 담고 있습니다.
- 차원 축소 (Truncated SVD): Σ 행렬에서 값이 가장 큰 상위 k개의 특이값과, 이에 대응하는 U, V 행렬의 벡터들만 선택합니다.
- 데이터 근사: 선택된 k개의 요소들만 사용하여 세 행렬을 다시 곱하면, 원본 데이터의 정보 손실을 최소화하면서 차원이 축소된 근사 행렬 A'가 생성됩니다.
- 행렬 분해: 원본 데이터 행렬 A를 A = UΣVᵀ 로 분해합니다.
- 주요 용도: 이미지 압축, 추천 시스템(잠재 요인 분석), 자연어 처리(잠재 의미 분석, LSA), 노이즈 제거 등에 폭넓게 활용됩니다.
4. 요인 분석 (Factor Analysis - FA)
요인 분석은 관찰된 여러 변수들 간의 상관관계를 분석하여, 그 이면에 있는 잠재적인 구조, 즉 '요인(Factor)'을 찾아내는 통계적 기법입니다. 변수들이 공유하는 공통 분산(common variance)에 초점을 맞춰, 소수의 잠재 요인으로 변수들을 설명하고자 합니다. PCA가 전체 분산을 설명하려는 것과 달리, FA는 변수들 간의 상관관계 구조를 설명하는 데 중점을 둡니다.
- 핵심 목표: 관찰된 변수들 사이의 상관관계를 설명하는 잠재 요인을 발견합니다.
- 작동 원리:
- 상관관계 행렬 계산: 관찰된 변수들 간의 상관관계 행렬을 먼저 계산합니다.
- 잠재 요인 수 결정: 스크리 도표(Scree plot)나 고유값 기준(Kaiser's rule) 등의 통계적 방법을 사용하여 데이터 구조를 설명할 최적의 잠재 요인 개수를 결정합니다.
- 요인 적재량 추정: 각 변수가 각 잠재 요인과 얼마나 관련이 있는지를 나타내는 '요인 적재량(Factor Loading)'을 추정합니다.
- 요인 회전 (선택 사항): 요인 구조를 더 명확하게 해석하기 위해 요인 축을 회전(e.g., Varimax)시킵니다. 이를 통해 각 변수가 소수의 요인에만 높은 적재량을 갖도록 만들어, 각 요인이 무엇을 의미하는지 쉽게 파악할 수 있도록 돕습니다.
- 주요 용도: 심리학, 사회과학, 마케팅 분야에서 설문조사 데이터 분석, 고객 만족도 요인 분석, 브랜드 이미지 분석 등에 사용됩니다.
5. 다차원 척도법 (Multidimensional Scaling - MDS)
다차원 척도법(MDS)은 객체들 간의 거리(유사성 또는 비유사성) 정보를 바탕으로, 객체들을 저차원 공간(주로 2차원 또는 3차원)에 점으로 표현하여 시각화하는 기법입니다. 원래 데이터 공간에서 객체 간의 거리를 저차원 공간에서도 최대한 유지하도록 좌표를 결정합니다.
- 핵심 목표: 객체 간의 거리 관계를 최대한 보존하면서 저차원 공간에 시각화합니다.
- 작동 원리:
- 거리 행렬 생성: n개의 객체에 대한 n x n 거리(비유사성) 행렬 D를 계산하거나 입력받습니다.
- 초기 좌표 설정: 목표하는 k차원 공간에 n개의 객체를 임의의 좌표로 배치합니다.
- 좌표 업데이트 및 반복:
- k차원 공간에 배치된 객체들 간의 유클리드 거리를 계산하여 새로운 거리 행렬 D'를 만듭니다.
- 원본 거리 행렬 D와 새로운 거리 행렬 D' 간의 차이를 나타내는 '스트레스(Stress)' 값을 계산합니다.
- 스트레스 값을 최소화하는 방향으로 k차원 공간의 객체 좌표를 조금씩 이동시킵니다.
- 스트레스 값이 더 이상 줄어들지 않을 때까지 이 과정을 반복합니다.
- 주요 용도: 브랜드 포지셔닝 맵, 심리학에서의 개념 간 관계 시각화, 유전학에서의 종 간의 거리 시각화 등 데이터의 관계 구조를 직관적으로 파악하는 데 유용합니다.
6. 아이소맵 (Isomap)
아이소맵은 비선형 차원 축소 기법으로, 데이터가 놓여있는 저차원의 매니폴드(Manifold) 구조를 발견하는 것을 목표로 합니다. 데이터 포인트 간의 유클리드 거리 대신, 매니폴드 상의 최단 경로 거리인 측지선 거리(Geodesic Distance)를 계산하여 사용합니다. 이는 특히 스위스 롤(Swiss Roll)과 같이 구부러진 형태의 데이터 구조를 펼치는 데 효과적입니다.
- 핵심 목표: 데이터의 비선형 매니폴드 구조를 보존하며 차원을 축소합니다.
- 작동 원리:
- 이웃 그래프 구성: 각 데이터 포인트에 대해 가장 가까운 k개의 이웃(k-NN)을 찾거나, 특정 반경(ε) 내의 이웃을 찾아 서로 연결하여 그래프를 만듭니다. 이 그래프는 데이터 매니폴드의 국소적인 구조를 근사합니다.
- 측지선 거리 계산: 생성된 그래프 상에서 모든 점들 사이의 최단 경로 거리를 계산합니다. (e.g., 다익스트라 알고리즘 사용) 이 거리는 매니폴드를 따라 이동하는 실제 거리, 즉 측지선 거리를 근사한 값입니다.
- 저차원 임베딩: 모든 점 쌍에 대한 측지선 거리로 구성된 새로운 거리 행렬을 만듭니다. 이 행렬을 다차원 척도법(MDS)에 적용하여, 측지선 거리를 최대한 보존하는 저차원 좌표를 찾아냅니다.
- 주요 용도: 얼굴 이미지 방향 분석, 필기체 숫자 인식, 비선형적인 구조를 가진 데이터의 시각화 및 특징 추출에 사용됩니다.
7. 독립 성분 분석 (Independent Component Analysis - ICA)
독립 성분 분석(ICA)은 다변량의 신호를 통계적으로 독립적인 하위 성분으로 분리하는 계산 방법입니다. 이 기법은 여러 신호가 혼합된 소스에서 원래의 개별 신호를 찾아내는 '칵테일 파티 문제'를 해결하는 데 자주 비유됩니다. PCA가 데이터의 분산을 최대화하고 성분 간의 상관관계를 없애는 데 초점을 맞추는 반면, ICA는 상관관계를 넘어 통계적 독립성을 최대화하는 성분을 찾습니다.
- 핵심 목표: 혼합된 신호로부터 통계적으로 독립적인 원본 신호(독립 성분)를 추출합니다.
- 작동 원리:
- 데이터 전처리 (중심화 및 백색화): 먼저 데이터의 평균을 0으로 만드는 중심화(Centering)를 수행합니다. 그 다음, 성분들이 서로 상관관계를 갖지 않고 단위 분산을 갖도록 만드는 백색화(Whitening) 과정을 거칩니다. 이 단계는 보통 PCA나 SVD를 통해 수행됩니다.
- 비가우시안성(Non-Gaussianity) 최대화: 중심 극한 정리에 따르면, 독립적인 확률 변수들의 합은 정규 분포(Gaussian distribution)에 가까워지는 경향이 있습니다. ICA는 이 원리를 역으로 이용하여, 혼합된 신호에서 분리된 성분들이 최대한 정규 분포에서 멀어지도록(즉, 비가우시안성이 최대가 되도록) 변환을 찾습니다.
- 반복 최적화: 비가우시안성을 측정하는 척도(예: 첨도(Kurtosis) 또는 네겐트로피(Negentropy))를 최대화하는 최적의 분리 행렬을 반복적인 알고리즘(예: FastICA)을 통해 추정합니다.
- 주요 용도: 음성 신호 분리(맹목적 소스 분리), 뇌파(EEG) 및 기능적 자기공명영상(fMRI) 데이터 분석, 이미지에서 독립적인 특징 추출 등에 사용됩니다.
'데이터 분석 > 차원 축소' 카테고리의 다른 글
| 차원 축소 기법 비교: PCA, SVD, ICA 핵심 차이점 (0) | 2025.09.29 |
|---|