t-SNE てぃーえすえぬいー
t-SNE次元削減可視化高次元データクラスタリング可視化
t-SNEについて教えて
簡単に言うとこんな感じ!
「数百次元の画像データを2Dの点で表示する」ための可視化ツールだよ。データの中のクラスターや構造を視覚的に確認するのが得意で、「似た画像は近くに、違う画像は遠くに」配置してくれる。機械学習の結果を直感的に確認するのに重宝されてるんだ!
t-SNEとは
t-SNE(t-distributed Stochastic Neighbor Embedding)は、高次元データを2次元や3次元に圧縮して可視化するための非線形次元削減手法です。2008年にLaurens van der MaatenとGeoffrey Hintonが発表しました。
t-SNEは「近いデータは近くに、遠いデータは遠くに」 という関係をできる限り保存しながら次元を削減します。PCAより非線形な構造をうまく捉えられるため、高次元データの直感的な理解・クラスター確認に広く使われています。
t-SNEの仕組み
高次元空間での関係
データA と B が近い(類似している)
↓
低次元空間でも近くに配置
↓
コスト関数(KL散divergence)を最小化して最適な配置を探索
t分布を使う理由:低次元空間で離れた点同士をさらに離すため、クラスター間に「隙間」を作りやすくなります。
パラメータの影響
| パラメータ | 役割 | 一般的な設定 |
|---|---|---|
| perplexity(複雑度) | 考慮する近傍数の目安 | 5〜50(データサイズで調整) |
| n_iter(反復数) | 最適化の繰り返し回数 | 500〜5000 |
| learning_rate | 最適化の学習率 | 10〜1000 |
| n_components | 削減後の次元数 | 通常2(可視化用) |
PCAとの比較
| 比較項目 | PCA | t-SNE |
|---|---|---|
| 変換の種類 | 線形 | 非線形 |
| 用途 | 前処理・圧縮 | 可視化専用 |
| 計算コスト | 低い | 高い(O(n²)) |
| クラスター構造 | 把握が難しい | 把握しやすい |
| 解釈性 | 寄与率が明確 | 軸に意味なし |
| 新データへの適用 | 可能 | 困難(再学習が必要) |
歴史と背景
- 2002年:前身手法のSNE(Stochastic Neighbor Embedding)がHinton&Roweis により提案
- 2008年:van der Maaten & Hinton が t-SNE を発表
- 2010年代:Scikit-learnに実装され機械学習の標準可視化ツールに
- 現在:大規模データにはUMAPが好まれるが、t-SNEも広く使われ続ける
使用上の注意点
1. 「距離」や「クラスターのサイズ」は信頼できない
→ t-SNEは局所構造を保存するが、全体的な距離感は歪む
2. 実行するたびに結果が変わる可能性がある
→ random_stateを固定してください
3. 新しいデータを既存の結果に追加できない
→ データが増えたら全体を再実行する必要がある
4. 大規模データは遅い
→ 10万件以上はUMAPを検討