k近邻算法python代码
时间: 2023-08-18 20:07:02 浏览: 61
以下是k近邻算法的Python代码:
```python
import numpy as np
from collections import Counter
class KNN:
def __init__(self, k):
self.k = k
def fit(self, X, y):
self.X_train = X
self.y_train = y
def euclidean_distance(self, X):
return np.sqrt(np.sum((self.X_train - X)**2, axis=1))
def predict(self, X):
distances = self.euclidean_distance(X)
k_nearest = np.argsort(distances)[:self.k]
k_nearest_labels = self.y_train[k_nearest]
most_common = Counter(k_nearest_labels).most_common(1)
return most_common[0][0]
```
其中,`fit`方法用于训练模型,`predict`方法用于预测数据。`euclidean_distance`方法用于计算欧几里得距离,并且`Counter`用于计算最近的k个样本中出现最多的标签。