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


Манхэттенское расстояние между двумя векторами A и B рассчитывается следующим образом:

Σ|а я – б я |

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

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

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

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

Следующий код показывает, как создать пользовательскую функцию для расчета манхэттенского расстояния между двумя векторами в 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

Манхэттенское расстояние между этими двумя векторами оказывается равным 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 ")

   ABC
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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *