t-SNE 출력에 대한 클러스터링


78

클러스터 내에서 하위 그룹 효과를 찾기 전에 시끄러운 데이터 세트를 클러스터링하는 것이 편리한 응용 프로그램이 있습니다. 먼저 PCA를 살펴 봤지만 변동성의 90 %에 도달하기 위해서는 ~ 30 개의 구성 요소가 필요하므로 단지 몇 대의 PC에서 클러스터링하면 많은 정보가 버려집니다.

그런 다음 t-SNE (처음으로)를 시도했는데, 이는 k- 평균을 통한 군집화에 매우 적합한 2 차원의 이상한 모양을 제공합니다. 또한 결과로 클러스터 할당을 사용하여 데이터에서 임의 포리스트를 실행하면 원시 데이터를 구성하는 변수 측면에서 클러스터가 문제의 상황을 감안할 때 상당히 합리적인 해석을 할 수 있습니다.

그러나이 클러스터에 대해보고 할 경우 어떻게 설명합니까? 주성분의 K- 평균 군집은 데이터 세트에서 분산의 X %를 구성하는 파생 변수의 관점에서 서로 가까이있는 개인을 나타냅니다. t-SNE 클러스터에 대해 동등한 진술을 할 수 있습니까?

아마도 다음과 같은 효과가 있습니다.

t-SNE는 기본 고차원 매니 폴드에서 대략적인 연속성을 나타내므로, 고차원 공간의 저 차원 표현에 대한 군집은 인접 개인이 같은 군집에 있지 않을 가능성을 최대화합니다.

누구든지 그보다 더 나은 흐림을 제안 할 수 있습니까?


1
트릭은 축소 된 공간의 변수가 아닌 원래 변수를 기반으로 클러스터를 설명하는 것이라고 생각했을 것입니다.
Tim

1
그렇습니다. 그러나 클러스터 할당 알고리즘이 최소화하는 목표에 대한 간결하고 직관적 인 설명이 없으면 원하는 결과를 얻는 데 도움이되는 클러스터링 알고리즘을 선택해야 할 책임이 있습니다.
generic_user

1
t-SNE에 대한 몇 가지 경고와 멋진 영상은 distill.pub/2016/misread-tsne을 참조하십시오.
Tom Wenseleers

답변:


95

t-SNE의 문제점은 거리 나 밀도를 유지하지 못한다는 것입니다. 그것은 가장 가까운 이웃을 보존합니다. 차이는 미묘하지만 밀도 또는 거리 기반 알고리즘에 영향을줍니다.

이 효과를 보려면 간단히 다변량 가우스 분포를 생성하십시오. 이것을 시각화하면 밀도가 높고 바깥쪽으로 훨씬 덜 밀집된 공이 생길 수 있습니다.

이제이 데이터에 대해 t-SNE를 실행하십시오. 보통 밀도가 다소 균일 한 원을 얻게됩니다. 난이도가 낮은 경우 약간 이상한 패턴이있을 수도 있습니다. 그러나 더 이상 특이점을 구분할 수는 없습니다.

이제 일을 더 복잡하게 만듭니다. 정규 분포에서 (-2,0)에 250 점을, 정규 분포에서 (+2,0)에 750 점을 사용합시다.

입력 데이터

이것은 EM과 같은 쉬운 데이터 세트로 간주됩니다.

EM 클러스터링

기본 복잡도 40으로 t-SNE를 실행하면 이상한 모양의 패턴이 나타납니다.

t-SNE p = 40

나쁘지 않지만 클러스터하기 쉽지 않은가? 여기서 원하는대로 정확하게 작동하는 클러스터링 알고리즘을 찾는 데 어려움을 겪을 것입니다. 그리고 사람에게이 데이터를 클러스터링하라고하더라도, 여기서는 2 개 이상의 클러스터를 찾을 것입니다.

20과 같이 너무 작은 난 반도로 t-SNE를 실행하면 존재하지 않는 패턴이 더 많이 나타납니다.

t-SNE p = 20

예를 들어 DBSCAN으로 클러스터링되지만 4 개의 클러스터가 생성됩니다. t-SNE는 "가짜"패턴을 생성 할 수 있습니다.

이 데이터 세트에 대한 최적의 난이도는 약 80 정도 인 것으로 보입니다. 그러나이 매개 변수가 다른 모든 데이터 세트에서 작동해야한다고 생각하지 않습니다.

t-SNE p = 80

이제 이것은 시각적으로 만족 스럽지만 분석에는 좋지 않습니다 . 인간 주석 자는 컷을 선택 하고 적절한 결과를 얻을 수 있습니다. 그러나이 매우 쉬운 시나리오에서도 k- 평균은 실패합니다 ! 밀도 정보가 손실 되었음을 알 수 있습니다 . 모든 데이터는 거의 동일한 밀도의 영역에있는 것으로 보입니다. 만약 우리가 대신에 당혹 성을 더 증가 시키면, 균일 성은 증가 할 것이고 분리는 다시 감소 할 것이다.

결론적으로, 시각화 에는 t-SNE를 사용 하고 시각적으로 좋은 것을 얻기 위해 다른 매개 변수를 사용해보십시오. 그러나 나중에 클러스터링을 실행하지 마십시오 . 특히 거리 또는 밀도 기반 알고리즘을 사용하지 마십시오.이 정보는 의도적으로 (!) 잃어버린. 이웃 그래프 기반 접근 방식은 괜찮을 수 있지만 먼저 t-SNE를 실행할 필요는 없습니다. t-SNE가이 nn- 그래프를 크게 유지하려고하기 때문에 이웃을 즉시 사용하십시오.

더 많은 예

이러한 예는 준비되었다 프리젠 테이션 (그러나 찾을 수없는 용지 나중에이 실험을했던 것처럼, 아직 용지)

에리히 슈베르트, 마이클 게르 츠
시각화 및 이상치 탐지를위한 본질적인 t-Stochastic Neighbor 임베딩 – 차원의 저주에 대한 해결책?
에서 : 독일 뮌헨에서 열린 유사성 검색 및 응용에 관한 제 10 차 국제 회의 (SISAP)의 절차. 2017 년

먼저이 입력 데이터가 있습니다.

물고기

당신이 짐작할 수 있듯이, 이것은 아이들을위한 "나를 컬러"이미지에서 파생됩니다.

SNE ( t-SNE 가 아니라 전임자)를 통해 이것을 실행하는 경우 :

SNE 물고기

와우, 우리 물고기는 꽤 바다 괴물이되었습니다! 커널 크기는 로컬에서 선택되므로 많은 밀도 정보가 손실됩니다.

그러나 t-SNE의 출력에 놀랄 것입니다.

t-SNE 물고기

실제로 두 가지 구현 (ELKI 및 sklearn 구현)을 시도했으며 둘 다 그러한 결과를 얻었습니다. 연결이 끊긴 일부 조각이지만 원래 데이터와 다소 일관성이있는 것으로 보입니다.

이것을 설명하는 두 가지 중요한 점 :

  1. SGD는 반복적 개선 절차에 의존하며 지역 최적화에 갇힐 수 있습니다. 특히, 알고리즘이 미러 된 데이터의 일부를 "플립"하기가 어렵습니다. 분리해야하는 다른 지점을 통해 포인트를 이동해야하기 때문입니다. 따라서 물고기의 일부가 미러링되고 다른 부분이 미러링되지 않으면이 문제를 해결하지 못할 수 있습니다.

  2. t-SNE는 투영 된 공간에서 t- 분포를 사용합니다. 정규 SNE에서 사용하는 가우시안 분포와 달리 입력 도메인에서는 0 선호도 (가우시안은 빠르게 0이 됨)이지만 출력 도메인에서는> 0 선호도가 있기 때문에 대부분의 점이 서로 격퇴 합니다. 때때로 (MNIST 에서처럼) 이것은 더 나은 시각화를 만듭니다. 특히, "분할"비트 데이터 세트 도움 이상의 입력 도메인을보다. 이러한 추가 반발은 또한 종종 포인트가 해당 영역을보다 고르게 사용하게하여 바람직 할 수도 있습니다. 그러나이 예에서는 반발 효과로 인해 실제로 물고기 조각이 분리됩니다.

우리는 (이 장난감 데이터 세트에서) 임의의 좌표 (일반적으로 t-SNE와 함께 사용) 대신 원래 좌표를 초기 배치로 사용하여 첫 번째 문제를 도울 수 있습니다 . 이번에는 sklearn 버전에 이미 초기 좌표를 전달하는 매개 변수가 있으므로 이미지가 ELKI 대신 sklearn입니다.

초기화로 원래 좌표가있는 피쉬, t-SNE

보시다시피, "완벽한"초기 배치에서도 t-SNE는 출력 도메인의 Student-t 반발이 입력의 가우스 친화력보다 강하기 때문에 원래 연결된 여러 위치에서 물고기를 "깨뜨립니다" 우주.

보시다시피, t-SNE (및 SNE도!)는 흥미로운 시각화 기술이지만 신중하게 처리해야합니다. 오히려 결과에 k- 평균을 적용하지 않을 것입니다! 결과가 심하게 왜곡되고 거리와 밀도가 잘 보존되지 않기 때문입니다. 대신 시각화에 사용하십시오.


1
답변 해주셔서 감사합니다. 이웃 기반 적응 클러스터링 방법을 상상할 수 있지만 권장 할 수있는 잘 개발 된 특정 방법이 있습니까?
generic_user

1
CHAMAELEON이 아마도 가장 많이 인용되었지만 핵심 단계에 사용 가능한 바이너리 만있는 것 같습니다. 아이디어는 훌륭하게 들리지만 t-SNE가 표시하는 것과 동일한 효과를 빠르게 경험할 수 있습니다. p = 20에서 볼 수있는 것처럼 "집단"경향, 허브 및 허브 문제 등
Erich Schubert

2
@AlexR : Perplexity는 t-sne이 2D에서 일치시키려는 고차원 공간의 유사성을 계산하는 데 사용됩니다. 난처함을 바꾸는 것은 유사성을 바꾸는 것을 의미하므로, 결과 KL 발산을 비교하는 것이 어떻게 의미가 있는지 알 수 없습니다.
amoeba

1
@AlexR. "낮은 차원 공간의 조건부 확률 만 난이도에 달려 있습니다"-이 진술은 잘못되었습니다. 당황은 등식 (1)에 필요한 시그마를 선택하는 데 사용되므로 조건에 영향을 미칩니다. probs. 에서 전체 공간.
amoeba

1
t-SNE에 대한 몇 가지 경고와 멋진 영상은 distill.pub/2016/misread-tsne을 참조하십시오.
Tom Wenseleers

34

@ErichSchubert가 잘 주장하고 (+1) 고도로 반박 된 답변에 다소 반대 의견을 제시하고 싶습니다. Erich는 t-SNE 출력에서 ​​클러스터링을 권장 하지 않으며 오해의 소지가있는 장난감 사례를 보여줍니다. 그의 제안은 대신 원래 데이터에 클러스터링을 적용하는 것입니다.

시각화를 위해 t-SNE를 사용하고 시각적으로 즐거운 것을 얻기 위해 다른 매개 변수를 시도하십시오. 그러나 나중에 클러스터링을 실행하지 마십시오. 특히 거리 또는 밀도 기반 알고리즘을 사용하지 마십시오.이 정보는 의도적으로 손실되었습니다 (!).

t-SNE 출력이 오도 될 수있는 방법을 잘 알고 있으며 ( https://distill.pub/2016/misread-tsne/ 참조 ) 일부 상황에서 이상한 결과가 발생할 수 있음에 동의합니다.

그러나 실제 고차원 데이터를 고려해 봅시다.

MNIST 데이터 가져 오기 : 한 자리 이미지 70000 개. 우리는 데이터에 10 개의 클래스가 있다는 것을 알고 있습니다. 이 클래스는 인간 관찰자와 잘 분리 된 것으로 보입니다. 그러나 MNIST 데이터를 10 개의 클러스터로 클러스터링하는 것은 매우 어려운 문제입니다. 데이터를 10 개의 클러스터로 올바르게 클러스터링 하는 클러스터링 알고리즘을 알지 못합니다 . 더 중요한 것은 데이터에 10 개 (또는 그 이상)의 클러스터가 있음을 나타내는 클러스터링 휴리스틱에 대해 잘 모르는 것입니다. 가장 일반적인 접근 방식으로는이를 나타낼 수 없을 것이라고 확신합니다.

하지만 대신 t-SNE를하자. (MNIST 온라인에 적용된 t-SNE의 많은 수치를 찾을 수 있지만 종종 차선책입니다. 내 경험상 좋은 결과를 얻으려면 꽤 오랜 시간 동안 과장을해야합니다. 아래에서을 사용하고 있습니다 perplexity=50, max_iter=2000, early_exag_coeff=12, stop_lying_iter=1000). 여기에 내가 얻는 것은 왼쪽 레이블이없고 오른쪽은 지상 진실에 따라 채색되어 있습니다.

MNIST t-SNE

나는 레이블이없는 t-SNE 표현이 10 개의 클러스터를 제안한다고 주장합니다. 신중하게 선택된 매개 변수와 함께 HDBSCAN과 같은 우수한 밀도 기반 클러스터링 알고리즘을 적용하면 이러한 2D 데이터를 10 개의 클러스터로 클러스터링 할 수 있습니다.

누군가 위의 왼쪽 줄거리가 실제로 10 개의 클러스터를 제안한다고 의심하는 경우, 여기에 추가 max_iter=200반복을 실행하는 "늦은 과장"트릭으로 얻는 것이 있습니다 exaggeration=4(이 트릭은이 위대한 논문에서 제안됩니다 : https://arxiv.org /abs/1712.09005 ) :

늦게 과장된 MNIST t-SNE

이제 10 개의 클러스터가 있다는 것이 매우 분명합니다.

t-SNE 이후에 클러스터링을 생각하는 모든 사람들이 비슷한 결과를 얻을 수있는 클러스터링 알고리즘을 보여주는 것은 좋지 않은 생각입니다.

그리고 이제 더 많은 실제 데이터.

MNIST 사례에서 우리는 기본 진실을 알고 있습니다. 알 수없는 근거가있는 일부 데이터를 고려하십시오. 클러스터링 및 t-SNE는 단일 세포 RNA-seq 데이터에서 세포 가변성을 설명하기 위해 일상적으로 사용된다. 예를 들어 Shekhar et al. 2016 년 에는 27000 개의 망막 세포 사이에서 클러스터를 식별하려고 시도했습니다 (마우스 게놈에는 약 20k 개의 유전자가 있으므로 데이터의 차원은 원칙적으로 약 20k입니다. t-SNE를 수행하고 개별적으로 클러스터링 (복잡한 클러스터링 파이프 라인과 일부 클러스터 병합 등)을 수행합니다. 최종 결과는 기쁘게 보입니다.

여기에 이미지 설명을 입력하십시오

그것이 즐거워 보이는 이유는 t-SNE가 명확하게 구별되는 클러스터를 생성하고 클러스터링 알고리즘이 정확히 동일한 클러스터를 생성하기 때문입니다. 좋은.

그러나 보충 자료를 살펴보면 저자가 다양한 클러스터링 방법을 시도한 것을 알 수 있습니다. 예를 들어 큰 중앙 클러스터가 여러 하위 클러스터로 분할되기 때문에 t-SNE 플롯에서 많은 부분이 끔찍해 보입니다.

여기에 이미지 설명을 입력하십시오

클러스터의 수를 식별하기 위해 선호하는 휴리스틱과 함께 선호하는 클러스터링 알고리즘의 출력 또는 t-SNE 플롯에 표시되는 결과는 무엇입니까? 솔직히 말해서, t-SNE의 모든 단점에도 불구하고, 나는 t-SNE를 더 믿는 경향이 있습니다. 또는 어쨌든, 나는 왜 그것을 믿어야하는지 알지 못합니다 .


2
그리고 마지막 예제의 경우, 본질적으로 @ErichSchubert가 위에서 관찰 한 것이 아닌가 : 시각적으로 "유쾌한"결과를 얻을 수 있습니다. 당혹감과 마찬가지로 20? 그 tSNE는 분리되지 않은 (물고기에서와 같이) 분리 부분을 좋아합니까? 당신은 당신이 보는 클러스터가 실제로 별도의 클러스터라는 것을 알고 있습니까? 나는이 "블랙 박스"가 마음에 들지 않습니다. 그렇습니다. 우리 그러한 음모를 더 믿는 경향이 있습니다 .
Anony-Mousse 2018

1
tSNE는 NN 기반입니다. 이것과 합의가 예상됩니다. NN을 시각화하려면 tSNE를 사용하는 것이 좋습니다. 그것은 유사성을 잘 보존하지 못하므로 내가 이해하는 것처럼 조심스럽게 해석해야합니다. tSNE의 간격이 먼 거리를 의미하지는 않습니다.
Anony-Mousse 2018

1
+1 t-SNE와 비교하여 UMAP의 성능이 궁금합니다 .
Paul

1
@ 폴 : 저자는 계산 시간 측면에서 UMAP의 우수성을 주장합니다. MNIST 데이터 세트에서 UMAP은 t-SNE보다 더 나은 임베딩을 생성하지만 다른 데이터 세트는 확실하지 않습니다. 내가 아는 한, 최근에 가장 빠른 t-SNE보다 훨씬 빠른 CUDA 버전의 t-SNE가 있지만 설치 및 테스트를 할 수 없습니다.
SiXUlm

1
@SiXUlm github.com/KlugerLab/FIt-SNE 는 Barnes-Hut t-SNE보다 훨씬 빠르게 작동 하며 UMAP보다 빠릅니다 . 또한 많은 경우에 약간의 추가 조정을 사용하여 t-SNE로 매우 유사한 임베딩을 달성 할 수 있습니다. 예를 들어 MNIST에서 작은 과장을 가진 t-SNE는 UMAP과 거의 동일한 결과를 얻습니다. FIt-SNE 저장소의 Python 노트북 예를 참조하십시오.
amoeba

6

https://distill.pub/2016/misread-tsne/에 표시된 것처럼 t-SNE는 큰 난관을 가지고 글로벌 토폴로지를 재구성 할 수 있다고 생각 합니다.

물고기 이미지에서 t-SNE에 대해 4000 포인트를 샘플링했습니다. 큰 당황 (2000)으로, 물고기 이미지는 사실상 재구성되었습니다.

원본 이미지는 다음과 같습니다. 원본 이미지

여기에 난수 = 2000 인 t-SNE로 재구성 된 이미지가 있습니다. t-SNE 재구성 이미지 (perplexity = 2000)


8
그런 고난도를 선택하면 더 이상 tSNE가 아닙니다. 모든 요점은 대략 매일 이웃입니다. 더 이상 지역이 아닙니다. 예, 2d 이미지는 2d이므로 대략 재구성 할 수 있습니다. 그러나 모든 일을 전혀하지 않는 것이 더 쉽습니다.
Anony-Mousse 2018

1
내 의견은 큰 혼란이있는 tSNE가 글로벌 토폴로지를 재구성 할 수 있다는 것입니다. 2D 이미지는 고유 치수가 2이기 때문에 예입니다. tSNE를 실제로 적용하려면 로컬 또는 전역 특성을 포착하기위한 목적에 따라 적절한 난반을 선택해야합니다.
renxwise

1
이 난이도는 너무 큰 "커널"을 사용하고 효과적으로 거리를 사용한다는 것을 의미합니다. 그런 다음 대략적이고 매우 비싼 MDS로 변질 될 가능성이 있습니다. 그런 다음 MDS를 사용하십시오. SNE / tSNE는 실제로 작은 난관 및 지역 이웃과 함께 사용해야합니다 .
Erich Schubert

3
바로 그거죠. 복잡성이 충분히 클 때, tSNE는 실제로 MDS에 근사하며, 이는 tSNE가 또한 전체 구조를 포착 할 수 있음을 나타낸다. 따라서 tSNE가 로컬 구조 만 캡처 할 수 있다는 진술은 정확하지 않습니다. MDS와는 달리, tSNE는 복잡한 선택을 통해 로컬 및 글로벌 구조 간의 균형을 맞출 수 있습니다. 당연히 선택의 어려움은 데이터 셋에 따라 다릅니다.
renxwise

그럴듯한 난처함을 선택하는 경험 법칙이 있습니까?
Catbuilts

5

우리가 가지고있는 수학적 증거에 기초하여,이 방법은 기술적으로 거리를 보존 할 수 있습니다! 왜이 기능을 모두 무시합니까? t -SNE는 샘플 간의 고차원 유클리드 거리를 유사성을 나타내는 조건부 확률로 변환합니다. 나는 스펙트럼 클러스터링, 선호도 및 GMM 클러스터링 (밀도 기반 클러스터링 알고리즘입니다)을 포함한 다양한 합의 클러스터링 알고리즘과 병렬로 11,000 개 이상의 샘플 (게놈 학 맥락에서)으로 t- SNE를 시도했습니다 . 그 결과, 나는 두 가지 방법 사이에 매우 좋은 조화 된 결과를 발견 ( t-SNE 대 합의 클러스터링 알고리즘). t-SNE를 합의 클러스터링 알고리즘과 통합하면 기존의 로컬 및 글로벌 데이터 구조에 대한 최상의 증거를 제공 할 수 있다고 생각합니다.


t-SNE의 거리 보존 가능성에 영향을 미치는 매개 변수가 있습니까?
Keith Hughitt

그것들은 합의 클러스터링 알고리즘이 아닙니다. 합의 클러스터링은 최종 클러스터링 결과를 얻기 위해 매개 변수 또는 입력 데이터의 일부 변형으로 클러스터링 알고리즘 반복 결과를 집계하는 일종의 엔 셈블 학습입니다. 스펙트럼 클러스터링 또는 GMM 또는 실제로 클러스터링 알고리즘과 함께 합의 클러스터링 접근 방식을 사용할 수 있지만 용어에 대한 요점은 약간 다릅니다.
Christopher John

1

DBSCAN 클러스터링 알고리즘을 시도 할 수 있습니다. 또한 tsne의 난이도는 가장 작은 예상 클러스터와 크기가 같아야합니다.


0

개인적으로, 나는 이것을 한 번 경험했지만 t-SNE 또는 PCA에서는 그렇지 않았습니다. 내 원래 데이터는 15 차원 공간에 있습니다. UMAP을 사용하여 2D 및 3D 임베딩으로 축소하여 2D 및 3D 플롯 모두에서 완벽하고 시각적으로 분리 가능한 2 개의 클러스터를 얻었습니다. 사실 너무 좋은. 그러나 지속성 다이어그램에서 원래 데이터를 "보았을 때"는 단지 2 개가 아닌 훨씬 더 "유의 한"클러스터가 있음을 깨달았습니다.

치수 축소 기술의 출력에 대한 클러스터링은 많은주의를 기울여 수행해야합니다. 그렇지 않으면 치수를 줄이면 피처 손실이 발생할 수 있기 때문에 해석이 매우 오도되거나 잘못 될 수 있습니다 (시끄러운 또는 실제 피처 일 수 있지만 우선 순위는 ' t) 알 수 있습니다. 내 의견으로는 다음과 같은 경우 클러스터를 신뢰 / 해석 할 수 있습니다.

  • 투영 된 데이터의 군집은 선험적으로 정의 된 일부 분류 (MNIST 데이터 세트를 고려합니다.

  • 지속성 다이어그램과 같은 다른 방법을 사용하여 원본 데이터에 이러한 클러스터가 있는지 확인할 수 있습니다. 연결된 구성 요소의 수만 계산하면 상당히 합리적인 시간 내에 수행 할 수 있습니다.


왜 "지속성 다이어그램"을 UMAP보다 신뢰합니까? 지속성 다이어그램을 보는 것이 "원본 데이터를 보는 것"으로 설명 될 수 있다고 생각하지 않습니다 ...
amoeba

당신이 올바른지. 퍼시스턴스 다이어그램은 원래 데이터의 일부 특성, 가장 자주 연결된 구성 요소, 1 차원 구멍 및 값 비싼 계산으로 인해 훨씬 ​​더 희귀 한 2 차원 이상의 구멍을 보여줍니다. 따라서 해당 지속성 다이어그램을 보면 원본 데이터를 부분적으로 만 "볼 수"있습니다. 그러나이 지속성 다이어그램은 원본 데이터에서 직접 작성 되었기 때문에 관찰 한 내용을 신뢰할 수 있습니다.
SiXUlm

반대로 UMAP 또는 다른 차원 축소 기술을 사용하면 원본 데이터의 투영 / 수정 버전 만 사용할 수 있습니다. 가장 투표가 많은 답변이 지적했듯이 클러스터링은 매개 변수 선택에 따라 다를 수 있습니다.
SiXUlm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.