KNN算法
1、KNN算法基本介绍
KNN(K-Nearest Neighbors,K - 近邻)是一种简单、直观、无参数的惰性学习算法,核心思想是 “物以类聚、人以群分”—— 通过待预测样本与训练集中 “最近邻” 样本的相似度,推断其类别(分类任务)或数值(回归任务)。它无需训练模型参数,仅在预测时计算距离,广泛应用于分类、回归、推荐系统等场景。
1.1、核心原理(3 步理解)
KNN 通过距离度量判断样本间的 “远近”(相似度),距离越近,相似度越高。
常用距离公式有
- 欧氏距离(最常用),计算公式为对应维度差值平方和,开平方根

- 曼哈顿距离(城市街区距离),计算公式为对应维度差值的绝对值之和。如[1,2]、[3,5],值则为5
- 切比雪夫距离,计算公式为对应维度差值的绝对值中的最大值。如[1,2]、[3,5],值则为3
- 闵可夫斯基距离(闵氏距离),这并不是一种距离度量方式,只是对多种距离度量公式的概括性的表达
K 的大小直接影响模型拟合效果:
- K 过小(如 K=1):过度依赖单个样本,易受噪声 / 异常值影响,导致过拟合;
- K 过大(如 K≈训练集样本数):过度平滑,忽略局部特征,导致欠拟合;
- 最优 K:通过交叉验证(如 5 折交叉验证)+ 网格搜索(测试 K=3、5、7...31)选择。
- 分类任务:对 K 个最近邻样本的类别进行 “多数投票”,得票最多的类别作为预测结果。例:K=5 时,最近邻样本类别为 [猫、猫、狗、猫、兔],预测结果为 “猫”(3 票胜出)。
- 回归任务:对 K 个最近邻样本的数值取 “平均值”(或加权平均值),作为预测结果。例:K=3 时,最近邻样本房价为 [100 万、120 万、110 万],预测房价 =(100+120+110)/3=110 万。
1.2、KNN 的核心特性(优缺点)
1.3、适用场景与不适用场景

浙公网安备 33010602011771号