Como calcular a distância de manhattan em r (com exemplos)
A distância de Manhattan entre dois vetores, A e B , é calculada da seguinte forma:
Σ|a i – b i |
onde i é o i- ésimo elemento de cada vetor.
Essa distância é usada para medir a dissimilaridade entre quaisquer dois vetores e é comumente usada em muitos algoritmos de aprendizado de máquina diferentes.
Este tutorial fornece alguns exemplos de cálculo da distância de Manhattan em R.
Exemplo 1: distância de Manhattan entre dois vetores
O código a seguir mostra como criar uma função personalizada para calcular a distância de Manhattan entre dois vetores em R:
#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
A distância de Manhattan entre esses dois vetores é 9 .
Podemos confirmar que isso está correto calculando rapidamente a distância até Manhattan manualmente:
Σ|a i – b i | = |2-5| + |4-5| + |4-7| + |6-8| = 3 + 1 + 3 + 2 = 9 .
Exemplo 2: Distância de Manhattan entre vetores em uma matriz
Para calcular a distância de Manhattan entre vários vetores em uma matriz, podemos usar a função dist() incorporada em R:
#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
A maneira de interpretar esta saída é:
- A distância de Manhattan entre os vetores a e b é 9 .
- A distância de Manhattan entre os vetores a e c é 19 .
- A distância de Manhattan entre os vetores a e d é 7 .
- A distância de Manhattan entre os vetores b e c é 10 .
- A distância de Manhattan entre os vetores b e d é 16 .
- A distância de Manhattan entre os vetores c e d é 26 .
Observe que cada vetor na matriz deve ter o mesmo comprimento.
Recursos adicionais
Como calcular a distância euclidiana em R
Como calcular a distância de Mahalanobis em R
Como calcular a distância de Minkowski em R