如何计算 r 中的闵可夫斯基距离(附示例)
两个向量A和B之间的Minkowski 距离计算如下:
(Σ|a i – b i | p ) 1/p
其中i是每个向量的第 i个元素, p是一个整数。
该距离用于衡量任意两个向量之间的差异,并且常用于许多不同的机器学习算法中。
要计算 R 中向量之间的 Minkowski 距离,我们可以使用内置的dist()函数,语法如下:
d ist(x, method=”minkowski”, p)
金子:
- x:数字矩阵或数据框。
- p:计算 Minkowski 距离时使用的幂。
请注意,设置 p = 1 相当于计算曼哈顿距离,设置 p = 2 相当于计算欧几里得距离。
本教程提供了一些如何在实践中使用此功能的示例。
示例 1:两个向量之间的 Minkowski 距离
以下代码演示如何使用dist()函数计算 R 中两个向量之间的 Minkowski 距离(使用 p = 3 的幂):
#define two vectors a <- c(2, 4, 4, 6) b <- c(5, 5, 7, 8) #bind the two vectors into a single matrix mat <- rbind(a, b) #calculate Minkowski distance between vectors using a power of 3 dist(mat, method=" minkowski ", p= 3 ) has b 3.979057
这两个向量之间的 Minkowski 距离(使用 p = 3 的幂)结果为3.979057 。
示例 2:矩阵中向量之间的 Minkowski 距离
要计算矩阵中多个向量之间的 Minkowski 距离,我们可以在 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 Minkowski distance between vectors using a power of 3 dist(mat, method = “ minkowski ”, p= 3 ) ABC b 3.979057 c 8.439010 5.142563 d 3.332222 6.542133 10.614765
解释此输出的方法是:
- 向量a和b之间的 Minkowski 距离为3.98 。
- 向量a和c之间的 Minkowski 距离是8.43 。
- 向量a和d之间的 Minkowski 距离为3.33 。
- 向量b和c之间的 Minkowski 距离是5.14 。
- 向量b和d之间的 Minkowski 距离为6.54 。
- 向量c和d之间的 Minkowski 距离为10.61 。
请注意,矩阵中的每个向量必须具有相同的长度。