클러스터 내에서 하위 그룹 효과를 찾기 전에 시끄러운 데이터 세트를 클러스터링하는 것이 편리한 응용 프로그램이 있습니다. 먼저 PCA를 살펴 봤지만 변동성의 90 %에 도달하기 위해서는 ~ 30 개의 구성 요소가 필요하므로 단지 몇 대의 PC에서 클러스터링하면 많은 정보가 버려집니다.
그런 다음 t-SNE (처음으로)를 시도했는데, 이는 k- 평균을 통한 군집화에 매우 적합한 2 차원의 이상한 모양을 제공합니다. 또한 결과로 클러스터 할당을 사용하여 데이터에서 임의 포리스트를 실행하면 원시 데이터를 구성하는 변수 측면에서 클러스터가 문제의 상황을 감안할 때 상당히 합리적인 해석을 할 수 있습니다.
그러나이 클러스터에 대해보고 할 경우 어떻게 설명합니까? 주성분의 K- 평균 군집은 데이터 세트에서 분산의 X %를 구성하는 파생 변수의 관점에서 서로 가까이있는 개인을 나타냅니다. t-SNE 클러스터에 대해 동등한 진술을 할 수 있습니까?
아마도 다음과 같은 효과가 있습니다.
t-SNE는 기본 고차원 매니 폴드에서 대략적인 연속성을 나타내므로, 고차원 공간의 저 차원 표현에 대한 군집은 인접 개인이 같은 군집에 있지 않을 가능성을 최대화합니다.
누구든지 그보다 더 나은 흐림을 제안 할 수 있습니까?
답변
t-SNE의 문제점은 거리 나 밀도를 유지하지 못한다는 것입니다. 그것은 가장 가까운 이웃을 보존합니다. 차이는 미묘하지만 밀도 또는 거리 기반 알고리즘에 영향을줍니다.
이 효과를 보려면 간단히 다변량 가우스 분포를 생성하십시오. 이것을 시각화하면 밀도가 높고 바깥쪽으로 훨씬 덜 밀집된 공이 생길 수 있습니다.
이제이 데이터에 대해 t-SNE를 실행하십시오. 보통 밀도가 다소 균일 한 원을 얻게됩니다. 난이도가 낮은 경우 약간 이상한 패턴이있을 수도 있습니다. 그러나 더 이상 특이점을 구분할 수는 없습니다.
이제 일을 더 복잡하게 만듭니다. 정규 분포에서 (-2,0)에 250 점을, 정규 분포에서 (+2,0)에 750 점을 사용합시다.
이것은 EM과 같은 쉬운 데이터 세트로 간주됩니다.
기본 복잡도 40으로 t-SNE를 실행하면 이상한 모양의 패턴이 나타납니다.
나쁘지 않지만 클러스터하기 쉽지 않은가? 여기서 원하는대로 정확하게 작동하는 클러스터링 알고리즘을 찾는 데 어려움을 겪을 것입니다. 그리고 사람에게이 데이터를 클러스터링하라고하더라도, 여기서는 2 개 이상의 클러스터를 찾을 것입니다.
20과 같이 너무 작은 난 반도로 t-SNE를 실행하면 존재하지 않는 패턴이 더 많이 나타납니다.
예를 들어 DBSCAN으로 클러스터링되지만 4 개의 클러스터가 생성됩니다. t-SNE는 “가짜”패턴을 생성 할 수 있습니다.
이 데이터 세트에 대한 최적의 난이도는 약 80 정도 인 것으로 보입니다. 그러나이 매개 변수가 다른 모든 데이터 세트에서 작동해야한다고 생각하지 않습니다.
이제 이것은 시각적으로 만족 스럽지만 분석에는 좋지 않습니다 . 인간 주석 자는 컷을 선택 하고 적절한 결과를 얻을 수 있습니다. 그러나이 매우 쉬운 시나리오에서도 k- 평균은 실패합니다 ! 밀도 정보가 손실 되었음을 알 수 있습니다 . 모든 데이터는 거의 동일한 밀도의 영역에있는 것으로 보입니다. 만약 우리가 대신에 당혹 성을 더 증가 시키면, 균일 성은 증가 할 것이고 분리는 다시 감소 할 것이다.
결론적으로, 시각화 에는 t-SNE를 사용 하고 시각적으로 좋은 것을 얻기 위해 다른 매개 변수를 사용해보십시오. 그러나 나중에 클러스터링을 실행하지 마십시오 . 특히 거리 또는 밀도 기반 알고리즘을 사용하지 마십시오.이 정보는 의도적으로 (!) 잃어버린. 이웃 그래프 기반 접근 방식은 괜찮을 수 있지만 먼저 t-SNE를 실행할 필요는 없습니다. t-SNE가이 nn- 그래프를 크게 유지하려고하기 때문에 이웃을 즉시 사용하십시오.
더 많은 예
이러한 예는 준비되었다 프리젠 테이션 (그러나 찾을 수없는 용지 에 나중에이 실험을했던 것처럼, 아직 용지)
에리히 슈베르트, 마이클 게르 츠
시각화 및 이상치 탐지를위한 본질적인 t-Stochastic Neighbor 임베딩 – 차원의 저주에 대한 해결책?
에서 : 독일 뮌헨에서 열린 유사성 검색 및 응용에 관한 제 10 차 국제 회의 (SISAP)의 절차. 2017 년
먼저이 입력 데이터가 있습니다.
당신이 짐작할 수 있듯이, 이것은 아이들을위한 “나를 컬러”이미지에서 파생됩니다.
SNE ( t-SNE 가 아니라 전임자)를 통해 이것을 실행하는 경우 :
와우, 우리 물고기는 꽤 바다 괴물이되었습니다! 커널 크기는 로컬에서 선택되므로 많은 밀도 정보가 손실됩니다.
그러나 t-SNE의 출력에 놀랄 것입니다.
실제로 두 가지 구현 (ELKI 및 sklearn 구현)을 시도했으며 둘 다 그러한 결과를 얻었습니다. 연결이 끊긴 일부 조각이지만 원래 데이터와 다소 일관성이있는 것으로 보입니다.
이것을 설명하는 두 가지 중요한 점 :
-
SGD는 반복적 개선 절차에 의존하며 지역 최적화에 갇힐 수 있습니다. 특히, 알고리즘이 미러 된 데이터의 일부를 “플립”하기가 어렵습니다. 분리해야하는 다른 지점을 통해 포인트를 이동해야하기 때문입니다. 따라서 물고기의 일부가 미러링되고 다른 부분이 미러링되지 않으면이 문제를 해결하지 못할 수 있습니다.
-
t-SNE는 투영 된 공간에서 t- 분포를 사용합니다. 정규 SNE에서 사용하는 가우시안 분포와 달리 입력 도메인에서는 0 선호도 (가우시안은 빠르게 0이 됨)이지만 출력 도메인에서는> 0 선호도가 있기 때문에 대부분의 점이 서로 격퇴 합니다. 때때로 (MNIST 에서처럼) 이것은 더 나은 시각화를 만듭니다. 특히, “분할”비트 데이터 세트 도움 이상의 입력 도메인을보다. 이러한 추가 반발은 또한 종종 포인트가 해당 영역을보다 고르게 사용하게하여 바람직 할 수도 있습니다. 그러나이 예에서는 반발 효과로 인해 실제로 물고기 조각이 분리됩니다.
우리는 (이 장난감 데이터 세트에서) 임의의 좌표 (일반적으로 t-SNE와 함께 사용) 대신 원래 좌표를 초기 배치로 사용하여 첫 번째 문제를 도울 수 있습니다 . 이번에는 sklearn 버전에 이미 초기 좌표를 전달하는 매개 변수가 있으므로 이미지가 ELKI 대신 sklearn입니다.
보시다시피, “완벽한”초기 배치에서도 t-SNE는 출력 도메인의 Student-t 반발이 입력의 가우스 친화력보다 강하기 때문에 원래 연결된 여러 위치에서 물고기를 “깨뜨립니다” 우주.
보시다시피, t-SNE (및 SNE도!)는 흥미로운 시각화 기술이지만 신중하게 처리해야합니다. 오히려 결과에 k- 평균을 적용하지 않을 것입니다! 결과가 심하게 왜곡되고 거리와 밀도가 잘 보존되지 않기 때문입니다. 대신 시각화에 사용하십시오.
답변
@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
). 여기에 내가 얻는 것은 왼쪽 레이블이없고 오른쪽은 지상 진실에 따라 채색되어 있습니다.
나는 레이블이없는 t-SNE 표현이 10 개의 클러스터를 제안한다고 주장합니다. 신중하게 선택된 매개 변수와 함께 HDBSCAN과 같은 우수한 밀도 기반 클러스터링 알고리즘을 적용하면 이러한 2D 데이터를 10 개의 클러스터로 클러스터링 할 수 있습니다.
누군가 위의 왼쪽 줄거리가 실제로 10 개의 클러스터를 제안한다고 의심하는 경우, 여기에 추가 max_iter=200
반복을 실행하는 “늦은 과장”트릭으로 얻는 것이 있습니다 exaggeration=4
(이 트릭은이 위대한 논문에서 제안됩니다 : https://arxiv.org /abs/1712.09005 ) :
이제 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를 더 믿는 경향이 있습니다. 또는 어쨌든, 나는 왜 그것을 덜 믿어야하는지 알지 못합니다 .
답변
https://distill.pub/2016/misread-tsne/에 표시된 것처럼 t-SNE는 큰 난관을 가지고 글로벌 토폴로지를 재구성 할 수 있다고 생각 합니다.
물고기 이미지에서 t-SNE에 대해 4000 포인트를 샘플링했습니다. 큰 당황 (2000)으로, 물고기 이미지는 사실상 재구성되었습니다.
답변
우리가 가지고있는 수학적 증거에 기초하여,이 방법은 기술적으로 거리를 보존 할 수 있습니다! 왜이 기능을 모두 무시합니까? t -SNE는 샘플 간의 고차원 유클리드 거리를 유사성을 나타내는 조건부 확률로 변환합니다. 나는 스펙트럼 클러스터링, 선호도 및 GMM 클러스터링 (밀도 기반 클러스터링 알고리즘입니다)을 포함한 다양한 합의 클러스터링 알고리즘과 병렬로 11,000 개 이상의 샘플 (게놈 학 맥락에서)으로 t- SNE를 시도했습니다 . 그 결과, 나는 두 가지 방법 사이에 매우 좋은 조화 된 결과를 발견 ( t-SNE 대 합의 클러스터링 알고리즘). t-SNE를 합의 클러스터링 알고리즘과 통합하면 기존의 로컬 및 글로벌 데이터 구조에 대한 최상의 증거를 제공 할 수 있다고 생각합니다.
답변
DBSCAN 클러스터링 알고리즘을 시도 할 수 있습니다. 또한 tsne의 난이도는 가장 작은 예상 클러스터와 크기가 같아야합니다.
답변
개인적으로, 나는 이것을 한 번 경험했지만 t-SNE 또는 PCA에서는 그렇지 않았습니다. 내 원래 데이터는 15 차원 공간에 있습니다. UMAP을 사용하여 2D 및 3D 임베딩으로 축소하여 2D 및 3D 플롯 모두에서 완벽하고 시각적으로 분리 가능한 2 개의 클러스터를 얻었습니다. 사실 너무 좋은. 그러나 지속성 다이어그램에서 원래 데이터를 “보았을 때”는 단지 2 개가 아닌 훨씬 더 “유의 한”클러스터가 있음을 깨달았습니다.
치수 축소 기술의 출력에 대한 클러스터링은 많은주의를 기울여 수행해야합니다. 그렇지 않으면 치수를 줄이면 피처 손실이 발생할 수 있기 때문에 해석이 매우 오도되거나 잘못 될 수 있습니다 (시끄러운 또는 실제 피처 일 수 있지만 우선 순위는 ‘ t) 알 수 있습니다. 내 의견으로는 다음과 같은 경우 클러스터를 신뢰 / 해석 할 수 있습니다.
-
투영 된 데이터의 군집은 선험적으로 정의 된 일부 분류 (MNIST 데이터 세트를 고려합니다.
-
지속성 다이어그램과 같은 다른 방법을 사용하여 원본 데이터에 이러한 클러스터가 있는지 확인할 수 있습니다. 연결된 구성 요소의 수만 계산하면 상당히 합리적인 시간 내에 수행 할 수 있습니다.