KNN算法原理
时间: 2025-04-24 11:01:34 浏览: 12
### KNN算法的工作原理
#### 距离度量的选择
KNN算法依赖于距离度量来确定两个样本之间的相似程度。常用的距离度量方式包括欧氏距离、曼哈顿距离等。对于给定的一个测试样本,会基于选定的距离度量方法,在训练集中找到与其最接近的K个样本。
#### 邻居选择机制
一旦选择了适当的距离度量标准并设定了参数K之后,下一步就是从训练数据中挑选出与当前待测样本最为相近的前K个邻居。这些被选中的邻居构成了决策的基础[^4]。
#### 类别判定过程
当找到了上述提到的K个最近邻之后,如果是在做分类任务,则可以通过统计这K个邻居所属类别的频率来进行最终判断——即将出现次数最多的那个类别作为预测结果赋予未知样本;如果是用于回归分析的话,则通常采用平均值或其他聚合函数的形式得出目标变量估计值[^1]。
```python
from collections import Counter
import numpy as np
def knn_predict(X_train, y_train, X_test, k=3):
distances = []
# 计算每一个测试点到所有训练点的距离
for i in range(len(X_train)):
distance = np.sqrt(np.sum((X_test - X_train[i])**2))
distances.append((distance, y_train[i]))
# 对所有的距离进行排序,并选取最小的k个
sorted_distances = sorted(distances)[:k]
labels = [label for _, label in sorted_distances]
# 使用Counter找出最常见的标签
most_common_label = Counter(labels).most_common(1)[0][0]
return most_common_label
```
此代码片段展示了如何利用Python实现一个简易版的KNN分类器,其中`X_train`, `y_train`代表已知的数据集及其对应的标签,而`X_test`表示要预测的新样本。通过计算新样本与其他已有样本间的欧式距离,选出距离最近的几个邻居后,再依据多数表决原则决定其归属哪一类。
阅读全文
相关推荐

















