用python实现knn算法计算欧几里得距离
时间: 2024-10-16 22:04:29 浏览: 49
在Python中,我们可以使用sklearn库来轻松地实现KNN(K-Nearest Neighbors)算法,其中包括计算欧几里得距离。以下是简单的步骤:
首先,确保安装了必要的库:
```bash
pip install numpy sklearn
```
然后,你可以创建一个函数来计算两个向量之间的欧几里得距离:
```python
import numpy as np
def euclidean_distance(vec1, vec2):
"""
计算两个向量的欧几里得距离
:param vec1: 向量1 (numpy数组)
:param vec2: 向量2 (numpy数组)
:return: 欧几里得距离
"""
return np.sqrt(np.sum((vec1 - vec2) ** 2))
# 示例:计算点(x1, y1)和点(x2, y2)的距离
point_a = np.array([1, 2])
point_b = np.array([4, 6])
distance = euclidean_distance(point_a, point_b)
print(f"两点之间的距离为: {distance}")
```
在这个例子中,`euclidean_distance`函数接收两个numpy数组作为输入,计算它们的差值平方和后再取平方根,得到的就是两点间的欧几里得距离。
如果你想将这个距离应用到KNN算法中,通常会先对数据集进行预处理,计算所有样本之间的距离,并存储在一个距离矩阵或邻接矩阵中。之后,在做预测时,会选择最近的K个邻居并基于他们的标签进行投票或者平均等操作。
阅读全文