Python 使用Scikit-Learn查找欧几里得距离
在这篇文章中,我们将学习如何使用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()函数返回数组元素和原点之间的uclidean距离:
# 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()函数返回两个相应的输入数组元素之间的uclidean距离—-。
# 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()函数,我们在本文中学习了如何计算uclidean距离。我们举了两个例子来清楚地说明,即寻找一个点到原点的欧氏距离和寻找两点之间的欧氏距离。