最近傍はt-SNEで意味がありますか?


10

ここでの回答は、t-SNEの次元は無意味であり、ポイント間距離は類似性の尺度ではないと述べています。

しかし、t-SNE空間での最近傍に基づくポイントについて何か言えるでしょうか。まったく同じポイントがクラスター化されていない理由に対するこの回答は、ポイント間の距離の比率が低次元表現と高次元表現で類似していることを示唆しています。

たとえば、次の画像は、私のデータセットの1つ(15クラス)のt-SNEを示しています。

cro 479(右上)は異常値と言えるでしょうか?されるfra 1353(左下)に似ているcir 375では他の画像よりもfra、クラス、など?または、これらは単なるアーティファクトである可能性があります。たとえばfra 1353、いくつかのクラスターの反対側で立ち往生し、他のfraクラスに強制的に進むことができませんでしたか?

ここに画像の説明を入力してください



回答:


8

いいえ、そうである必要はありませんが、これは複雑な方法でT-SNEの目標です。

答えの要点に入る前に、数学と直感の両方でいくつかの基本的な定義を見てみましょう。

RdX1,...,XnRdxRd||X1x||...||Xnx||Rd

dyxddd+k。したがって、私たちは直感を持っています。つまり、距離はさまざまな次元で維持され、少なくともそれが私たちの目標です。数学でそれを正当化しようとしましょう。

pj|i=exp(||xjxi||22σ2)kiexp(||xjxi||22σ2)Rk

最後に、この概念も実証するきちんとしたコーディング例です。

from sklearn.manifold import TSNE
from sklearn.neighbors import KNeighborsClassifier
X = [[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]]
y = [0,1,2,3,4,5,6,7,8,9]
neighs = KNeighborsClassifier(n_neighbors=3)
neighs.fit(X, y)
X_embedded = TSNE(n_components=1).fit_transform(X)
neighs_tsne = KNeighborsClassifier(n_neighbors=3)
neighs_tsne.fit(X_embedded, y)
print(neighs.predict([[1.1]]))
>>>[0]
print(neighs_tsne.predict([[1.1]]))
>>>[0]

これは非常に単純な例であり、複雑さを反映していませんが、いくつかの簡単な例を実験することで機能します。

編集:また、質問自体に関していくつかのポイントを追加しますので、これが事実である必要はありませんが、数学を通じてそれを合理化すると、具体的な結果がないことを証明します(明確なはいまたはいいえ) 。

これにより、TSNEに関する懸念の一部が解消されたことを願っています。


良い答えをありがとう。要約すると、類似性が高いポイントは、近くに留まる可能性が高くなります。perplexityパラメーターが確率計算に使用されるポイントの数を制御するため、perplexityが低い場合にクラスターがばらばらになる可能性があると思います。初期の誇張についてコメントできますか?また、TSNEスペースを使用してポイントが異常値または誤って分類された(すべてのNNが別のクラスにある)確率は、ランダムな初期化を使用した複数のTSNEの後で一貫している場合に増加すると思いますか?
geometrikal

はい、困惑度は、ポイントが互いにどの程度接近しているかに影響を与える主要な要素の1つです。初期の誇張は、直感的に、元の空間でのクラスターの密集度と、埋め込み空間でそれらの間にどのくらいのスペースが存在するかです(したがって、ポイント間の距離に影響を与えるのは、複雑さと初期の誇張の両方の混合です。最後の質問に関して、答えこれが原因で埋め込む空間での問題を引き起こす可能性がノルムの累乗、である、そうであるので、誤分類の可能性があります。
PSUB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.