Manhattan-Distanz in R berechnen - so geht's

Von Fabian
Kategorie: R
Lesezeit: 2 Minuten

Der Manhattan-Distanz zwischen zwei Vektoren, A und B, wird wie folgt berechnet:

Σ | a i - b i |

Dabei ist i das i-te Element in jedem Vektor.

Diese Distanz wird verwendet, um die Unähnlichkeit zwischen zwei beliebigen Vektoren zu messen, und wird üblicherweise in vielen verschiedenen Algorithmen für maschinelles Lernen verwendet.

Dieses Tutorial enthält einige Beispiele für die Berechnung der Manhattan-Distanz in R

Beispiel 1: Manhattan-Distanz zwischen zwei Vektoren

Der folgende Code zeigt, wie Sie eine benutzerdefinierte Funktion erstellen, um den Manhattan-Distanz zwischen zwei Vektoren in R zu berechnen:

#Funktion zur Berechnung der Manhattan-Distanz
manhattan_dist <- function(a, b){
     dist <- abs(a-b)
     dist <- sum(dist)
     return(dist)
}

#Definieren von zwei Vektoren
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)

# Berechnen Sie den Manhattan-Distanz zwischen Vektoren
manhattan_dist(a, b)

[1] 9

Der Manhattan-Distanz zwischen diesen beiden Vektoren beträgt 9.

Wir können bestätigen, dass dies korrekt ist, indem wir die Distanz nach Manhattan schnell von Hand berechnen:

Σ | a i - b i | = | 2-5 | + | 4-5 | + | 4-7 | + | 6-8 | = 3 + 1 + 3 + 2 = 9.

Beispiel 2: Manhattan-Distanz zwischen Vektoren in einer Matrix

Um den Manhattan-Distanz zwischen mehreren Vektoren in einer Matrix zu berechnen, können wir die integrierte dist()-Funktion in R verwenden:

#vier Vektoren erstellen
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#"bind" Vektoren in eine Matrix
mat <- rbind(a, b, c, d)

# Berechnen Sie den Manhattan-Distanz zwischen den einzelnen Vektoren in der Matrix
dist(mat, method = "manhattan")

   a  b  c
b  9      
c 19 10   
d  7 16 26

Diese Ausgabe kann folgendermaßen interpretiert werden:

  • Der Manhattan-Distanz zwischen Vektor a und b beträgt 9.
  • Der Manhattan-Distanz zwischen Vektor a und c beträgt 19.
  • Der Manhattan-Distanz zwischen Vektor a und d beträgt 7.
  • Der Manhattan-Distanz zwischen Vektor b und c beträgt 10.
  • Der Manhattan-Distanz zwischen Vektor b und d beträgt 16.
  • Der Manhattan-Distanz zwischen Vektor c und d beträgt 26.

Beachten Sie, dass jeder Vektor in der Matrix dieselbe Länge haben sollte.

Zusätzliche Ressourcen

Wie berechnet man den euklidischen Distanz in R
Wie berechnet man die Mahalanobis-Distanz in R

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: