t-SNEの出力のクラスタリング


78

ノイズの多いデータセットをクラスター化してからクラスター内のサブグループ効果を探すのに便利なアプリケーションがあります。私は最初にPCAを調べましたが、変動の90%に達するには約30のコンポーネントが必要なので、わずか数台のPCでクラスタリングを行うと多くの情報が失われます。

次に、t-SNEを(初めて)試しました。これにより、2次元で奇妙な形が得られ、k-meansを介したクラスタリングに非常に適しています。さらに、結果としてクラスター割り当てを使用してデータでランダムフォレストを実行すると、生データを構成する変数の観点から、問題のコンテキストを考慮して、クラスターがかなり賢明な解釈を持つことがわかります。

しかし、これらのクラスターについてレポートする場合、どのように説明しますか?主成分のK-meansクラスターは、データセットの分散のX%を構成する派生変数に関して、互いに近い個人を明らかにします。t-SNEクラスターについて、同等のステートメントを作成できますか?

おそらく次の効果があります:

t-SNEは、基礎となる高次元多様体の近似的な連続性を明らかにするため、高次元空間の低次元表現上のクラスターは、隣接する個人が同じクラスターに存在しない「尤度」を最大化します

誰もがそれよりも良い宣伝文句を提案できますか?


1
トリックは、縮小されたスペースの変数ではなく、元の変数に基づいてクラスターを記述することだと思っていたでしょう。
ティム

1
正しいが、クラスター割り当てアルゴリズムが最小化する目的の簡潔で直感的な説明がないため、必要な結果を得るのを容易にするクラスター化アルゴリズムを選択する責任があります。
generic_user

1
t-SNEの注意事項と素晴らしいビジュアルについては、distill.pub / 2016 / misread
トムウェンセリアーズ

回答:


96

t-SNEの問題は、距離も密度も保持しないことです。ある程度だけ、最近傍を保存します。違いはわずかですが、密度ベースまたは距離ベースのアルゴリズムに影響します。

この効果を確認するには、多変量ガウス分布を生成するだけです。これを視覚化すると、外側に向かって密度が高く、密度がはるかに低くなるボールがあります。いくつかの外れ値は実際には遠くにある可能性があります。

次に、このデータに対してt-SNEを実行します。通常、かなり均一な密度の円が得られます。低いパープレキシティを使用する場合、そこに奇妙なパターンがあるかもしれません。しかし、もはや外れ値を実際に区別することはできません。

次に、物事をより複雑にします。(-2,0)の正規分布で250ポイント、(+ 2,0)の正規分布で750ポイントを使用してみましょう。

入力データ

これは、EMなどの簡単なデータセットであると想定されています。

EMクラスタリング

デフォルトのperplexityを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-meansは失敗します密度情報が失われていることはすでに確認できています。すべてのデータはほぼ同じ密度の領域に存在しているようです。代わりに、さらに複雑さを増やすと、均一性が向上し、分離が再び減少します。

結論として、視覚化はt-SNEを使用し(そして視覚的に心地よいものを得るために異なるパラメーターを試してください!)、むしろクラスタリングを実行せず、特にこの情報が意図的であるため(距離)または密度ベースのアルゴリズムを使用しない失った。近隣グラフベースのアプローチは問題ないかもしれませんが、最初にt-SNEを事前に実行する必要はありません。すぐに近隣を使用するだけです(t-SNEはこのnn-graphをほぼそのまま維持しようとするため)。

その他の例

これらの例は、論文のプレゼンテーション用に準備されました(ただし、後でこの実験を行ったため、まだ論文に記載さていません)

エーリッヒ・シューベルト、マイケル・ゲルツ。
可視化と外れ値検出のための組み込みt-Stochastic Neighbor埋め込み-次元の呪いに対する対策?
In:類似検索およびアプリケーションに関する第10回国際会議(SISAP)の議事録、ドイツ、ミュンヘン。2017年

まず、次の入力データがあります。

魚

ご想像のとおり、これは子供向けの「カラーミー」画像から派生しています。

これをSNEで実行する場合(t-SNEではなく、前身):

SNEの魚

うわー、私たちの魚はかなり海の怪物になりました!カーネルサイズはローカルで選択されるため、密度情報の多くは失われます。

しかし、t-SNEの出力には本当に驚くでしょう。

t-SNEの魚

私は実際に2つの実装(ELKIおよびsklearn実装)を試しましたが、両方ともそのような結果を生み出しました。切断されたフラグメントもありますが、それぞれが元のデータとある程度一致しているように見えます。

これを説明する2つの重要なポイント:

  1. SGDは反復的な改良手順に依存しているため、局所的な最適化にとどまる可能性があります。特に、これにより、アルゴリズムが、ミラーリングされたデータの一部を「フリップ」することが難しくなります。これは、分離されるはずの他のポイントを移動するポイントを必要とするためです。そのため、魚の一部がミラーリングされており、他の部分がミラーリングされていない場合、これを修正できない可能性があります。

  2. t-SNEは、投影された空間のt分布を使用します。通常のSNEで使用されるガウス分布とは対照的に、これは、入力ドメインではアフィニティが0(ガウスはすぐにゼロになります)ですが、出力ドメインではアフィニティが0を超えるため、ほとんどのポイントが互いに反発することを意味します。時には(MNISTのように)これにより、より良い視覚化が行われます。特に、入力ドメインよりも少し多くデータセットを「分割」するのに役立ちます。この追加の反発により、ポイントがエリアをより均等に使用するようになることもよくあり、これも望ましい場合があります。しかし、この例では、忌避効果によって実際に魚の断片が分離されます。

ランダムな座標(通常t-SNEで使用される)ではなく、元の座標を初期配置として使用することにより、(このおもちゃのデータセットで)最初の問題を解決できます。今回は、画像はELKIではなくsklearnです。sklearnバージョンには、初期座標を渡すためのパラメーターが既に含まれているためです。

魚、t-SNE、初期化として元の座標

ご覧のとおり、「完全な」初期配置でも、出力ドメインのスチューデントt反発力は入力のガウスアフィニティよりも強いため、t-SNEは元々接続されていた多くの場所で魚を「破壊」します。スペース。

ご覧のとおり、t-SNE(およびSNEも!)は興味深い視覚化手法ですが、慎重に扱う必要があります。結果にk-meansを適用したくありません!結果が大きく歪むため、距離も密度も適切に保持されないためです。代わりに、視覚化に使用してください。


1
答えてくれてありがとう。近隣ベースの適応クラスタリング手法を想像できますが、推奨できる特定のよく開発された手法はありますか?
generic_user

1
CHAMAELEONはおそらく最も引用されていますが、コアステップで使用できるバイナリのみがあるようです。アイデアはいいように聞こえますが、t-SNEが目に見えるようにするのと同じ効果をすぐに体験できます。p = 20で見られる「群がる」傾向、ハブとアンチハブの問題など
エーリッヒシューベルト

2
@AlexR:Perplexityは、t-sneが2Dでマッチングしようとしている高次元空間の類似性を計算するために使用されます。困惑を変えるということは、類似性を変えることを意味するので、結果として生じるKLの相違をどのように比較することが意味があるのか​​わかりません。
アメーバは、モニカを復活させる

1
@AlexR。「低次元空間の条件付き確率のみが当惑に依存します」-この記述は間違っています。perplexityは、eq(1)に必要なシグマを選択するために使用されるため、condに影響します。問題 でいっぱいのスペース。
アメーバは、モニカを復活させる

1
t-SNEの注意事項と素晴らしいビジュアルについては、distill.pub / 2016 / misread
トムウェンセリアーズ

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データの細胞変動を記述するために日常的に使用されます。例えば、シェカーら。2016年は27000個の網膜細胞のクラスターを特定しようとしました(マウスゲノムには約2万個の遺伝子があるため、データの次元数は原則として約2万個ですが、通常はPCAの次元数を50程度に減らすことから始めます)。それらはt-SNEを行い、別々にクラスタリング(複雑なクラスタリングパイプラインとそれに続くいくつかのクラスターマージなど)を行います。最終結果は楽しいようです:

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

とても楽しいように見える理由は、t-SNEが明確に異なるクラスターを生成し、クラスタリングアルゴリズムがまったく同じクラスターを生成するためです。いいね

ただし、補足資料を見ると、著者がさまざまなクラスタリング手法を試していることがわかります。それらの多くは、たとえば大きな中央クラスターが多くのサブクラスターに分割されるため、t-SNEプロットではひどく見えます。

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

それでは、あなたは何を信じますか?お気に入りのクラスタリングアルゴリズムの出力と、クラスターの数を特定するためのお気に入りのヒューリスティック、またはt-SNEプロットに表示されるものは何でしょうか?正直に言うと、t-SNEのすべての欠点にもかかわらず、私はt-SNEをもっと信じる傾向があります。またはいずれにせよ、私はなぜそれを信じる必要が少ないのかわかりません。


2
最後の例では、本質的に@ErichSchubertが上記で観察したことではありません。視覚的に「楽しい」結果を得ることができます-それは明らかに間違っていますか?perplexity 20と同様に?tSNEは、分離されていない部分(魚のように)を分離するのが好きですか?それで、あなたが見るクラスターが本当に別々のクラスターであることを知っていますか?私はそこにこの「ブラックボックス」が好きではありません。はい、私たちはそのようなプロットをもっと信じる傾向がありますが、それが間違っている場合はどうなりますか?
アノニムース

1
まあ、tSNEはNNベースです。これとの合意が予想されます。tSNEは、NNを視覚化するのに適しています。ただし、類似性は十分に保持されないため、理解できるように注意して解釈する必要があります。tSNEのギャップは、大きな距離を意味するものではありません。
アノニムース

1
+1 t-SNEと比較したUMAPのパフォーマンスに興味があります。
ポール

1
@Paul:著者は、計算時間に関して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で非常に類似した埋め込みを実現できます。
アメーバは、モニカを

6

https://distill.pub/2016/misread-tsne/に示されているように、t-SNEは大規模なパープレキシティでグローバルトポロジを再構築できると思います

魚の画像から、t-SNEの4000ポイントをサンプリングしました。大きな混乱(2000)により、魚の画像は仮想的に再構築されました。

これが元の画像です。 元の画像

これは、perplexity = 2000のt-SNEによって再構築された画像です。 t-SNE再構成画像(複雑度= 2000)


8
このような高い複雑さを選択すると、実際にはtSNEではなくなります。すべてのポイントはほぼ毎日の隣人です。もはやローカルではありません。はい、2Dであるため、2D画像はほぼ再構築できます。しかし、全体をまったく行わないほうが簡単です。
アノニムース

1
私の意見では、大混乱を伴うtSNEはグローバルトポロジを再構築できます。2D画像は、その本質的な次元が2であるため、例です。tSNEの実際のアプリケーションは、ローカルまたはグローバルな特性をキャプチャする目的に応じて適切なパープレキシティを選択する必要があります。
renxwise

1
この高い複雑さは、過度に大きな「カーネル」を使用し、事実上距離だけを使用することを意味します。その後、おそらく、おおよその非常に高価なMDSに縮退します。MDSを使用してください。SNE / tSNEは、実際には小さな困惑、および近隣地域で使用する必要があります。
エーリッヒシューベルト

3
まさに。パープレキシティが十分に大きい場合、tSNEは実際にMDSに近似しています。これは、tSNEがグローバル構造もキャプチャできることを示しています。したがって、tSNEがローカル構造のみをキャプチャできるというステートメントは正しくありません。MDSとは異なり、tSNEは、複雑さを選択することにより、ローカル構造とグローバル構造の間でバランスを取ることができます。明らかに、困惑の選択はデータセットに依存しています。
renxwise

もっともらしい困惑を選択するための経験則はありますか?
Catbuilts

5

私たちが持っている数学的証拠に基づいて、この方法は距離を技術的に保存できます!なぜこの機能を無視するのですか?t -SNEは、サンプル間の高次元ユークリッド距離を、類似性を表す条件付き確率に変換しています。私が試みたのT(密度ベースのクラスタリングアルゴリズムである!)GMMクラスタリングで重要なことは、スペクトラルクラスタリングなど、異なるコンセンサスクラスタリングアルゴリズムと並列に11,000人以上のサンプル(ゲノミクスコンテキストで)との親和性を-SNEおよび。その結果、2つのアプローチ(t-SNE対コンセンサスクラスタリングアルゴリズム)。t-SNEをコンセンサスクラスタリングアルゴリズムと統合すると、既存のローカルおよびグローバルデータ構造の最良の証拠が得られると思います。


t-SNEが距離を保持する可能性に影響するパラメーターはありますか?
キースヒューイット

これらはコンセンサスクラスタリングアルゴリズムではありません。コンセンサスクラスタリングは、パラメーターまたは入力データに何らかのバリエーションを持たせてクラスタリングアルゴリズムを繰り返した結果を集約し、最終的なクラスタリング結果を取得する一種のアンサンブル学習です。コンセンサスクラスタリングアプローチは、スペクトルクラスタリングまたはGMMまたは実際には任意のクラスタリングアルゴリズムを使用できますが、用語の私のポイントは少しずれています。それがすべてです:)
Christopher John

1

DBSCANクラスタリングアルゴリズムを試すことができます。また、tsneの混乱は、予想される最小のクラスターとほぼ同じサイズでなければなりません。


0

個人的に、私はこれを一度経験しましたが、t-SNEまたはPCAでは経験していません。私の元のデータは15次元空間にあります。UMAPを使用して2Dおよび3D埋め込みに削減すると、2Dおよび3Dプロットの両方で、視覚的に分離可能な2つのクラスターが得られました。現実と思うにはあまりに良すぎる。しかし、永続性ダイアグラムから元のデータを「見る」と、2つだけでなく、はるかに「重要な」クラスターがあることに気付きました。

次元削減手法の出力のクラスタリングは、細心の注意を払って実行する必要があります。そうしないと、次元を削減すると確実に機能が失われるため、解釈が非常に誤解を招くか間違っている可能性がありますtはどちらを知っているか)。私の意見では、次の場合、クラスターを信頼/解釈できます。

  • 投影データのクラスターは、事前に定義された分類(投影データのクラスターが数字の分類と非常によく一致するMNISTデータセットを考えてください)に対応/確認します。

  • 永続図などの他の方法を使用して、元のデータにこれらのクラスターが存在することを確認できます。接続されたコンポーネントの数のみをカウントすることは、かなり妥当な時間で実行できます。


UMAPよりも「永続性図」を信頼する(した)のはなぜですか?パーシスタンスダイアグラムを見ることが「元のデータを見る」と表現できるとは思いません...
amoebaはReinstate Monica

あなたは正しいです。パーシスタンスダイアグラムは、元のデータの一部の特性、ほとんどの場合、接続されたコンポーネント、1次元の穴、および非常にまれな、高価な計算による2次元以上の穴のみを示します。したがって、対応する永続図を見ると、元のデータを部分的にしか「見ることができない」と言うべきでした。しかし、この永続ダイアグラムは元のデータから直接構築されるため、この永続ダイアグラムから観察したものを信頼できます。
SiXUlm

対照的に、UMAPまたはその他の次元削減手法を使用することにより、元のデータの投影/変更バージョンのみを処理します。最も多く投票された回答が指摘したように、クラスタリングはパラメーターの選択によって異なる場合があります。
SiXUlm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.