← 다변량통계
PART 2 · 05 다변량통계 · 10

t-SNE와 UMAP

고차원 데이터의 이웃 구조를 2차원 지도로 시각화

비선형 차원 축소이웃 관계perplexityn_neighborsmin_dist

고객 × 변수 50개2차원으로비슷한 고객끼리 가까이 놓아 한 장의 지도로 본다

고객 한 명을 설명하는 변수가 50개라고 가정해 보겠습니다. 구매 빈도, 평균 구매액, 브랜드 선호도, 만족도, 가격 민감도 등 다양한 정보가 함께 들어 있습니다. 이런 데이터를 표만으로 살펴보면 고객들이 어떤 유형으로 나뉘는지 한눈에 파악하기 어렵습니다. 그렇다고 변수 50개를 사람이 직접 비교하기도 쉽지 않습니다. t-SNE와 UMAP은 고차원 데이터를 2차원이나 3차원 공간에 배치해 데이터의 구조를 시각적으로 살펴볼 수 있도록 돕는 차원 축소 기법입니다. 이 장에서는 두 방법의 원리, 주요 설정값, 결과 해석과 주의점을 알아봅니다.

SECTION 01

고차원 데이터를 왜 시각화할까?

고차원 데이터에서는 여러 변수의 조합으로 만들어지는 패턴이 중요합니다. 두 고객의 구매 행동이 비슷한지 판단하려면 한두 개의 변수만으로는 부족할 수 있습니다. 예를 들어 고객 데이터에 구매 빈도, 평균 구매액, 브랜드 충성도, 가격 민감도, 할인 행사 반응, 제품 만족도, 재구매 의향, 추천 의향 같은 변수가 있다고 가정해 보겠습니다. 실제로는 이보다 더 많은 변수를 동시에 살펴볼 수 있습니다.

t-SNE와 UMAP은 이런 변수들을 활용해 각 관측값을 점으로 표현하고, 비슷한 관측값이 상대적으로 가까이 배치되도록 저차원 공간을 구성합니다.

분석 전: 고객 × 변수 50개분석 후: 2차원 지도 (UMAP)12345678(변수 20개, 고객 8명만 표시 · 진할수록 큰 값)
그림 1. 분석 전 고차원 표와 분석 후 2차원 지도 (모의 고객 180명, 변수 50개)

그림 1의 왼쪽처럼 각 관측값이 많은 변수로 설명되어 있으면 전체적인 패턴을 직관적으로 파악하기 어렵습니다. 오른쪽처럼 각 관측값을 점으로 나타내면 가까이 모이는 데이터와 상대적으로 떨어지는 데이터를 탐색할 수 있습니다. 중요한 점은 이 그림이 정답을 알려 주는 것이 아니라는 것입니다. 시각화는 데이터의 패턴을 탐색하는 도구이며, 눈에 보이는 군집이 실제로 존재하는 집단인지는 별도로 검토해야 합니다.

SECTION 02

t-SNE란?

t-SNE(t-distributed Stochastic Neighbor Embedding)는 고차원 공간에서 서로 가까운 관측값들의 관계를 저차원 공간에서도 최대한 보존하도록 배치하는 시각화 기법입니다. 핵심은 각 데이터 주변에 어떤 관측값들이 가까이 있는지를 보존하는 것입니다. 예를 들어 구매 행동이 비슷한 고객들이 있다면, t-SNE 결과에서도 이 고객들이 가까이 모이도록 배치하는 것을 목표로 합니다.

PCA22%t-SNE40%UMAP36%원래 50차원에서 가장 가까운 이웃 10명 중 2차원에서도 이웃으로 남은 비율 (모의 고객 180명)
그림 2. 원래 이웃이 2차원에서도 이웃으로 남은 비율

그림 2는 모의 고객 180명마다 원래 50차원에서 가장 가까운 이웃 10명을 찾은 뒤, 2차원 지도에서도 이웃 10명 안에 남은 비율을 비교한 것입니다. 분산을 최대한 보존하는 PCA는 22%에 그쳤지만, 이웃 관계를 보존하도록 만든 t-SNE는 40%, UMAP은 36%였습니다. 50차원을 2차원으로 줄이므로 완벽하게 보존할 수는 없지만, 두 방법은 "가까운 점끼리는 가깝게"라는 목표에 더 충실합니다.

국소 이웃 관계

고차원 데이터의 국소적인 이웃 관계를 시각화하는 데 유용합니다.

비선형 구조

복잡한 비선형 구조를 탐색할 수 있습니다.

덩어리 ≠ 군집

여러 덩어리가 보일 수 있지만, 그 덩어리가 반드시 실제 군집을 의미하지는 않습니다.

전역 거리 주의

점과 점 사이의 전역적인 거리나 군집 간 간격을 정량적으로 해석하는 데는 주의가 필요합니다.

t-SNE는 특히 복잡한 데이터에서 비슷한 관측값들이 어떤 형태로 모이는지 탐색할 때 활용할 수 있습니다.

SECTION 03

UMAP이란?

UMAP(Uniform Manifold Approximation and Projection) 역시 고차원 데이터의 구조를 저차원으로 표현하는 기법입니다. UMAP은 데이터의 이웃 관계를 바탕으로 저차원 표현을 구성하며, 국소적인 구조뿐 아니라 데이터의 전체적인 구조도 어느 정도 반영하도록 설계되어 있습니다. 다만 실제로 전역적인 거리를 얼마나 신뢰할 수 있는지는 데이터와 설정에 따라 달라집니다.

UMAP도 군집을 자동으로 확정해 주는 분석은 아닙니다. 시각화에서 발견한 패턴은 원래 변수와 함께 확인해야 합니다.

SECTION 04

t-SNE와 UMAP은 무엇이 다를까?

PCAt-SNE (perplexity 30)UMAP (n_neighbors 15)같은 모의 고객 180명 (변수 50개, 유형 3개). 색은 정답 유형이며 분석에는 쓰지 않음
그림 3. 같은 데이터를 PCA · t-SNE · UMAP으로 그린 지도

그림 3는 같은 모의 고객 180명을 세 방법으로 그린 결과입니다. 색은 데이터를 만들 때 정한 정답 유형이며 분석에는 쓰지 않았습니다. PCA에서는 세 유형이 겹쳐 있지만, t-SNE와 UMAP에서는 유형별로 뚜렷하게 모입니다. 같은 데이터인데도 방법에 따라 덩어리의 모양과 간격이 꽤 다르다는 점도 함께 볼 수 있습니다.

구분t-SNEUMAP
주요 목적국소적인 이웃 관계 시각화이웃 관계를 중심으로 데이터 구조 시각화
주요 특징가까운 관측값의 관계를 강조국소적 구조와 일부 전역적 구조를 함께 반영하도록 설계
주요 설정perplexityn_neighbors, min_dist
계산 효율데이터 크기와 구현에 따라 달라짐많은 상황에서 비교적 효율적
결과 해석군집 내부의 패턴 탐색에 유용군집과 데이터 구조를 탐색하는 데 유용
주의점군집 간 거리와 크기를 과도하게 해석하지 않기군집 간 거리와 크기를 과도하게 해석하지 않기

두 방법 모두 결과가 설정에 민감할 수 있습니다. 따라서 한 번 생성된 그림만 보고 데이터에 대한 결론을 확정하는 것은 바람직하지 않습니다.

SECTION 05

주요 설정값은 어떤 역할을 할까?

t-SNE: perplexity

perplexity는 각 관측값의 이웃 관계를 구성할 때 고려하는 이웃 규모와 관련된 설정입니다. 상대적으로 작은 값은 더 좁은 범위의 국소 구조에 집중하고, 큰 값은 더 넓은 범위의 이웃 관계를 반영하는 경향이 있습니다.

perplexity = 2perplexity = 30perplexity = 100작으면 잘게 쪼개짐크면 넓은 구조 반영
그림 4. t-SNE: perplexity 2 · 30 · 100에 따른 변화

그림 4에서 perplexity 2는 이웃을 아주 좁게 보기 때문에 같은 유형 안에서도 작은 조각으로 잘게 쪼개집니다. 30과 100에서는 세 덩어리가 분명하지만, 덩어리 사이의 배치는 서로 다릅니다. perplexity는 단순히 실제 이웃 수를 지정하는 값은 아닙니다. 데이터 크기에 맞는 값을 선택하고, 여러 설정에서 결과가 얼마나 안정적인지 비교하는 것이 좋습니다.

UMAP: n_neighbors와 min_dist

n_neighbors는 각 관측값의 근처 구조를 파악할 때 고려하는 이웃 수입니다. 작은 값은 세밀한 국소 구조를, 큰 값은 보다 넓은 범위의 구조를 반영하는 경향이 있습니다. min_dist는 저차원 공간에서 점들이 얼마나 가까이 모일 수 있는지에 영향을 줍니다. 작은 값은 점들이 더 조밀하게 모인 형태를, 큰 값은 상대적으로 덜 조밀한 배치를 만들 수 있습니다.

n_neighbors = 5n_neighbors = 50min_dist = 0.0min_dist = 0.9
그림 5. UMAP: n_neighbors와 min_dist에 따른 변화

그림 5의 아래 두 칸을 보면 min_dist 0.0에서는 점들이 작은 덩어리로 빽빽하게 뭉치고, 0.9에서는 같은 덩어리가 넓게 퍼집니다. 데이터는 그대로인데 덩어리의 "크기"가 설정에 따라 달라진 것입니다. 이 값들은 시각화 결과에 영향을 주지만, 그 자체가 실제 군집 수나 군집의 존재를 결정하는 것은 아닙니다.

SECTION 06

결과를 어떻게 해석할까?

가상의 고객 데이터에서 UMAP을 실행해 다음과 같은 패턴을 발견했다고 가정해 보겠습니다.

UMAP 지도 (모의 고객)원래 변수로 돌아가 확인구매 관련 변수 평균2.11덩어리 ①0.05덩어리 ②1.18덩어리 ③할인 반응 변수 평균-0.06덩어리 ①2.17덩어리 ②0.01덩어리 ③
그림 6. UMAP 지도의 덩어리를 원래 변수 평균으로 다시 확인 (모의 데이터)

그림 6처럼 점들이 여러 덩어리로 모여 있다면 다음과 같은 질문을 할 수 있습니다.

① 공유 특성

각 덩어리에 속한 고객들은 실제로 어떤 특성을 공유하는가?

② 원래 변수의 차이

구매 빈도나 평균 구매액 같은 원래 변수에서도 차이가 나타나는가?

③ 설정 변화

t-SNE와 UMAP의 설정을 바꾸어도 비슷한 구조가 유지되는가?

④ 다른 표본

다른 표본이나 다른 기간의 데이터에서도 같은 패턴이 관찰되는가?

그림 6의 오른쪽은 질문 ②를 확인한 결과입니다. 덩어리 ①은 구매 관련 변수의 평균이 2.11로 높고, 덩어리 ②는 할인 반응 변수의 평균이 2.17로 높으며, 덩어리 ③은 구매 관련 변수가 중간(1.18) 수준입니다. 이처럼 한 덩어리에 속한 고객들이 실제로 높은 구매 빈도와 높은 재구매 의향을 보인다면, 해당 집단의 특징을 추가로 분석할 근거가 될 수 있습니다.

보고 문장 예시

변수 50개로 측정한 고객 180명을 UMAP(n_neighbors = 15, min_dist = 0.1)으로 시각화한 결과 세 개의 덩어리가 관찰되었으며, perplexity 30의 t-SNE에서도 비슷한 구조가 유지되었다. 덩어리 ①은 구매 관련 변수의 평균이 2.11로 다른 덩어리(0.05, 1.18)보다 높았다. 다만 이는 탐색적 시각화 결과이므로, 고객 유형의 수와 경계는 군집분석과 다른 표본에서의 재현으로 추가 검토할 예정이다.

그러나 시각화에서 덩어리가 보인다는 사실만으로 고객 유형이 세 개라고 결론 내릴 수는 없습니다. 실제 집단을 구분하려면 클러스터링 분석이나 원래 변수의 비교 등 추가 검토가 필요합니다. 군집을 찾고 그 수를 정하는 방법은 「군집분석 가이드」에서 다룹니다.

SECTION 07

PCA · MDS와는 어떻게 다를까?

세 방법 모두 데이터를 저차원 공간에 표현할 수 있지만, 무엇을 보존하려고 하는지가 다릅니다.

방법출발점주로 보존하려는 것적합한 활용
PCA원래 변수들의 분산 구조가능한 한 많은 분산주요 변수를 요약하고 전체적인 변동을 파악
MDS대상 간 거리 또는 비유사성입력된 거리 관계브랜드나 제품 사이의 인식상 거리 표현
t-SNE고차원 데이터의 이웃 관계국소적인 이웃 관계복잡한 데이터의 국소적 패턴 탐색
UMAP고차원 데이터의 이웃 구조국소적 구조와 일부 전체 구조대규모 데이터의 패턴 탐색과 시각화
요약 지표가 목적

여러 설문 문항을 소수의 요약 지표로 바꾸려면 PCA (05장)

대상 간 거리 지도

브랜드 사이의 유사성을 지도로 나타내려면 MDS (09장)

고객 패턴 탐색

수십 개 변수의 고객 데이터에서 가까운 관측값들의 패턴을 보려면 t-SNE · UMAP

SECTION 08

사용 시 주의할 점

이 가운데 세 가지를 직접 확인해 보겠습니다.

실제 2차원 배치t-SNE 결과파랑은 좁고 주황은 넓음 · 초록은 훨씬 멀리세 덩어리의 크기도, 간격도 거의 같게 보임
그림 7. 실제 배치와 t-SNE 결과: 크기와 간격이 보존되지 않음

그림 7의 왼쪽 실제 배치에서 파랑은 좁게, 주황은 넓게 퍼져 있고, 초록은 다른 두 무리보다 훨씬 멀리 떨어져 있습니다. 그런데 t-SNE 결과(오른쪽)에서는 세 덩어리의 퍼진 정도가 거의 같고, 덩어리 사이 간격도 비슷합니다. 덩어리의 크기와 간격을 실제 차이의 크기로 읽으면 안 되는 이유입니다.

무작위 잡음의 PCA같은 잡음의 t-SNE (perplexity 3)구조가 전혀 없는 150 × 50 잡음인데도 작은 덩어리들이 보일 수 있음
그림 8. 구조가 없는 무작위 잡음의 PCA와 t-SNE

그림 8는 아무런 구조가 없는 무작위 잡음(150명 × 변수 50개)입니다. PCA로는 하나의 구름으로 보이지만, 작은 perplexity의 t-SNE에서는 작은 덩어리들이 생긴 것처럼 보입니다. 덩어리가 보인다는 사실만으로 집단이 있다고 판단할 수 없는 이유입니다.

시드 1시드 2같은 데이터 · 같은 설정, 무작위 초기화만 다름: 위치와 방향이 바뀜
그림 9. 같은 데이터 · 같은 설정에서 시드만 바꾼 t-SNE

그림 9은 데이터와 설정이 같고 무작위 초기화만 다릅니다. 덩어리의 위치와 방향이 달라지므로, 결과를 보고할 때는 시드와 설정을 함께 기록하고 여러 번 실행해 핵심 구조가 유지되는지 확인합니다. 특히 t-SNE와 UMAP은 주로 탐색적 시각화에 사용됩니다. 결과 그림만으로 가설 검정이나 인과관계 분석을 대신할 수는 없습니다.

✓ 핵심 정리

가까운 관측값을 가깝게 그려 고차원 데이터를 탐색합니다.


다음은 11 다변량 이상치와 거리입니다. 여러 변수의 관계를 함께 고려해 일반적인 관측값과 다른 데이터를 찾는 방법으로, 한 변수만 보면 정상처럼 보이지만 여러 변수의 조합에서는 이례적인 관측값을 찾아내는 마할라노비스 거리(Mahalanobis distance)를 중심으로 살펴봅니다.

KEY TAKEAWAYS

t-SNE와 UMAP은 고차원에서 가까운 관측값을 2차원에서도 가깝게 배치해 데이터의 구조를 탐색하게 해 줍니다. 결과는 perplexity, n_neighbors, min_dist와 초기화에 따라 달라지고, 덩어리의 크기와 간격은 실제 차이를 그대로 보여 주지 않습니다. 보이는 덩어리는 원래 변수, 여러 설정, 군집분석으로 확인해야 합니다.