python实现knn算法 k值不小于3
时间: 2024-03-21 18:41:13 浏览: 56
python实现KNN分类算法
KNN(K-Nearest Neighbor)算法是一种基于实例的监督学习方法,它的思想是根据样本的特征值,通过计算距离来确定最近的K个邻居,然后根据这些邻居的标签值来预测新样本的标签。下面是Python实现KNN算法的示例代码,其中K值不小于3:
```python
import numpy as np
from collections import Counter
class KNN:
def __init__(self, k):
self.k = k
def fit(self, X_train, y_train):
self.X_train = X_train
self.y_train = y_train
def predict(self, X_test):
y_pred = []
for x in X_test:
distances = []
for i, x_train in enumerate(self.X_train):
distance = np.sqrt(np.sum(np.square(x - x_train)))
distances.append((i, distance))
k_nearest = sorted(distances, key=lambda x: x[1])[:self.k]
k_nearest_labels = [self.y_train[i] for i, _ in k_nearest]
label = Counter(k_nearest_labels).most_common(1)[0][0]
y_pred.append(label)
return y_pred
```
在上述代码中,KNN类包含了三个方法:`__init__`、`fit`和`predict`。其中,`__init__`方法初始化K值,`fit`方法用于拟合训练数据,`predict`方法用于预测测试数据。具体来说,`predict`方法计算测试数据与每个训练数据之间的距离,选择距离最近的K个邻居,并根据邻居的标签值来预测测试数据的标签。
阅读全文