Isomap.el

Isomap.el

Ενημέρωση 2026-02-24 Ανάγνωση 2 λεπτά
Σύνοψη
  • Ο Isomap κατασκευάζει ένα γράφο γειτονίας, εκτιμά τις γεωδαισιακές αποστάσεις και ενσωματώνει τα σημεία ώστε να διατηρηθούν αυτές οι αποστάσεις.
  • Είναι αποτελεσματικός όταν τα δεδομένα βρίσκονται σε καμπύλες πολλαπλότητες, όπως δομές τύπου Swiss-roll.

_neighbors είναι κρίσιμος γιατί ελέγχει τη συνδεσιμότητα του γράφου και την ποιότητα της ενσωμάτωσης.

Εισαγωγή #

Ο Isomap αντικαθιστά την ευθύγραμμη απόσταση με απόσταση μετρημένη κατά μήκος της πολλαπλότητας των δεδομένων. Διατηρώντας τις αποστάσεις πολλαπλότητας, μπορεί να ξεδιπλώσει καμπύλη γεωμετρία σε έναν ουσιαστικό χάρτη χαμηλών διαστάσεων.

Αναλυτική Επεξήγηση #

1. Ιδέα #

  1. Κατασκευή ενός γράφου γειτονίας με σταθερό αριθμό γειτόνων (k) ή ακτίνα (\varepsilon).
  2. Υπολογισμός των συντομότερων μονοπατιών (γεωδαισιακών) αποστάσεων κατά μήκος του γράφου για κάθε ζεύγος δειγμάτων.
  3. Τροφοδότηση του προκύπτοντος πίνακα αποστάσεων στο κλασικό MDS για την εξαγωγή της ενσωμάτωσης χαμηλών διαστάσεων.

Αυτή η ροή εργασίας διατηρεί τις απομακρυσμένες περιοχές χωρισμένες ενώ ξεδιπλώνει την καμπύλη επιφάνεια.


2. Παράδειγμα σε 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("Original Swiss roll")
axes[1].scatter(emb[:, 0], emb[:, 1], c=color, cmap="Spectral", s=5)
axes[1].set_title("Isomap embedding")
for ax in axes:
    ax.set_xticks([])
    ax.set_yticks([])
plt.tight_layout()
plt.show()

Επίδειξη Isomap


3. Υπερπαράμετροι #

  • n_neighbors: ελέγχει την τοπική γειτονιά· πολύ μικρός σπάει τον γράφο, πολύ μεγάλος εξαλείφει τη δομή πολλαπλότητας.
  • n_components: συνήθως 2 ή 3 για οπτικοποίηση, αλλά είναι δυνατές και υψηλότερες τιμές.
  • Χειριστείτε διπλότυπα/θορυβώδη δείγματα κλιμακώνοντας τα χαρακτηριστικά ή προσθέτοντας μικρό θόρυβο πριν την κατασκευή του γράφου.

4. Πλεονεκτήματα και μειονεκτήματα #

ΠλεονεκτήματαΜειονεκτήματα
Διατηρεί τη δομή και τις αποστάσεις της πολλαπλότηταςΕυαίσθητος σε θορυβώδεις γράφους γειτονίας
Παράγει διαισθητικές οπτικοποιήσειςΑπαιτεί υπολογισμό συντομότερων μονοπατιών για όλα τα ζεύγη

5. Σημειώσεις #

  • Isomap = γράφος γειτονίας + MDS· επιλέξτε τους γείτονες προσεκτικά ώστε να αντικατοπτρίζουν την πραγματική τοπολογία.
  • Ελέγξτε τις συνδεδεμένες συνιστώσες του γράφου: μεμονωμένα σημεία θα παραμορφώσουν την ενσωμάτωση.
  • Σκεφτείτε UMAP ή t-SNE αν χρειάζεστε ταχύτερες ενσωματώσεις ή καλύτερη διατήρηση τοπικών πυκνοτήτων.