如何计算 r 中的闵可夫斯基距离(附示例)


两个向量AB之间的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

解释此输出的方法是:

  • 向量ab之间的 Minkowski 距离为3.98
  • 向量ac之间的 Minkowski 距离是8.43
  • 向量ad之间的 Minkowski 距离为3.33
  • 向量bc之间的 Minkowski 距离是5.14
  • 向量bd之间的 Minkowski 距离为6.54
  • 向量cd之间的 Minkowski 距离为10.61

请注意,矩阵中的每个向量必须具有相同的长度。

其他资源

如何计算R中的欧几里德距离
如何计算R中的汉明距离
如何用R计算到曼哈顿的距离
如何计算R中的马氏距离

添加评论

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