Vai al contenuto principale

Distanza di Minkowski: una guida completa

La distanza di Minkowski è un modo per misurare il percorso rettilineo o curvilineo tra due punti, a seconda di un parametro scelto che ne influenza la forma. Continua a leggere per scoprire i fondamenti, le applicazioni e i confronti della distanza di Minkowski in vari campi.
· 11 min leggi

Scopri con l'IA

Le metriche di distanza sono la spina dorsale di numerosi algoritmi in data science e machine learning: permettono di misurare la similarità o la dissimilarità tra punti dati. In questa guida esploreremo le basi della distanza di Minkowski, le sue proprietà matematiche e le sue implementazioni. Vedremo come si collega ad altre misure di distanza comuni e ne mostreremo l’uso con esempi di codice in Python e R. 

Che tu stia sviluppando algoritmi di clustering, lavorando al rilevamento di anomalie o mettendo a punto modelli di classificazione, comprendere la distanza di Minkowski può migliorare il tuo approccio all’analisi dei dati e allo sviluppo dei modelli. Diamo un’occhiata.

Cos’è la distanza di Minkowski?

La distanza di Minkowski è una metrica versatile usata in spazi vettoriali normati, che prende il nome dal matematico tedesco Hermann Minkowski. È una generalizzazione di diverse note misure di distanza, il che la rende un concetto fondamentale in vari campi come matematica, informatica e analisi dei dati.

Alla base, la distanza di Minkowski fornisce un modo per misurare la distanza tra due punti in uno spazio multi-dimensionale. La sua utilità particolare risiede nella capacità di includere altre metriche di distanza come casi speciali, principalmente attraverso un parametro p. Questo parametro consente alla distanza di Minkowski di adattarsi a diversi spazi di problema e caratteristiche dei dati. La formula generale della distanza di Minkowski è:

Dove:

  • x e y sono due punti in uno spazio n-dimensionale

  • p è un parametro che determina il tipo di distanza (p ≥ 1)

  • |xi - yi| rappresenta la differenza assoluta tra le coordinate di x e y in ogni dimensione

La distanza di Minkowski è utile per due motivi principali. Da un lato ti offre la flessibilità di passare alla distanza Manhattan o Euclidea secondo necessità. Dall’altro, riconosce che non tutti i dataset (pensa agli spazi ad alta dimensionalità) si prestano bene a una distanza puramente Manhattan o puramente Euclidea.

In pratica, il parametro p viene in genere scelto integrando un workflow di validazione train/test. Testando diversi valori di p durante la cross-validation, puoi determinare quale valore fornisce le migliori prestazioni del modello per il tuo dataset specifico.

Come funziona la distanza di Minkowski

Vediamo come la distanza di Minkowski si collega ad altre formule di distanza e poi passiamo a un esempio pratico. 

Generalizzazione di altre metriche di distanza

La prima cosa da considerare è come la formula della distanza di Minkowski contenga al suo interno le formule delle distanze Manhattan, Euclidea e Chebyshev. 

Distanza Manhattan (p = 1): 

Quando p è impostato a 1, la distanza di Minkowski diventa la distanza Manhattan. 

formula for Manhattan distance

Conosciuta anche come distanza a blocchi di città o norma L1, la distanza Manhattan misura la somma delle differenze assolute. 

Distanza Euclidea (p = 2): 

Quando p è impostato a 2, la distanza di Minkowski diventa la distanza Euclidea.

formula for Euclidean distance

La distanza Euclidea è la metrica di distanza più comune e rappresenta la distanza in linea retta tra due punti. 

Distanza di Chebyshev (p → ∞): 

formula for Chebyshev distance

La distanza di Chebyshev, nota anche come distanza a scacchiera, misura la differenza massima lungo una qualsiasi dimensione. 

Un esempio passo per passo

Per comprendere davvero la funzionalità e la potenza della distanza di Minkowski, lavoriamo su un esempio. Questo ci aiuterà a capire come il parametro p influisce sul calcolo e sull’interpretazione delle distanze in spazi multi-dimensionali.

Consideriamo due punti in uno spazio 2D:

  • Punto A: (2, 3)
  • Punto B: (5, 7)

Calcoleremo la distanza di Minkowski tra questi punti per diversi valori di p.

Minkowski distance with different values of p

Il parametro p nella formula della distanza di Minkowski controlla la sensibilità della metrica alle differenze tra singole componenti:

  • Quando p=1: tutte le differenze contribuiscono linearmente.
  • Quando p=2: le differenze maggiori hanno un impatto più significativo a causa dell’elevamento al quadrato.
  • Quando p>2: si pone ancora più enfasi sulle differenze più grandi.
  • Quando p→∞: conta solo la differenza massima tra tutte le dimensioni.

All’aumentare di p, la distanza di Minkowski in genere diminuisce, avvicinandosi alla distanza di Chebyshev. Questo perché valori di p più alti danno più peso alla differenza maggiore e meno a quelle minori.

Per visualizzare come i diversi valori di p influenzano il calcolo della distanza tra i nostri punti A(2, 3) e B(5, 7), osserva il grafico seguente:

Osservando il grafico, si vede come la misura di distanza cambi al crescere di p:

  • La distanza Manhattan (p=1), rappresentata dal percorso verde, restituisce il cammino più lungo, poiché segue rigorosamente la griglia.
  • La distanza Euclidea (p=2), mostrata dalla linea arancione, fornisce un percorso diretto in linea retta.
  • La distanza di Chebyshev (p=∞), rappresentata dalle linee tratteggiate rosse, si concentra esclusivamente sulla differenza di coordinata più grande, creando un percorso che si muove al massimo in una dimensione prima di passare all’altra.
  • La distanza di Minkowski con p=3, in viola, mostra una leggera curvatura, suggerendo la transizione tra le distanze Euclidea e Chebyshev.

Questa visualizzazione aiuta a capire perché si possano scegliere diversi valori di p a seconda dell’applicazione. Ad esempio, la distanza Manhattan può essere più adatta ai problemi di navigazione urbana, mentre la distanza Euclidea è spesso usata nei calcoli nello spazio fisico. Valori di p più alti, come nel caso Minkowski p=3, possono essere utili in scenari in cui si vogliono enfatizzare differenze più grandi, e la distanza di Chebyshev può essere preferita quando la differenza massima in una qualsiasi dimensione è il fattore più critico.

Applicazioni della distanza di Minkowski

La distanza di Minkowski, con il suo parametro p regolabile, è uno strumento flessibile usato in diversi campi. Modificando p, possiamo adattare il modo in cui misuriamo la distanza tra punti, rendendola adatta a compiti differenti. Di seguito quattro applicazioni in cui la distanza di Minkowski gioca un ruolo importante.

Machine learning e data science

Nel machine learning e nella data science, la distanza di Minkowski è fondamentale per gli algoritmi che si basano sulla misura della similarità o dissimilarità tra punti dati. Un esempio di rilievo è l’algoritmo k-Nearest Neighbors (k-NN), che classifica i punti in base alle categorie dei vicini più prossimi. Usando la distanza di Minkowski, possiamo regolare il parametro p per cambiare come calcoliamo la "vicinanza" tra i punti.

Riconoscimento di pattern

Il riconoscimento di pattern implica l’identificazione di schemi e regolarità nei dati, come il riconoscimento della scrittura a mano o il rilevamento di caratteristiche facciali. In questo contesto, la distanza di Minkowski misura la differenza tra vettori di caratteristiche che rappresentano i pattern. Ad esempio, nel riconoscimento di immagini, ogni immagine può essere rappresentata da un vettore di valori di pixel. Calcolare la distanza di Minkowski tra questi vettori permette di quantificare quanto le immagini siano simili o diverse.

Regolando p, possiamo controllare la sensibilità della misura di distanza alle differenze in specifiche caratteristiche. Un p più basso può considerare le differenze complessive su tutti i pixel, mentre un p più alto può enfatizzare differenze significative in alcune regioni dell’immagine.

Rilevamento di anomalie

Il rilevamento di anomalie mira a identificare punti dati che si discostano in modo significativo dalla maggioranza, aspetto cruciale in ambiti come la rilevazione di frodi, la sicurezza di rete e il rilevamento di guasti nei sistemi. La distanza di Minkowski viene usata per misurare quanto un punto dato sia lontano dagli altri nel dataset. Punti con grandi distanze sono potenziali anomalie. Scegliendo un p appropriato, gli analisti possono migliorare la sensibilità dei sistemi di rilevamento alle deviazioni più rilevanti per il loro contesto.

Geometria computazionale e analisi spaziale

Nella geometria computazionale e nell’analisi spaziale, la distanza di Minkowski è usata per calcolare distanze tra punti nello spazio, base di molti algoritmi geometrici. Ad esempio, il rilevamento di collisioni in questi ambiti si affida alla distanza di Minkowski per determinare quando gli oggetti sono abbastanza vicini da interagire. Regolando p, gli sviluppatori possono creare confini di collisione diversi, da angolari (p più basso) ad arrotondati (p più alto).

Oltre al rilevamento di collisioni, la distanza di Minkowski può essere utile nel clustering spaziale e nell’analisi delle forme. Variando il valore di p, i ricercatori possono enfatizzare diversi aspetti delle relazioni spaziali, dalle distanze a blocchi di città alle somiglianze di forma complessive.

Proprietà matematiche della distanza di Minkowski

La distanza di Minkowski non è solo uno strumento versatile nelle applicazioni pratiche, ma anche un concetto importante nella teoria matematica, in particolare nello studio degli spazi metrici e delle norme.

Proprietà di spazio metrico

La distanza di Minkowski soddisfa le quattro proprietà essenziali affinché una funzione sia considerata una metrica in uno spazio metrico:

  • Non negatività: la distanza di Minkowski tra due punti è sempre non negativa, d(x,y)≥0. Ciò è evidente perché è la radice p-esima di una somma di termini non negativi (valori assoluti elevati alla potenza p).
  • Identità degli indiscernibili: la distanza di Minkowski tra due punti è zero se e solo se i due punti sono identici. Matematicamente, d(x,y) = 0 se e solo se x=y. Questo deriva dal fatto che la differenza assoluta tra componenti identiche è zero.
  • Simmetria: la distanza di Minkowski è simmetrica, cioè d(x,y)=d(y,x). Questa proprietà vale perché l’ordine della sottrazione nei termini a valore assoluto non influisce sul risultato.
  • Disuguaglianza triangolare: la distanza di Minkowski soddisfa la disuguaglianza triangolare, che afferma che per tre punti x, y e z qualsiasi, la distanza da x a z è al massimo la somma delle distanze da x a y e da y a z; formalmente, d(x,z)≤d(x,y)+d(y,z). Questa proprietà è meno intuitiva da dimostrare direttamente dalla formula e in genere richiede matematica più avanzata, ma in sostanza garantisce che il percorso diretto tra due punti sia il più corto.

Generalizzazione delle norme

La distanza di Minkowski funge da quadro generale che unifica vari modi di misurare le distanze negli spazi matematici attraverso il concetto di norme. In parole semplici, una norma è una funzione che assegna una lunghezza o dimensione non negativa a un vettore in uno spazio vettoriale, misurando essenzialmente quanto è "lungo" il vettore. Regolando il parametro p nella formula della distanza di Minkowski, possiamo passare senza soluzione di continuità tra diverse norme, ognuna delle quali fornisce un metodo unico per calcolare la lunghezza dei vettori.

Ad esempio, quando p=1, la distanza di Minkowski diventa la norma Manhattan, che misura la distanza come somma delle differenze assolute lungo ciascuna dimensione—immagina di muoverti su una griglia di strade cittadine. Con p=2, si trasforma nella norma Euclidea, che calcola la distanza in linea retta ("in volo d’uccello") tra punti. Quando p tende all’infinito, converge alla norma di Chebyshev, in cui la distanza è determinata dalla singola differenza più grande tra le dimensioni. Questa flessibilità consente alla distanza di Minkowski di adattarsi a vari contesti matematici e pratici, rendendola uno strumento versatile per misurare le distanze in scenari differenti.

Calcolare la distanza di Minkowski in Python e R

Esploriamo le implementazioni del calcolo della distanza di Minkowski sia in Python sia in R. Vedremo pacchetti e librerie pronti all’uso per ottenere questo risultato. 

Esempio in Python

Per calcolare la distanza di Minkowski in Python, possiamo usare la libreria SciPy, che fornisce implementazioni efficienti di varie metriche di distanza. Ecco un esempio che calcola la distanza di Minkowski per diversi valori di p:

import numpy as np
from scipy.spatial import distance

# Example points
point_a = [2, 3]
point_b = [5, 7]

# Different p values
p_values = [1, 2, 3, 10, np.inf]
print("Minkowski distances using SciPy:")

for p in p_values:
	if np.isinf(p):
	    # For p = infinity, use Chebyshev distance
	    dist = distance.chebyshev(point_a, point_b)
	    print(f"p = ∞, Distance = {dist:.2f}")
	else:
	        dist = distance.minkowski(point_a, point_b, p)
	        print(f"p = {p}, Distance = {dist:.2f}")

Eseguendo questo codice, potrai osservare come la distanza cambi al variare dei valori di p, consolidando i concetti discussi in precedenza nell’articolo.

Minkowski distances using SciPy:
p = 1, Distance = 7.00
p = 2, Distance = 5.00
p = 3, Distance = 4.50
p = 10, Distance = 4.02
p = ∞, Distance = 4.00

Questo codice dimostra:

  1. Come usare le funzioni di distanza di SciPy per le distanze di Minkowski e Chebyshev.
  2. Il calcolo delle distanze per vari valori di p, incluso l’infinito.
  3. La relazione tra la distanza di Minkowski e altre metriche (Manhattan, Euclidea, Chebyshev).

Esempio in R

Per R, utilizzeremo la funzione dist() della libreria stats:

# Define the Minkowski distance function using stats::dist

minkowski_distance <- function(x, y, p) {
  points <- rbind(x, y)
  if (is.infinite(p)) {
    # For p = Inf, use method = "maximum" for Chebyshev distance
    distance <- stats::dist(points, method = "maximum")
  } else {
    distance <- stats::dist(points, method = "minkowski", p = p)
  }
  return(as.numeric(distance))
}

# Example usage
point_a <- c(2, 3)
point_b <- c(5, 7)

# Different p values
p_values <- c(1, 2, 3, 10, Inf)
cat("Minkowski distances between points A and B using stats::dist:\n")

for (p in p_values) {
  distance <- minkowski_distance(point_a, point_b, p)
  if (is.infinite(p)) {
    cat(sprintf("p = ∞, Distance = %.2f\n", distance))
  } else {
    cat(sprintf("p = %g, Distance = %.2f\n", p, distance))
  }
}

Questo codice dimostra:

  1. Come creare una funzione minkowski_distance usando la funzione dist() di stats.

  2. La gestione di diversi valori di p, incluso l’infinito per la distanza di Chebyshev.

  3. Il calcolo della distanza di Minkowski per vari valori di p.

  4. La formattazione dell’output per mostrare le distanze arrotondate a 2 decimali.

L’output di questo codice sarà:

Minkowski distances between points A and B using stats::dist:
p = 1, Distance = 7.00
p = 2, Distance = 5.00
p = 3, Distance = 4.50
p = 10, Distance = 4.02
p = ∞, Distance = 4.00

Questa implementazione in R fa da contraltare all’esempio in Python e permette di vedere come calcolare la distanza di Minkowski in ambienti di programmazione diversi.

Conclusione

La distanza di Minkowski offre un approccio flessibile e adattabile per misurare le distanze in spazi multi-dimensionali. La sua capacità di generalizzare altre metriche di distanza comuni tramite il parametro p la rende uno strumento prezioso in vari ambiti della data science e del machine learning. Regolando p, chi lavora con i dati può adattare i calcoli di distanza alle caratteristiche specifiche dei propri dati e ai requisiti dei progetti, migliorando potenzialmente i risultati in attività che vanno dal clustering al rilevamento di anomalie.

Applicando la distanza di Minkowski nel tuo lavoro, ti consigliamo di sperimentare valori diversi di p e osservarne l’impatto sui risultati. Se vuoi approfondire competenze e conoscenze, ti suggeriamo di esplorare il corso Designing Machine Learning Workflows in Python e di valutare il nostro percorso di carriera Data Scientist Certification. Queste risorse ti aiuteranno a sviluppare ulteriormente la conoscenza delle metriche di distanza e ad applicarle efficacemente in vari scenari.

Vinod Chugani

Autore

Vinod Chugani

Vinod Chugani ha iniziato la sua carriera a Tokyo come il più giovane Head dell'Hedge Fund Sales Desk di JPMorgan e in seguito ha stabilito un record personale di vendite a Lehman Brothers, poi ha costruito un'attività di distribuzione di elettronica in 30 paesi superando i 100 milioni di SG$ di fatturato prima di passare ai dati. Laureato in Economia alla Duke e diplomato alla NYC Data Science Academy, è stato uno dei tre beneficiari di borsa di studio su oltre 100 candidati per il corso Building AI Applications di Hugo Bowne-Anderson su Maven. Oggi scrive per DataCamp, KDnuggets, Machine Learning Mastery e Statology su argomenti che vanno dalla statistica all'AI agentica, e fa da mentor a professionisti dei dati alla NYC Data Science Academy con oltre 1.000 sessioni one-to-one all'attivo.

 

Domande frequenti sulla distanza di Minkowski

Che cos’è la distanza di Minkowski?

La distanza di Minkowski è una metrica generalizzata usata per misurare la distanza tra due punti in uno spazio multi-dimensionale. È definita da un parametro "p" che le consente di includere altre metriche di distanza come casi speciali, rendendola altamente versatile per varie applicazioni in data science e machine learning.

Come si collega la distanza di Minkowski alle distanze Euclidea e Manhattan?

La distanza di Minkowski è una generalizzazione sia della distanza Euclidea sia di quella Manhattan. Quando il parametro p=2, diventa la distanza Euclidea, e quando p=1 diventa la distanza Manhattan. Questa flessibilità consente alla distanza di Minkowski di adattarsi a diversi spazi di problema e caratteristiche dei dati.

Cosa succede quando `p` tende all’infinito nella distanza di Minkowski?

Quando p tende all’infinito, la distanza di Minkowski converge alla distanza di Chebyshev. In questo caso, la distanza è determinata dalla differenza massima lungo una singola dimensione, utile in alcuni problemi di ottimizzazione e nelle analisi di scenari peggiori.

La distanza di Minkowski può essere usata con dati categoriali?

La distanza di Minkowski è concepita principalmente per dati numerici. Per i dati categoriali, sono più appropriate altre misure di distanza come la distanza di Hamming o di Gower. Tuttavia, se i dati categoriali vengono opportunamente codificati in forma numerica, si può applicare la distanza di Minkowski.

La distanza di Minkowski è influenzata dalla scala delle feature?

Sì, la distanza di Minkowski è sensibile alla scala delle caratteristiche. Se le feature hanno scale diverse, è importante normalizzare o standardizzare i dati prima di applicare la distanza di Minkowski, così che tutte le feature contribuiscano in modo appropriato al calcolo della distanza.

Ci sono limitazioni nell’uso della distanza di Minkowski?

Pur essendo versatile, la distanza di Minkowski assume che tutte le dimensioni contribuiscano in egual misura alla distanza, il che può non essere sempre appropriato. Può essere computazionalmente onerosa per dataset di grandi dimensioni, soprattutto con valori frazionari di p. Inoltre, potrebbe non cogliere relazioni complesse e non lineari nei dati che altre misure di distanza potrebbero invece rivelare.

Argomenti

Correlato