使用 Python 中的 Scikit-Learn 查找欧几里得距离

pythonserver side programmingprogramming

在本文中,我们将学习使用 Python 中的 Scikit-Learn 库查找欧几里得距离。

使用的方法

  • 使用 Scikit-Learn 计算欧几里得距离

  • 计算两个数组之间的欧几里得距离

对于 Python 中的机器学习,Scikit-Learn 是最有效和最有用的库。回归、分类、聚类和其他有用的机器学习方法是它包含的众多工具之一。欧几里得距离是聚类算法用来确定聚类优化程度(即聚类优化程度)的指标之一。

众所周知的二维距离公式已被我们所有人用于确定几何中两点之间的距离−

欧几里得距离公式−

其中,(x1, x2) 和 (x2, y2) 是笛卡尔平面上的点。

方法 1:使用 Scikit-Learn 计算欧几里得距离

计算欧几里得距离 Numpy 数组元素和起源

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 使用 import 关键字从 sklearn 模块导入 euclidean_distances() 函数。

  • 使用 import 关键字导入别名为 np 的 NumPy 模块。

  • 使用 numpy.array() 函数创建一个 NumPy 数组并为其提供随机数组元素。

  • 使用 euclidean_distances() 函数通过将输入数组和原点列表作为参数传递给它来计算给定 NumPy 数组元素(坐标)与原点(0,0,0)之间的欧几里得距离。

  • 打印结果欧几里得距离。

示例

以下程序返回使用 sklearn 模块的 euclidean_distances() 函数计算数组元素与原点之间的欧几里得距离 −

# importing euclidean_distances function from scikit-learn module from sklearn.metrics.pairwise import euclidean_distances # importing NumPy module with an alias name import numpy as np # input NumPy array inputArray = np.array([[3.5, 1.5, 5], [1, 4, 2], [6, 3, 10]]) #calculating the euclidean distance between the given NumPy Array and Origin(0,0) resultDistance = euclidean_distances(inputArray, [[0, 0, 0]]) # printing the resultant euclidean distance print("Resultant euclidean distance:\n", resultDistance)

输出

执行时,上述程序将生成以下输出 -

Resultant euclidean distance:
 [[ 6.28490254]
 [ 4.58257569]
 [12.04159458]]

方法 2:计算两个数组之间的欧几里得距离

两个数组元素之间的欧几里得距离可以用相同的方式计算。因此,如果列表分别有 m 个和 n 个元素,则输出数组将有 m * n 个元素

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 使用 import 关键字从 sklearn 模块导入 euclidean_distances 函数。

  • 使用 import 关键字以别名导入 numpy 模块。

  • 使用 numpy.array() 函数创建第一个 NumPy 数组并创建一个变量来存储它。

  • 使用 numpy.array() 函数创建第二个 NumPy 数组并创建另一个变量来存储它。

  • 使用 euclidean_distances() 函数通过将输入数组 1 和输入数组 2 作为参数传递给它来计算给定两个输入数组元素之间的欧几里得距离。

  • 打印结果欧几里得距离。

示例

以下程序使用 sklearn 模块的 euclidean_distances() 函数返回两个对应输入数组元素之间的欧几里得距离 −

# importing euclidean_distances function from # scikit-learn module from sklearn.metrics.pairwise import euclidean_distances # importing numpy library with an alias name import numpy as np # input numpy array 1 inputArray_1 = np.array([[3.5, 1.5, 5], [1, 4, 2], [6, 3, 10]]) # input numpy array 2 inputArray_2 = np.array([[5, 4, 2], [4, 3, 1], [8.5, 2, 6]]) # calculating the euclidean distance between inputArray_1 and inputArray_2 resultDistance = euclidean_distances(inputArray_1, inputArray_2) # printing the resultant euclidean distance print("Resultant euclidean distance:\n", resultDistance)

输出

执行时,上述程序将生成以下输出 -

Resultant euclidean distance:
 [[4.18330013 4.30116263 5.12347538]
 [4.         3.31662479 8.7321246 ]
 [8.1240384  9.21954446 4.82182538]]

如我们所见,输出是一个二维数组。此数组中的每个项目都包含第一个数组中标记为"inputArray_1"的点与第二个数组中另一组点(指定为"inputArray_2")之间的距离。

欧几里得距离在聚类算法中起什么作用?

一种称为聚类算法的无监督机器学习方法根据数据彼此的相似程度将数据集划分为组(称为聚类)。欧几里得距离经常用于比较数据点的相似性,越近的点被视为越相似。聚类方法中点之间的距离用于选择哪些点属于同一聚类。这可以通过计算每对点之间的欧几里得距离并根据阈值选择应分组在一起的点来实现。作为替代方案,聚类算法可以使用点之间的欧几里得距离来计算聚类的质心,即聚类中所有点的平均位置。这可用于更新聚类的点位置并提高聚类算法的准确性。

结论

使用 sklearn 模块的 euclidean distances() 函数,我们在本文中学习了如何计算欧几里得距离。我们举了两个例子来清楚地说明,即找到从一个点到原点的欧几里得距离和找到两点之间的欧几里得距离。


相关文章