Как рассчитать манхэттенское расстояние в R (с примерами)


Манхэттенское расстояние между двумя векторами, A и B , рассчитывается как:

Σ|а я – б я |

где i — i -й элемент в каждом векторе.

Это расстояние используется для измерения различия между любыми двумя векторами и обычно используется во многих различных алгоритмах машинного обучения .

В этом руководстве приведено несколько примеров того, как рассчитать манхэттенское расстояние в R.

Пример 1: Манхэттенское расстояние между двумя векторами

В следующем коде показано, как создать пользовательскую функцию для вычисления манхэттенского расстояния между двумя векторами в R:

#create function to calculate Manhattan distance
manhattan_dist <- function (a, b){
 dist <- abs (a-b)
 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

Манхэттенское расстояние между этими двумя векторами оказывается равным 9 .

Мы можем подтвердить это правильно, быстро рассчитав манхэттенское расстояние вручную:

Σ|а я – б я | = |2-5| + |4-5| + |4-7| + |6-8| знак равно 3 + 1 + 3 + 2 = 9 .

Пример 2: Манхэттенское расстояние между векторами в матрице

Чтобы вычислить манхэттенское расстояние между несколькими векторами в матрице, мы можем использовать встроенную функцию dist() в 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 ")

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

Способ интерпретации этого вывода следующий:

  • Манхэттенское расстояние между векторами a и b равно 9 .
  • Манхэттенское расстояние между векторами a и c равно 19 .
  • Манхэттенское расстояние между векторами a и d равно 7 .
  • Манхэттенское расстояние между векторами b и c равно 10 .
  • Манхэттенское расстояние между векторами b и d равно 16 .
  • Манхэттенское расстояние между векторами c и d равно 26 .

Обратите внимание, что каждый вектор в матрице должен быть одинаковой длины.

Дополнительные ресурсы

Как рассчитать евклидово расстояние в R
Как рассчитать расстояние Махаланобиса в R
Как рассчитать расстояние Минковского в R

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.