Hoe manhattan-afstand in r te berekenen (met voorbeelden)


De Manhattan-afstand tussen twee vectoren, A en B , wordt als volgt berekend:

Σ|a ik – b ik |

waarbij i het i -de element van elke vector is.

Deze afstand wordt gebruikt om de ongelijkheid tussen twee vectoren te meten en wordt vaak gebruikt in veel verschillende machine learning-algoritmen .

Deze tutorial geeft enkele voorbeelden van het berekenen van de Manhattan-afstand in R.

Voorbeeld 1: Manhattan-afstand tussen twee vectoren

De volgende code laat zien hoe u een aangepaste functie maakt om de Manhattan-afstand tussen twee vectoren in R te berekenen:

 #create function to calculate Manhattan distance
manhattan_dist <- function (a, b){
     dist <- abs (ab)
     dist < -sum (dist)
     return (dist)
}

#define two vectors
a <- c(2, 4, 4, 6)

b <- c(5, 5, 7, 8)

#calculate Manhattan distance between vectors
manhattan_dist(a, b)

[1] 9

De Manhattan-afstand tussen deze twee vectoren blijkt 9 te zijn.

We kunnen bevestigen dat dit klopt door de afstand naar Manhattan snel met de hand te berekenen:

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

Voorbeeld 2: Manhattan-afstand tussen vectoren in een matrix

Om de Manhattan-afstand tussen meerdere vectoren in een matrix te berekenen, kunnen we de functie dist() gebruiken die in R is ingebouwd:

 #create four vectors
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 vectors into one matrix
mat <- rbind(a, b, c, d)

#calculate Manhattan distance between each vector in the matrix
dist(mat, method = " manhattan ")

   ABC
b 9      
c 19 10   
d 7 16 26

De manier om deze uitvoer te interpreteren is:

  • De Manhattan-afstand tussen vectoren a en b is 9 .
  • De Manhattan-afstand tussen vectoren a en c is 19 .
  • De Manhattan-afstand tussen vectoren a en d is 7 .
  • De Manhattan-afstand tussen vectoren b en c is 10 .
  • De Manhattan-afstand tussen vectoren b en d is 16 .
  • De Manhattan-afstand tussen vectoren c en d is 26 .

Merk op dat elke vector in de matrix dezelfde lengte moet hebben.

Aanvullende bronnen

Hoe de Euclidische afstand in R te berekenen
Hoe de Mahalanobis-afstand in R te berekenen
Hoe de Minkowski-afstand in R te berekenen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert