Як обчислити відстань до манхеттена в r (з прикладами)


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

Σ|a i – b i |

де i – 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 .

Ми можемо підтвердити, що це правильно, швидко обчисливши відстань до Манхеттена вручну:

Σ|a i – b i | = |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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *