knn分类器python实现完成代码示例
时间: 2023-07-23 09:17:57 浏览: 99
以下是一个简单的 k-近邻分类器 的 Python 实现:
```python
import numpy as np
class KNNClassifier:
def __init__(self, k):
self.k = k
def train(self, X, y):
self.X_train = X
self.y_train = y
def predict(self, X):
num_test = X.shape[0]
y_pred = np.zeros(num_test, dtype=self.y_train.dtype)
for i in range(num_test):
distances = np.sum(np.abs(self.X_train - X[i,:]), axis=1)
nearest_neighbors = np.argsort(distances)[:self.k]
y_pred[i] = np.argmax(np.bincount(self.y_train[nearest_neighbors]))
return y_pred
```
使用示例:
```python
X_train = np.array([[1,2], [2,3], [3,1], [4,2], [3,3]])
y_train = np.array([0, 0, 0, 1, 1])
X_test = np.array([[2,1], [3,2], [2,4], [4,4]])
knn = KNNClassifier(k=3)
knn.train(X_train, y_train)
y_pred = knn.predict(X_test)
print(y_pred)
# 输出:[0 0 1 1]
```
在这个示例中,我们使用 k-近邻分类器 对数据进行分类,分类标签为 0 或 1。在训练过程中,我们存储了训练数据的特征和标签。在预测过程中,我们计算了测试数据与训练数据的距离,找到了 k 个最近的邻居,并选择它们中出现最频繁的标签作为预测结果。
阅读全文