← Back to list

Che cos’è la varietà differenziabile: il caso ISOMAP?

Autore: Matteo Alberti at Deep Learning Italia

Deep Learning Italia · 2021-12-01 07:43 · 2 claps · 1.8 min read
#isomap #manifold #machine-learning #ai #dimensionality-reduction
Open on Medium ↗
Wiki topics: ML · Machine Learning AI · AI · General EDU · Education & Learning

Che cos’è la varietà differenziabile: il caso ISOMAP?

Autore: Matteo Alberti at Deep Learning Italia

INTRODUZIONE

In questo tutorial, parliamo di metodi di riduzione della dimensionalità basati su una struttura matematica chiamata varietà differenziabile (Manifold).

Andiamo dunque a capire che cosa sia una varietà differenziabile, quando risulta utile e come applicarlo senza però entrare nel dettaglio sulla struttura e sulle proprietà matematiche.

Manifold non è altro che uno spazio matematico dove localmente viene a ricrearsi uno spazio euclideo (di una specifica dimensione) ma non a livello globale

Quindi quando e come andremo ad applicare questa serie di metodi? La risposta è semplice: Quando i metodi lineari falliscono

SVOLGIMENTO

Metodi basati sulla varietà differenziabile contrariamente ci riescono. I principali sono:

  • ISOMAP
  • Local Linear Embedding (LLE)

Vogliamo ricordare che il nostro obiettivo è “preservare la geometria locale”

ISOMAP

L’algoritmo si compone di tre fasi:

  • Determinare il numero di vicini (neighbors) sul manifold (basandola sulle distanze Euclidea)

Per ogni punto andremo a mappare i vicini (determinati in base al numero di vicini fissato come nell’algoritmo K-NN o in base ad un raggio fissato).

  • In questo step andremo a stimare la Geodetica. Andremo dunque a calcolare la distanza di ogni coppia di punti ma non lavorando in uno spazio Euclideo.
  • In questo ultimo step andremo ad applicare una MDS (multidimensional scaling) alla matrice di distanze della geodetica al fine di ricostruirlo in uno spazio Euclideo che manterrà la stessa struttura geometrica.

IMPLEMENTAZIONE PYTHON:

Prima di tutto importiamo i pacchetti necessari di scikit-learn

import numpy as np
import matplotlib.pyplot as plt
from sklearn import manifold
DATA= manifold.Isomap(n_neighbors=N, n_components=C, eigen_solver=’auto’, tol=0, max_iter=None, path_method=’auto’, neighbors_algorithm=’auto’, n_jobs=1)

Andiamo ad analizzare i parametri principali:

  • n_ neighbors= Numero intero, corrisponde al numero di vicini
  • n_ components= Numero intero, generalmente impostato di default su 2. Corrisponde al numero di coordinate nello spazio del Manifold

Se vogliamo andare a stampare un grafico con i relativi tempi di esecuzione:

from time import time
t0=time()
ISOMAP_DATA= manifold.Isomap(n_neighbors, n_components=2).fit_transform(OUR_DATA)
t1=time()
print("%s: %.2g sec" % ('ISO' t1-t0))
plot.embedding(ISOMAP_DATA, "ISOMAP ottenuto in " % (t1-t0)
plot.show()

Facciamo due ultime considerazioni di utilizzo pratico:

ISOMAP risulta esser uno strumento di riduzione molto efficace che ci permette di bypassare molti problemi legati alla linearità ma, a discapito di alcuni fattori, in particolare:

  • Sensibilità agli outliers
  • Parametri liberi

Inoltre, ISOMAP è altamente consigliato quando abbiamo già qualche idea sulla struttura dei dati anche perché rispetto ad altri metodi lineari risulta computazionalmente più intensivo.

Per maggiori informazioni sull’argomento visita l’articolo completo: https://www.deeplearningitalia.com/metodi-per-la-riduzione-della-dimensionalita-manifold-based-il-caso-isomap/


메타데이터
post_id
efe7741dd4d5
slug
che-cosè-la-varietà-differenziabile-il-caso-isomap-efe7741dd4d5
url
https://medium.com/@deeplearningitalia/che-cos%C3%A8-la-variet%C3%A0-differenziabile-il-caso-isomap-efe7741dd4d5
canonical_url
https://medium.com/@deeplearningitalia/che-cos%C3%A8-la-variet%C3%A0-differenziabile-il-caso-isomap-efe7741dd4d5
author_url
https://medium.com/@deeplearningitalia
status
ok
fetched_at
2026-07-27 18:46:49