使用 Scikit-Learn 在 Python 中查找欧氏距离


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

使用的方法

  • 使用 Scikit-Learn 计算欧氏距离

  • 计算两个数组之间的欧氏距离

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

我们所有人都使用过著名的二维距离公式来确定几何中两点之间的距离 -

欧氏距离公式 -

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

方法 1:使用 Scikit-Learn 计算欧氏距离

计算 NumPy 数组元素与原点的欧氏距离

算法(步骤)

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

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

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

  • 使用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() 函数来计算欧氏距离。我们举了两个例子以清晰的方式进行演示,即查找点到原点的欧氏距离和查找两点之间的欧氏距离。

更新于: 2023-02-01

3K+ 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告