728x90
반응형
SMALL
고차원 데이터는 정보가 풍부하지만, 그만큼 해석과 시각화가 어려워지고 계산 비용도 증가합니다.
이번 글에서는 이런 고차원 데이터를 보다 이해하기 쉬운 저차원으로 변환하는 기법인 차원 축소(Dimensionality Reduction)에 대해 알아보고, 대표적인 알고리즘인 PCA와 t-SNE를 실습을 통해 체험해보겠습니다.
1️⃣ 차원 축소란 무엇인가요?
차원 축소는 고차원 데이터를 손실을 최소화하면서 보다 적은 수의 특성(Feature)으로 변환하는 기법입니다.
모델 성능 향상, 계산 효율성 확보, 시각화 목적 등 다양한 이유로 사용됩니다.
✅ 차원 축소의 장점
- 노이즈 감소 → 과적합(Overfitting) 방지
- 시각화 용이 → 2D, 3D 공간에서 데이터 구조를 파악할 수 있음
- 속도 개선 → 고차원일수록 느려지는 계산을 빠르게 수행 가능
2️⃣ PCA (주성분 분석)
PCA (Principal Component Analysis)는 데이터의 분산을 최대한 보존하는 방향으로 축을 회전시켜 데이터를 선형 변환하는 차원 축소 기법입니다.
비교적 해석이 쉬우며, 선형 관계를 기반으로 구조를 단순화할 수 있다는 장점이 있습니다.
📌 작동 원리
- 공분산 행렬 계산: 변수들 간의 관계를 수치화
- 고유값 분해: 데이터를 잘 설명하는 방향(주성분)을 계산
- 데이터 변환: 주성분 축을 기준으로 데이터를 투영
🧪 실습: PCA를 활용한 손글씨 데이터 시각화
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_digits
# 손글씨 숫자 데이터 로드 (64차원)
digits = load_digits()
X = digits.data
y = digits.target
# PCA 적용: 64D → 2D
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
# 시각화
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap="viridis", edgecolor="k", alpha=0.7)
plt.colorbar()
plt.title("PCA: Digits Dataset")
plt.xlabel("Principal Component 1")
plt.ylabel("Principal Component 2")
plt.show()
해석: 데이터가 군집 형태로 분포되어 있으며, 숫자별로 일부 구분되는 패턴을 확인할 수 있습니다.
3️⃣ t-SNE (t-Distributed Stochastic Neighbor Embedding)
t-SNE는 비선형 차원 축소 기법으로, 고차원 데이터의 국소적 구조를 보존하는 데 강력한 성능을 발휘합니다.
특히 복잡한 군집 구조나 패턴을 시각적으로 잘 드러내는 데 매우 효과적입니다.
✅ 특징 비교
항목 | PCA | t-SNE |
변환 방식 | 선형(Linear) | 비선형(Nonlinear) |
목적 | 최대 분산 방향 보존 | 국소 이웃 간의 거리 구조 보존 |
사용 용도 | 전처리, 시각화 | 고차원 데이터 시각화 전용 |
🧪 실습: t-SNE를 활용한 손글씨 데이터 시각화
from sklearn.manifold import TSNE
# t-SNE 적용: 64D → 2D
tsne = TSNE(n_components=2, random_state=42)
X_tsne = tsne.fit_transform(X)
# 시각화
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y, cmap="viridis", edgecolor="k", alpha=0.7)
plt.colorbar()
plt.title("t-SNE: Digits Dataset")
plt.xlabel("t-SNE Component 1")
plt.ylabel("t-SNE Component 2")
plt.show()
해석: PCA보다 훨씬 더 명확하게 숫자별 군집 구조가 시각화되며, 데이터가 자연스럽게 잘 분리되어 있음을 확인할 수 있습니다.
🏆 오늘의 핵심 요약
항목 | 설명 |
✅ PCA | 선형 변환 기반으로 데이터를 주성분 축에 투영하여 차원을 축소합니다. |
✅ t-SNE | 비선형 방식으로 데이터의 국소 구조를 보존하면서 시각화에 최적화된 차원 축소 방법입니다. |
✅ 활용 예시 | 고차원 데이터 시각화, 노이즈 제거, 패턴 탐색 등에 매우 유용합니다. |
728x90
반응형
LIST
'인공지능 (AI) > 머신러닝 (ML)' 카테고리의 다른 글
11 - 컴퓨터가 언어를 이해한다면?: 자연어 처리와 텍스트 데이터 분석 (0) | 2025.04.04 |
---|---|
10 - 나에게 딱 맞는 콘텐츠는 어떻게 찾아질까?: 추천 시스템과 협업 필터링 (0) | 2025.04.04 |
8 -한층 더 정교한 군집화: 계층적 군집과 DBSCAN (0) | 2025.04.03 |
7 - 정답 없이 배우는 머신러닝: 비지도 학습과 K-Means 클러스터링 (0) | 2025.04.03 |
6 - 숫자부터 문자까지, 분류의 확장: 다중 클래스 분류와 소프트맥스 회귀 (0) | 2025.04.03 |