如何在 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中的马氏距离
如何计算R中的闵可夫斯基距离

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注