如何在 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:矩阵中向量之间的曼哈顿距离
要计算矩阵中多个向量之间的曼哈顿距离,我们可以使用 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
解释此输出的方法是:
- 向量a和b之间的曼哈顿距离为9 。
- 向量a和c之间的曼哈顿距离为19 。
- 向量a和d之间的曼哈顿距离为7 。
- 向量b和c之间的曼哈顿距离为10 。
- 向量b和d之间的曼哈顿距离为16 。
- 向量c和d之间的曼哈顿距离为26 。
请注意,矩阵中的每个向量必须具有相同的长度。