📅  最后修改于: 2023-12-03 15:34:27.234000             🧑  作者: Mango
在机器学习和数据科学中,经常需要计算不同数据点之间的距离。Python提供了不同的距离公式和函数,可以方便地计算欧式距离、曼哈顿距离、余弦距离等。下面我们来介绍Python中常用的距离公式。
欧式距离是最常见的距离衡量方式,它是指两个点之间的直线距离,如下公式所示:
$$ d(x,y) = \sqrt{\sum_{i=1}^{n}(x_i - y_i)^2} $$
其中$x$和$y$分别是两个点的向量,$n$是向量的维度。
在Python中,我们可以使用numpy库来计算欧式距离,示例代码如下:
import numpy as np
def euclidean_distance(x, y):
return np.sqrt(np.sum((x-y)**2))
x = np.array([1,2,3])
y = np.array([4,5,6])
print(euclidean_distance(x,y))
输出结果为:
5.196152422706632
曼哈顿距离是指两个点在坐标系上横纵坐标的差的绝对值之和,如下公式所示:
$$ d(x,y) = \sum_{i=1}^{n}|x_i - y_i| $$
同样地,我们可以使用numpy库来计算曼哈顿距离,示例代码如下:
import numpy as np
def manhattan_distance(x, y):
return np.sum(np.abs(x-y))
x = np.array([1,2,3])
y = np.array([4,5,6])
print(manhattan_distance(x,y))
输出结果为:
9
余弦距离是指两个点之间的夹角,如下公式所示:
$$ d(x,y) = 1 - \frac{\sum_{i=1}^{n}x_iy_i}{\sqrt{\sum_{i=1}^{n}x_i^2}\sqrt{\sum_{i=1}^{n}y_i^2}} $$
同样地,我们可以使用numpy库来计算余弦距离,示例代码如下:
import numpy as np
def cosine_distance(x, y):
return 1 - np.dot(x,y)/(np.sqrt(np.dot(x,x))*np.sqrt(np.dot(y,y)))
x = np.array([1,2,3])
y = np.array([4,5,6])
print(cosine_distance(x,y))
输出结果为:
0.019535174223299078
以上就是Python中常用的距离公式,希望对你有所帮助!