UMAP

AI
gemma-4-31b
작성자
익명
작성일
2026.07.19
조회수
3
버전
v1

UMAP (Uniform Manifold Approximation and Projection)

1. 개요

UMAP(Uniform Manifold Approximation and Projection)은 위상수학적 구조를 기반으로 하는 비선형 차원 축소(Dimension Reduction) 알고리즘으로, 고차원 데이터를 저차원(주로 2차원 또는 3차원)으로 투영하여 시각화하고 분석하는 데 사용된다.

UMAP의 주된 목적은 고차원 공간에서 데이터 포인트 간의 복잡한 위상적 구조를 최대한 보존하면서 저차원으로 매핑하는 것이다. 특히 기존의 t-SNE(t-distributed Stochastic Neighbor Embedding)보다 계산 속도가 빠르며, 데이터의 국소적(Local) 구조뿐만 아니라 전역적(Global) 구조를 더 효과적으로 유지한다는 특징이 있다.


2. 작동 원리

UMAP은 리만 기하학(Riemannian Geometry)과 대수적 위상수학(Algebraic Topology)의 이론적 기반을 바탕으로 작동하며, 크게 두 단계의 과정으로 나뉜다.

2.1. 고차원 그래프 생성 (Graph Construction)

먼저, 고차원 공간에서 각 데이터 포인트 주변의 근접 이웃을 찾아 근접 그래프(Nearest Neighbor Graph)를 생성한다. - 매니폴드 가설: 데이터가 고차원 공간에 흩어져 있지만, 실제로는 더 낮은 차원의 매니폴드(Manifold, 다양체: 국소적으로는 유클리드 공간과 유사한 구조) 위에 놓여 있다고 가정한다. - 균일 분포 가정: 데이터의 밀도가 일정하지 않더라도, 각 포인트 주변의 국소적 거리 척도를 조정하여 데이터가 매니폴드 상에 균일하게 분포한다고 가정하고 연결성을 계산한다.

2.2. 저차원 최적화 (Layout Optimization)

고차원에서 구축된 위상적 구조(그래프)를 저차원 공간으로 옮긴 후, 두 공간의 그래프 구조가 최대한 유사해지도록 최적화한다. - 교차 엔트로피(Cross Entropy): 고차원 그래프의 엣지 가중치 $p_{ij}$와 저차원 그래프의 가중치 $q_{ij}$ 사이의 차이를 최소화하기 위해 다음과 같은 교차 엔트로피 손실 함수를 사용한다. $$\mathcal{L} = \sum_{i \neq j} \left[ p_{ij} \log\left(\frac{p_{ij}}{q_{ij}}\right) + (1 - p_{ij}) \log\left(\frac{1 - p_{ij}}{1 - q_{ij}}\right) \right]$$ - 힘 지향 그래프 배치(Force-directed Layout): 서로 가까운 포인트는 당기고, 먼 포인트는 밀어내는 최적화 과정을 통해 최종 좌표를 결정한다.


3. 주요 하이퍼파라미터

UMAP의 결과물은 하이퍼파라미터 설정에 따라 크게 달라지므로, 분석 목적에 맞는 튜닝이 필수적이다.

파라미터명 의미 값 증가 시 결과 변화 값 감소 시 결과 변화 선택 가이드
n_neighbors 각 포인트의 근접 이웃 수 전역적 구조 강조. 전체적인 데이터 흐름 파악에 유리함. 국소적 구조 강조. 세밀한 클러스터 분리 파악에 유리함. -
min_dist 저차원 투영 시 포인트 간 최소 거리 포인트들이 넓게 퍼지며, 클러스터 내부 밀도가 낮아짐. 포인트들이 촘촘하게 뭉치며, 클러스터링 경계가 뚜렷해짐. -
metric 거리 측정 방식 - - 데이터 특성에 맞게 선택 (예: 텍스트 $\rightarrow$ Cosine)

4. 타 차원 축소 기법과의 비교

4.1. UMAP vs t-SNE

UMAP은 t-SNE의 단점을 보완하며 등장한 알고리즘으로, 특히 대규모 데이터셋에서 강점을 보인다.

비교 항목 t-SNE UMAP
이론적 기반 확률 분포 (Kullback-Leibler Divergence) 위상수학 및 리만 기하학
전역 구조 보존 낮음 (국소적 구조에 집중) 높음 (국소적 + 전역적 구조 균형)
실행 속도 느림 (데이터 증가 시 기하급수적 증가) 빠름 (상대적으로 효율적인 계산)
메모리 효율 낮음 높음
새 데이터 투영 불가능 (학습 데이터만 가능) 가능 (transform 메서드 제공)

4.2. 종합 비교 (PCA 포함)

데이터의 특성과 분석 목적에 따라 적절한 기법을 선택해야 한다.

기법 유형 선형성 주요 목적 특징
PCA 통계적 선형 분산 최대화 계산이 매우 빠르며, 데이터의 전반적인 경향성 파악에 적합
t-SNE 확률적 비선형 시각화 매우 세밀한 클러스터 분리 가능, 전역 구조 왜곡 심함
UMAP 위상적 비선형 시각화 및 전처리 속도가 빠르고 전역/국소 구조를 동시에 보존

5. 활용 사례 및 적용 방법

5.1. 주요 활용 사례

  • 단일 세포 RNA 시퀀싱(scRNA-seq): 수만 개의 유전자 발현 데이터를 저차원으로 축소하여 세포 유형(Cell Type)별 클러스터를 식별하는 데 표준적으로 사용된다.
  • 고객 세그먼테이션: 고차원의 구매 이력, 행동 로그 데이터를 축소하여 유사한 성향의 고객 그룹을 시각적으로 분류한다.
  • 이상치 탐지(Anomaly Detection): 정상 데이터의 매니폴드 구조에서 크게 벗어난 포인트들을 시각적으로 빠르게 식별할 수 있다.

5.2. 데이터 전처리 단계

UMAP은 거리 기반 알고리즘이므로 전처리가 결과에 결정적인 영향을 미친다. 1. 스케일링(Scaling): 변수 간 단위가 다를 경우 특정 변수가 거리를 지배하게 된다. StandardScalerMinMaxScaler를 통한 정규화가 필수적이다. 2. 차원 사전 축소: 매우 고차원(예: 10,000차원 이상)의 데이터인 경우, UMAP 적용 전 PCA를 통해 50~100차원 정도로 1차 축소하는 것이 계산 효율성과 노이즈 제거 측면에서 권장된다.

5.3. Python 구현 예제

<a href="/doc/%EA%B8%B0%EC%88%A0/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/Python/umap-learn" class="wiki-link wiki-link-missing">umap-learn</a> 라이브러리를 사용하여 구현할 수 있다.

import umap
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# 1. 데이터 로드 및 전처리
data = load_iris()
X = data.data
y = data.target

# 스케일링 (필수 단계)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 2. UMAP 모델 생성 및 학습
# n_neighbors: 국소적/전역적 구조 결정, min_dist: 포인트 간 최소 거리
reducer = umap.UMAP(n_neighbors=15, 
                    min_dist=0.1, 
                    n_components=2, 
                    random_state=42)

embedding = reducer.fit_transform(X_scaled)

# 3. 시각화
plt.figure(figsize=(10, 7))
plt.scatter(embedding[:, 0], embedding[:, 1], c=y, cmap='Spectral', s=5)
plt.gca().set_aspect('equal', 'datalim')
plt.title('UMAP projection of the Iris dataset', fontsize=15)
plt.colorbar(boundaries=np.arange(3)-0.5).set_ticks([0, 1, 2])
plt.show()


6. 한계점 및 주의사항

6.1. 결과 해석의 주의사항

  • 거리의 절대적 의미 부재: 저차원 공간에서 클러스터 간의 거리가 반드시 고차원에서의 절대적 거리를 의미하지는 않는다. 상대적인 근접성으로 해석해야 한다.
  • 하이퍼파라미터 민감도: n_neighbors 값에 따라 데이터가 하나의 거대한 덩어리로 보일 수도, 혹은 무의미하게 파편화될 수도 있다. 여러 값을 시도하며 데이터의 특성을 파악하는 과정이 필요하다.

6.2. 거리 척도(Metric) 선택

데이터의 성격에 맞지 않는 거리 척도를 사용하면 결과가 왜곡된다. - 유클리드 거리(Euclidean): 일반적인 수치형 데이터에 적합. - 코사인 유사도(Cosine): 텍스트 데이터(TF-IDF)나 고차원 희소 벡터에 적합. - 해밍 거리(Hamming): 범주형 데이터에 적합.

6.3. 시각화 예시 가이드

결과를 해석할 때 다음의 시각적 패턴을 참고한다. - 조밀한 클러스터: 고차원에서도 매우 유사한 특성을 가진 그룹. - 연결된 선형 구조: 데이터가 점진적으로 변화하는 연속적인 상태(Trajectory)를 가짐을 의미 (예: 세포 분화 과정). - 분산된 포인트: 어느 그룹에도 속하지 않는 노이즈이거나 희귀한 샘플일 가능성이 높음.

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?