python实现knn算法案例_Python实现的knn算法示例
时间: 2023-11-05 13:09:49 浏览: 118
以下是 Python 实现的 KNN 算法示例:
```python
import numpy as np
class KNN:
def __init__(self, k=3):
self.k = k
def fit(self, X, y):
self.X = X
self.y = y
def predict(self, X):
y_pred = []
for x in X:
distances = np.sqrt(np.sum((self.X - x)**2, axis=1))
indices = np.argsort(distances)[:self.k]
labels = self.y[indices]
y_pred.append(max(labels, key=list(labels).count))
return y_pred
```
其中,`KNN` 类有三个方法:
- `__init__(self, k=3)`:初始化方法,参数 `k` 为最近邻的个数,默认为 3。
- `fit(self, X, y)`:训练方法,参数 `X` 为训练数据,`y` 为标签。
- `predict(self, X)`:预测方法,参数 `X` 为测试数据,返回预测结果。
在该实现中,使用了 `numpy` 库计算欧氏距离和排序。`np.argsort()` 函数返回数组中元素从小到大排序后对应的索引,因此取前 `k` 个索引即为最近邻的索引。最后,返回最近邻中出现最多的标签作为预测结果。
阅读全文