연속 및 이진 변수가 혼합 된 t-SNE


10

현재 t-SNE를 사용하여 고차원 데이터의 시각화를 조사하고 있습니다. 이진 및 연속 변수가 혼합 된 일부 데이터가 있으며 이진 데이터를 너무 쉽게 클러스터링하는 것처럼 보입니다. 물론 이것은 스케일 된 (0과 1 사이) 데이터에 대해 예상됩니다. 유클리드 거리는 이진 변수 사이에서 항상 가장 크거나 작습니다. t-SNE를 사용하여 혼합 이진 / 연속 데이터 세트를 어떻게 처리해야합니까? 이진 열을 삭제해야합니까? metric우리가 사용할 수 있는 다른 것이 있습니까?

예를 들어이 파이썬 코드를 고려하십시오.

x1 = np.random.rand(200)
x2 = np.random.rand(200)
x3 = np.r_[np.ones(100), np.zeros(100)]

X = np.c_[x1, x2, x3]

# plot of the original data
plt.scatter(x1, x2, c=x3)
# … format graph

내 원시 데이터는 다음과 같습니다.

raw_data

여기서 색상은 세 번째 피처 (x3)의 값입니다. 3D에서 데이터 포인트는 두 평면 (x3 = 0 평면 및 x3 = 1 평면)에 있습니다.

그런 다음 t-SNE를 수행합니다.

tsne = TSNE() # sci-kit learn implementation
X_transformed = StandardScaler().fit_transform(X)
tsne = TSNE(n_components=2, perplexity=5)
X_embedded = tsne.fit_transform(X_transformed)

결과 플롯과 함께 :

tsne_data

데이터는 물론 x3에 의해 클러스터됩니다. 내 직감은 이진 피처에 대한 거리 메트릭이 잘 정의되어 있지 않기 때문에 t-SNE를 수행하기 전에이를 제거해야한다는 점입니다. 이러한 피처는 클러스터 생성에 유용한 정보를 포함 할 수 있으므로 부끄러운 일입니다.


1
참고 : 나는 이것에 대한 의견을 듣고 여전히이 공간에 UMAP의 적용 가능성에 관심이 있습니다.
FChm

현상금에 대한 감사, 다시 여전히 관심이 있지만 공정하기 위해 이것을 조사하는 데 많은 시간을 소비하지 않았습니다. 오늘 약간의 초기 조사를 수행 할 시간이있을 수 있으며 해당되는 경우 업데이트를 추가 할 것입니다.
FChm

2
실제로이 문제가 발생했습니다. 나는 그것이 tSNE에만 국한된 것이 아니라 거리 기반의 감독되지 않은 학습 알고리즘 (클러스터링 포함)에 동일하게 영향을 줄 것이라고 생각합니다. 또한 적절한 솔루션은 바이너리 기능이 무엇을 나타내는 지, 그리고 그것이 얼마나 중요한지 전문가의 판단에 크게 좌우 될 것이라고 생각합니다. 그래서 나는 다양한 가능한 상황에 대해 토론 할 답을 찾고 있습니다. 나는 여기에 하나의 크기에 맞는 솔루션이 없다고 확신합니다.
amoeba

답변:


8

면책 조항 : 나는 주제에 대한 탄젠트 지식 만 가지고 있지만 아무도 대답하지 않았으므로 시도해 볼 것입니다

거리가 중요하다

거리 (tSNE, UMAP, MDS, PCoA 및 기타)를 기반으로하는 모든 차원 축소 기술은 사용하는 거리 측정법만큼 좋습니다. @amoeba가 올바르게 지적했듯이 모든 규모의 솔루션이 될 수는 없습니다. 데이터에서 중요하다고 생각되는 것을 캡처하는 거리 측정법이 필요합니다. 다른 거리가 큰 것을 고려하십시오.

좋은 거리 측정법을 어떻게 선택합니까? 먼저 약간의 기분 전환을하겠습니다.

안수

현대 머신 러닝 시대가 오기 전에, 지역 사회 생태 학자 (그리고 아마도 다른 사람들도)는 다차원 데이터의 탐색 적 분석을위한 훌륭한 음모를 만들려고 노력했습니다. 그것들은 과정 안수 라고 부르며, 적어도 70 년대로 거슬러 올라가 오늘날에도 여전히 생태학 문헌에서 검색하는 데 유용한 키워드입니다.

중요한 점은 생태 학자들이 매우 다양한 데이터 세트를 가지고 있으며 이진, 정수 및 실제 가치 기능 (예 : 종의 유무, 관찰 된 표본 수, pH, 온도)의 혼합물을 처리한다는 것입니다. 그들은 법령이 잘 작동하도록 거리와 변화에 대해 많은 시간을 보냈습니다. 나는이 분야를 잘 이해하지 못하지만, 예를 들어 Legendre and De Cáceres Beta 다양성에 의한 커뮤니티 데이터의 변화에 대한 리뷰 : 비 유사성 계수 및 파티셔닝 은 체크 아웃하려는 가능한 거리의 압도적 인 수를 보여줍니다.

다차원 스케일링

안수를위한 도구는 다차원 스케일링 (MDS), 특히 t-SNE 외에 시도해 볼 것을 권장하는 비 메트릭 변형 (NMDS)입니다. 파이썬 세계에 대해서는 잘 모르지만 패키지 metaMDS기능의 R 구현은 vegan많은 트릭을 수행합니다 (예 : 비슷한 두 가지를 찾을 때까지 여러 번 실행).

이것은 논쟁의 여지가 있습니다. 의견을보십시오. MDS의 장점 중 하나는 피쳐 (열)도 투영하므로 치수 축소를 유도하는 피쳐를 확인할 수 있다는 것입니다. 이를 통해 데이터를 해석하는 데 도움이됩니다.

t-SNE는 이러한 함정에 대한 탐색을 이해하는 데 도움이되는 도구로 비난을 받았다는 점을 명심 하십시오. UMAP가 일부 문제를 해결한다고 들었지만 UMAP에 대한 경험은 없습니다. 또한 생태 학자들이 NMDS를 사용하는 이유는 문화와 관성, UMAP 또는 t-SNE가 실제로 더 나은 이유를 의심하지 않습니다. 나는 솔직히 모른다.

자신의 거리를 롤아웃

데이터의 구조를 이해하면 기성품 거리 및 변환이 가장 적합하지 않을 수 있으며 사용자 정의 거리 메트릭을 구축 할 수 있습니다. 데이터가 무엇을 나타내는 지 알지 못하지만 실제 값 변수 (예 : 유클리드 거리를 사용하는 경우)와 이진 변수에 대해 거리를 별도로 계산하고 추가하는 것이 합리적 일 수 있습니다. 이진 데이터의 일반적인 거리는 예를 들어 Jaccard 거리 또는 Cosine 거리 입니다. Jaccard와 Cosine 모두에 값이 있으므로 거리에 대한 곱셈 계수에 대해 생각해야 할 수도 있습니다.[0,1] 유클리드 거리의 크기는 피처 수를 반영하는 반면 피처 수에 관계없이

주의의 말

튜닝 할 노브가 너무 많기 때문에 원하는 것을 볼 때까지 튜닝 함정에 쉽게 빠질 수 있습니다. 탐색 적 분석에서 완전히 피하기는 어렵지만 조심해야합니다.


1
+1. 여기에 많은 좋은 점이 있으며, 나는 오래된 "선언"문학에 대한 언급을 좋아한다. "MDS의 장점 중 하나는 특징 (열)도 투영하므로 치수 축소를 유도하는 특징을 볼 수 있다는 것입니다."라고 확신합니까? 내가 이해하는 한 사실이 아닙니다. 적어도 t-SNE보다 MDS에 대해서는 사실이 아닙니다.
amoeba

@amoeba 이것은 나의 제한된 지식이 들어오는 곳이다 :-) 내가 아는 metaMDS전부는 샘플과 피처 를 플롯 하기위한 기본 플로팅 방법 이라는 것이다. intro-vegan.pdf )
Martin Modrák

답변과 통찰력에 감사드립니다. 나는 이제 UMAP에 더 집중하고 있으며 Jaccard 거리와 같은 유사성 측정법을 정의하면 혼합 변수 유형을 처리하는 좋은 방법 일 것입니다. MDS를 사용하지 않았지만 알고 있습니다. 유용하다면 이해하는데 시간을 보내야 할 것입니다.
FChm

1
@ MartinModrák 정확히 vegan패키지가 무엇을 하고 있는지 모르겠지만 MDS / NMDS는 비선형적이고 비모수 적 방법 (정확히 t-SNE)이며 원래 기능을 MDS 치수에 일치시키는 "내부"방법이 없습니다. 원래의 피쳐와 MDS 치수 간의 상관 관계를 계산한다고 상상할 수 있습니다. 그렇다면, 이것은 t-SNE를 포함한 모든 임베딩에 대해 수행 될 수있다. 정확히 무엇을하는지 아는 것이 흥미로울 것 vegan입니다.
amoeba
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.