Theory/IE

[Data Mining_4] 차원 축소 기법

zzzzzooooo0000099999 2025. 4. 7. 23:16

1. 차원 축소란?

  차원 축소는 고차원의 데이터를 저차원으로 변환하여, 데이터의 핵심 정보를 유지하면서 불필요한 노이즈나 중복을 제거하는 과정이다.

 

- 고차원 데이터 → 시각화 어려움, 연산량 증가, 과적합 가능성 ↑  
- 차원 축소를 통해 속도 개선, 시각화 용이성, 모델 일반화 능력 향상 가능

 

2. 차원 축소 방법 분류

구분 설명 예시
변수 선택 (Feature Selection) 기존 변수 중 중요한 것만 선택 상관관계 기반 선택, 정보 이득
변수 추출 (Feature Extraction) 기존 변수들을 조합하여 새로운 축을 생성 PCA, t-SNE, MDS 등

 

3. 주성분 분석 (PCA : Principal Component Analysis)

- 개념

  - 고차원 데이터를 분산이 가장 큰 축을 따라 회전시켜 저차원으로 투영

  - 데이터의 분산을 최대한 보존하는 축(주성분)을 찾는 선형 변환

 

- 특징

항목 설명
종류 선형 기법
목적 분산 보존 + 차원 축소
결과 새 축(주성분) 생성, 원래 축과 직교
활용 시각화, 전처리, 노이즈 제거

 

- Python 예제

from sklearn.decomposition import PCA

pca = PCA(n_components=2)
reduced = pca.fit_transform(X)

print("설명된 분산 비율:", pca.explained_variance_ratio_)

 

4. t-SNE (t-distributed Stochastic Neighbor Embedding)

- 개념

  - 비선형 차원 축소 기법으로 고차원 데이터를 2~3차원으로 시각화

  - 유사한 샘플은 가까이, 다른 샘플은 멀게 배치하여 군집 구조를 잘 표현

 

- 특징

항목 설명
종류 비선형, 확률 기반
목적 시각화 중심
단점 해석 어려움, 속도 느림, 고정 결과 아님
활용 군집 구조 시각화, 데이터 분포 파악

 

- Python 예제

from sklearn.manifold import TSNE

tsne = TSNE(n_components=2, perplexity=30, learning_rate=200)
reduced = tsne.fit_transform(X)

 

5. MDS (다차원 척도법, Multidimensional Scaling)

- 개념

  - 거리 행렬을 기반으로 고차원 데이터를 저차원에 임베딩

  - 객체 간의 유사성(distance)을 보존하면서 시각화

 

- 특징

항목 설명
종류 비선형 또는 선형
입력 거리 또는 유사도 행렬
목적 시각화, 군집 간 구조 파악
활용 사회 네트워크, 고객 유사도 분석 등

 

- Python 예제

from sklearn.manifold import MDS

mds = MDS(n_components=2, dissimilarity='euclidean')
reduced = mds.fit_transform(X)

 

6. 변수 선택 vs 변수 추출

구분 변수 선택 (Feature Selection) 변수 추출 (Feature Extraction)
의미 원래 변수 중 일부만 선택 기존 변수를 조합/변환하여 새 변수 생성
해석성 높음 (원래 변수 유지) 낮음 (새로운 축)
기법 분산 선택, 정보 이득, Lasso PCA, t-SNE, MDS
활용 변수 영향 해석, 모델 단순화 시각화, 압축, 노이즈 제거

 

7. 결론

- PCA : 선형 차원 축소, 데이터 구조 유지, 해석 용이
- t-SNE / MDS : 비선형 구조 시각화, 분포 파악에 탁월
- 변수 선택은 해석 중심, 변수 추출은 압축 및 시각화 중심

 

 

목적(해석 vs 시각화 vs 성능)에 따라 적절한 차원 축소 기법을 선택하자.