머신러닝

PCA t-SNE UMAP 차이 | 데이터 시각화 전에 알아야 할 것

mirabo01 2026. 4. 26. 10:31
반응형

차원 축소를 공부하다 보면 거의 반드시 만나게 되는 이름이 있습니다.

바로 PCA, t-SNE, UMAP입니다.

셋 다 데이터를 더 낮은 차원으로 줄여서 보기 쉽게 만든다는 점은 비슷하지만, 실제 목적과 성격은 꽤 다릅니다.

가장 먼저 큰 그림부터 잡으면 이렇습니다.

PCA는 분산을 최대한 보존하는 선형 차원 축소에 가깝고, t-SNE는 고차원 데이터 시각화에 특화된 비선형 임베딩에 가깝고, UMAP은 로컬 구조와 어느 정도의 전역 구조 균형을 조절할 수 있는 비선형 임베딩에 더 가깝습니다.

 

쉽게 말하면 PCA는 정보를 최대한 유지하며 압축하는 느낌, t-SNE는 보이기 좋게 군집을 펼쳐주는 느낌, UMAP은 시각화와 구조 보존 사이의 균형을 잡아주는 느낌으로 이해하면 꽤 편합니다.

#PCA #tSNE #UMAP #차원축소 #데이터시각화 #머신러닝기초 #AI입문

먼저 PCA는 무엇일까

PCA는 Principal Component Analysis, 즉 주성분 분석입니다.

scikit-learn 문서는 PCA를 다변량 데이터셋을 연속적인 직교 성분으로 분해해서, 최대한 많은 분산을 설명하는 방향으로 투영하는 방법으로 설명합니다. 즉 데이터에서 정보량이 큰 축을 먼저 찾고, 그 축 위로 데이터를 압축해서 표현하는 방식입니다. [출처]

쉽게 말하면 원래 특징이 100개인 데이터를 “가장 중요한 방향” 몇 개로 다시 표현하는 것입니다.

PCA를 쉽게 비유하면

여러 방향으로 흩어진 데이터를 봤을 때, 가장 정보가 많이 담긴 축을 먼저 찾고 그 축 중심으로 눌러 담는 방식에 가깝습니다.

그래서 PCA는 시각화뿐 아니라 전처리, 노이즈 완화, 차원 축소 후 다른 모델에 넣는 용도로도 자주 쓰입니다. scikit-learn 문서도 PCA가 낮은 차원으로 투영하면서 대부분의 설명 분산을 유지하는 데 유용하다고 설명합니다.

t-SNE는 무엇일까

t-SNE는 고차원 데이터를 시각화할 때 정말 자주 언급되는 기법입니다. scikit-learn은 t-SNE를 고차원 데이터를 시각화하기 위한 도구라고 직접 설명합니다. 또 고차원 공간의 데이터 유사성을 확률로 바꾼 뒤, 저차원 임베딩에서도 그 유사성이 잘 반영되도록 최적화한다고 설명합니다.

이 말이 조금 어렵게 느껴질 수 있는데, 핵심은 가까운 점들은 낮은 차원에서도 가깝게 보이게 만들려는 것입니다.

그래서 t-SNE는 특히 “군집이 어떻게 나뉘는지 눈으로 보고 싶을 때” 굉장히 강한 인상을 줍니다.

t-SNE의 핵심 특징
  • 고차원 데이터 시각화에 특화되어 있음
  • 로컬 구조, 즉 가까운 이웃 관계에 민감함
  • 초기화와 파라미터에 따라 결과가 꽤 달라질 수 있음
  • 보통 2차원이나 3차원 시각화에 많이 씀

scikit-learn은 t-SNE의 비용 함수가 non-convex라서 초기값에 따라 서로 다른 결과가 나올 수 있다고 설명합니다. 또 입력 차원이 매우 높으면 먼저 PCA 같은 다른 차원 축소를 이용해 차원을 어느 정도 줄인 뒤 t-SNE를 쓰는 것을 권장합니다.

UMAP은 무엇일까

UMAP도 비선형 차원 축소 기법으로, 최근 데이터 시각화에서 정말 많이 쓰입니다. UMAP 문서는 핵심 파라미터인 n_neighbors로컬 구조와 전역 구조 사이의 균형을 조절한다고 설명합니다. 값이 작으면 더 로컬한 구조를 보게 되고, 값이 크면 더 넓은 구조를 보게 됩니다.

쉽게 말하면 UMAP은 “가까운 점끼리의 관계를 잘 살리면서도, 전체 구조도 어느 정도 같이 보려고 하는 방식”으로 이해하면 좋습니다.

또 UMAP 문서는 2차원, 3차원뿐 아니라 더 높은 임베딩 차원도 사용할 수 있고, 클러스터링이나 다른 머신러닝 작업 전에 10차원, 50차원처럼 더 큰 차원으로 임베딩하는 것도 유익할 수 있다고 설명합니다.

UMAP을 쉽게 비유하면

동네 안에서 가까운 관계를 우선 살리면서도, 도시 전체 지형도 어느 정도 같이 보여주려는 지도 같은 느낌입니다.

UMAP은 지원하는 거리(metric)도 다양합니다. 공식 문서는 euclidean, cosine, correlation, jaccard 같은 다양한 metric과 precomputed distance matrix까지 지원한다고 설명합니다.

PCA t-SNE UMAP 차이를 가장 쉽게 정리하면

결국 이 셋의 차이는 무엇을 더 우선해서 보존하려고 하느냐에 있습니다.

기법 핵심 아이디어 주로 잘하는 것 주의할 점
PCA 분산이 큰 축을 찾아 선형 투영 정보 압축, 전처리, 빠른 기초 시각화 비선형 구조는 잘 못 잡을 수 있음
t-SNE 가까운 이웃 관계를 확률적으로 보존 군집 시각화, 로컬 구조 표현 초기화·perplexity에 민감, 결과 해석 주의
UMAP 이웃 구조 기반으로 임베딩, 로컬/전역 균형 조절 시각화, 구조 탐색, 후속 ML 전처리 파라미터 영향이 큼, metric 선택 중요

데이터 시각화 전에 왜 이 차이를 알아야 할까

많은 사람이 차원 축소 결과를 보면 “점들이 멀리 떨어져 있으니 실제로도 엄청 다르겠네” “군집 사이 거리가 크니까 의미가 있겠네” 이런 식으로 바로 해석하려고 합니다.

그런데 이건 조심해야 합니다. 특히 t-SNE는 시각화용 도구라는 점이 강하고, 결과가 초기화와 파라미터에 따라 달라질 수 있습니다. scikit-learn은 perplexity 값이 결과를 크게 바꿀 수 있고, different initializations can get different results라고 분명히 설명합니다.

UMAP도 마찬가지로 n_neighbors 값에 따라 훨씬 로컬한 그림이 될 수도 있고, 더 넓은 전역 구조를 보여주는 그림이 될 수도 있습니다. 공식 문서도 n_neighbors가 local/global tradeoff를 결정한다고 설명합니다.

반면 PCA는 상대적으로 해석이 단순하지만, 선형 구조 중심이라 복잡한 비선형 관계는 잘 드러내지 못할 수 있습니다.

 

즉 차원 축소 그림은 “진실 그 자체”라기보다

어떤 기준으로 데이터를 요약해서 보여준 결과인지 먼저 알아야 해석할 수 있는 그림입니다.

그럼 언제 무엇을 쓰면 좋을까

아주 실무적으로 단순화하면 이렇게 생각하면 편합니다.

빠른 선택 기준

  • PCA = 빠르게 줄이고 싶을 때, 전처리나 기초 시각화가 필요할 때
  • t-SNE = 군집이 어떻게 나뉘는지 시각적으로 보고 싶을 때
  • UMAP = 시각화도 하고 싶고, 구조를 조금 더 유연하게 보고 싶을 때

scikit-learn은 t-SNE 전에 PCA 같은 다른 차원 축소를 먼저 적용해 차원을 50 정도로 줄이는 것이 속도와 노이즈 억제에 도움이 된다고 권장합니다. 즉 실제로는 PCA → t-SNE 조합도 꽤 자주 나옵니다.

또 UMAP 문서는 n_components를 2나 3에만 제한할 필요가 없고, 클러스터링이나 다른 머신러닝 전에 10차원, 50차원처럼 더 크게 두는 것도 유익할 수 있다고 설명합니다. 즉 UMAP은 꼭 “예쁜 그림”만을 위한 도구로 볼 필요도 없습니다.

 

처음 배우는 사람은 이렇게 기억하면 쉽다

셋을 완벽하게 외우려고 하기보다, 아래 세 줄만 먼저 기억해도 꽤 도움이 됩니다.

가장 쉬운 요약

  • PCA = 분산을 최대한 살리며 선형 압축
  • t-SNE = 가까운 점들을 잘 보이게 펼치는 시각화 특화 기법
  • UMAP = 로컬 구조와 전역 구조 균형을 조절하는 유연한 임베딩

여기에 하나만 더 붙이면 좋습니다.

PCA는 압축, t-SNE는 시각화, UMAP은 균형 잡힌 임베딩

마무리

PCA, t-SNE, UMAP은 모두 차원 축소 도구이지만, 같은 그림을 만드는 도구가 아닙니다.

PCA는 분산 보존을 우선하고, t-SNE는 로컬 이웃 구조를 시각적으로 드러내는 데 강하고, UMAP은 로컬 구조와 더 넓은 구조 사이의 균형을 조절할 수 있습니다.

그래서 데이터 시각화 전에 중요한 건 “어느 알고리즘이 더 좋으냐”보다 내가 무엇을 보고 싶은지를 먼저 정하는 것입니다.

반응형