¿Cómo calcular la distancia de Manhattan en R? (con ejemplos)

Cómo calcular la distancia de Manhattan en R (Mi software favorito)

La distancia de Manhattan entre dos vectores, A y B, se calcula como:

[latex]\sum_{i=1}^n |a_i – b_i|[/latex]

Donde i es el i-ésimo elemento en cada vector.

Esta distancia se usa para medir la diferencia entre dos vectores y se usa comúnmente en muchos algoritmos de aprendizaje automático diferentes.

Este tutorial proporciona un par de ejemplos de cómo calcular la distancia de Manhattan en R.

Ejemplo 1: Distancia de Manhattan entre dos vectores

El siguiente código muestra cómo crear una función personalizada para calcular la distancia de Manhattan entre dos vectores en R:


# Crear función para calcular la distancia de Manhattan 
manhattan_dist <- function(a, b) {
    dist <- abs(a - b)
    dist <- sum(dist)
    return(dist)
}

# Definir dos vectores
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)

# Calcular la distancia de Manhattan entre vectores
manhattan_dist(a, b)

[1] 9

La distancia de Manhattan entre estos dos vectores resulta ser 9.

Podemos confirmar que esto es correcto calculando rápidamente la distancia de Manhattan a mano:

[latex]\sum_{i=1}^n |a_i – b_i| = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9[/latex]

Ejemplo 2: Distancia de Manhattan entre vectores en una matriz

Para calcular la distancia de Manhattan entre varios vectores en una matriz, podemos usar la función dist() incorporada en R:


# Crear cuatro vectores
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

# Enlazar vectores en una matriz
mat <- rbind(a, b, c, d)

# Calcular la distancia de Manhattan entre cada vector en la matriz
dist(mat, method = "manhattan")

     A    B    C
B    9   --   --
C   19   10   --
D    7   16   26

La forma de interpretar esta salida es la siguiente:

  • La distancia Manhattan entre el vector a y b es 9.
  • La distancia Manhattan entre el vector a y c es 19.
  • La distancia Manhattan entre el vector a y d es 7.
  • La distancia Manhattan entre el vector b y c es 10.
  • La distancia Manhattan entre el vector b y d es 16.
  • La distancia Manhattan entre el vector c y d es 26.

Tenga en cuenta que cada vector de la matriz debe tener la misma longitud.

Lecturas y recuros adicionales para distancia de Manhattan en R

Deja un comentario