2.4.6
Isomap
まとめ
- Isomap は近傍グラフ上の測地距離を推定し、その距離を保つように低次元へ埋め込む。
- 曲がった多様体上の大域構造を保ちやすく、Swiss roll のようなデータに有効である。
_neighbors の設定がグラフ連結性と埋め込み品質を左右する。
- 主成分分析(PCA) の概念を先に学ぶと理解がスムーズです
直感 #
Isomapは『直線距離ではなく、データ面に沿った移動距離』で点同士の近さを測ります。その距離地図を低次元で再現するため、折りたたまれた多様体を展開したような表現が得られます。
詳細な解説 #
Isomap はデータをグラフで結び、測地線距離を近似した上で多次元尺度法(MDS)を適用することで、非線形多様体を低次元に展開する手法です。
1. 手順 #
- k 近傍グラフまたは \( arepsilon\) 近傍グラフを構築
- グラフ上で最短経路距離(測地距離)を計算
- その距離行列を MDS に渡して座標を得る
これにより “Swiss roll” のような巻いた多様体を平面に展開できます。
2. Python 実装 #
| |
3. パラメータ選び #
n_neighbors: 小さすぎるとグラフが分断、大きすぎると測地距離がユークリッド距離に近づくn_components: 可視化なら 2,3、圧縮なら必要次元まで- ノイズに弱いので前処理や外れ値除去が重要
4. 長所と短所 #
| 長所 | 短所 |
|---|---|
| 非線形構造を保ちつつ展開 | グラフ最短経路の計算コストが高い |
| 埋め込み座標が安定 | 近傍グラフの選び方に敏感 |
| 可視化に向く | 高次元・大規模データでは重い |
5. まとめ #
- Isomap は「測地距離 + MDS」というシンプルな構成で非線形多様体を扱える
- k 近傍グラフの品質が結果を左右するため、近傍数とノイズ処理が重要
- t-SNE/UMAP などと併用して多様体の理解を深めましょう
- t-SNE — 可視化向けの多様体学習
- Kernel-PCA — カーネルベースの非線形PCA
- 主成分分析(PCA) — 線形な基本手法
- UMAP — 高速な多様体学習手法
近傍数と Isomap #
近傍数を変えると Isomap の埋め込みがどう変化するか確認できます。