c++实现KNN分类代码
时间: 2023-09-03 16:15:44 浏览: 86
以下是使用Python实现KNN分类的示例代码:
```python
import numpy as np
from collections import Counter
class KNNClassifier:
def __init__(self, k=5):
self.k = k
def fit(self, X, y):
self.X_train = X
self.y_train = y
def predict(self, X):
predictions = []
for x in X:
distances = [np.sqrt(np.sum((x - x_train)**2)) for x_train in self.X_train]
k_indices = np.argsort(distances)[:self.k]
k_nearest_labels = [self.y_train[i] for i in k_indices]
most_common = Counter(k_nearest_labels).most_common(1)
predictions.append(most_common[0][0])
return np.array(predictions)
```
其中,KNNClassifier类包含三个方法:
- __init__:初始化分类器,其中k为最近邻居的数量,默认为5。
- fit:训练分类器,传入X和y分别为训练数据和标签。
- predict:对新的数据进行预测,传入X为新的数据,返回预测结果。
在predict方法中,首先计算新数据点与训练数据点之间的距离,并选出k个距离最近的训练数据点。然后,统计这k个训练数据点中最常出现的标签,并将其作为预测结果返回。
阅读全文