R로 맨해튼 거리를 계산하는 방법(예제 포함)


두 벡터 AB 사이의 맨해튼 거리는 다음과 같이 계산됩니다.

Σ|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: 행렬의 벡터 간 맨해튼 거리

행렬의 여러 벡터 사이의 맨해튼 거리를 계산하려면 R에 내장된 dist() 함수를 사용할 수 있습니다.

 #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

이 출력을 해석하는 방법은 다음과 같습니다.

  • 벡터 ab 사이의 맨해튼 거리는 9 입니다.
  • 벡터 ac 사이의 맨해튼 거리는 19 입니다.
  • 벡터 ad 사이의 맨해튼 거리는 7 입니다.
  • 벡터 bc 사이의 맨해튼 거리는 10 입니다.
  • 벡터 bd 사이의 맨해튼 거리는 16 입니다.
  • 벡터 cd 사이의 맨해튼 거리는 26 입니다.

행렬의 각 벡터의 길이는 동일해야 합니다.

추가 리소스

R에서 유클리드 거리를 계산하는 방법
R에서 Mahalanobis 거리를 계산하는 방법
R에서 Minkowski 거리를 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다