Isomap.id

Isomap.id

Diperbarui 2026-02-16 Baca 2 menit
Ringkasan
  • Isomap membangun graf tetangga, menghitung jarak geodesik, lalu menanamkan data agar jarak itu tetap terjaga.
  • Metode ini efektif untuk data pada manifold melengkung.

_neighbors sangat menentukan konektivitas graf dan kualitas embedding.

Intuisi #

Isomap tidak memakai jarak lurus antar titik, tetapi jarak sepanjang permukaan data. Karena itu bentuk manifold dapat ‘dibuka’ dengan lebih alami di dimensi rendah.

Penjelasan Rinci #

1. Ide dasar #

  1. Bentuk graf tetangga dengan (k)-NN atau radius (\varepsilon).
  2. Hitung jarak lintasan terpendek (geodesik) antar pasangan titik pada graf tersebut.
  3. Masukkan matriks jarak itu ke MDS agar memperoleh embedding berdimensi lebih rendah.

Hasilnya mempertahankan struktur global sambil membuka lipatan manifold.


2. Contoh Python #

import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
from sklearn.datasets import make_swiss_roll
from sklearn.manifold import Isomap

X, color = make_swiss_roll(n_samples=1500, noise=0.05, random_state=0)
iso = Isomap(n_neighbors=10, n_components=2)
emb = iso.fit_transform(X)

fig, axes = plt.subplots(1, 2, figsize=(12, 5))
axes[0].scatter(X[:, 0], X[:, 2], c=color, cmap="Spectral", s=5)
axes[0].set_title("Swiss roll asli")
axes[1].scatter(emb[:, 0], emb[:, 1], c=color, cmap="Spectral", s=5)
axes[1].set_title("Embedding Isomap")
for ax in axes:
    ax.set_xticks([])
    ax.set_yticks([])
plt.tight_layout()
plt.show()

Demo Isomap


3. Parameter penting #

  • n_neighbors: menentukan graf lokal; terlalu kecil membuat graf terputus, terlalu besar merusak bentuk manifold.
  • n_components: jumlah dimensi target (biasanya 2–3 untuk visualisasi).
  • Bersihkan noise/duplikat dan lakukan penskalaan fitur sebelum membuat graf.

4. Kelebihan vs kekurangan #

KelebihanKekurangan
Menjaga struktur manifold dan jarak geodesikBiaya tinggi karena perlu shortest path untuk semua pasangan
Visualisasi intuitifSangat sensitif terhadap pemilihan tetangga

5. Catatan #

  • Isomap = graf tetangga + MDS; pastikan grafnya benar-benar merefleksikan topologi data.
  • Periksa apakah graf memiliki satu komponen terhubung; jika tidak, embedding akan pecah.
  • Alternatif modern seperti UMAP/t-SNE lebih cepat saat fokus pada hubungan lokal.