Skip to content
2026-09-29 04:201122 字机器学习KNN算法

KNN算法 ​

KNN算法 简介 ​

  • K-近邻算法(K Nearest Neighbor,简称KNN)

  • KNN算法思想:如果一个样本在特征空间中的 k 个最相似的样本中的大多数属于某一个类别,则该样本也属于这个类别

    思考:如何确定样本的相似性?

    样本相似性:样本都是属于一个任务数据集的。样本距离越近则越相似。

  • 相似性:欧式距离 = 对应维度差值平方和,开平方根​

  • 【案例】利用K近邻算法预测电影类型

  • 解决问题:分类问题(classification)、回归问题(Regression)

    标签不连续(分类,投票)、标签连续(回归,均值)

分类流程 & 回归流程 ​

  1. 计算未知样本到每一个训练样本的距离

  2. 将训练样本根据距离大小升序排列

  3. 取出距离最近的 K 个训练样本

  4. 【分类】进行多数表决,统计 K 个样本中哪个类别的样本个数最多

    【回归】把这个 K 个样本的目标值计算其平均值

  5. 【分类】将未知的样本归属到出现次数最多的类别

    【回归】将作为未知的样本预测的值

K值的选择 ​

  • 为何K值过小容易发生过拟合,而K值过大容易发生欠拟合?

  • K值过小:相当于用较小领域中的训练实例进行预测

    • 容易受到异常点的影响

    • K值的减小就意味着整体模型变得复杂,容易发生过拟合

  • K值过大:相当于用较大领域中的训练实例进行预测

    • 容易受到样本均衡的问题

    • K值的增大就意味着整体的模型变得简单,容易发生欠拟合

  • 举例:K=N(N为训练样本个数)

    • 无论输入实例是什么,只会按训练集中最多的类别进行预测,受到样本均衡的影响
  • 如何对K超参数进行调优?

    • 需要一些方法来寻找这个最合适的K值

    • 交叉验证、网格搜索

距离度量 ​

欧式距离(Euclidean Distance) ​

​欧式距离 = 对应维度差值平方和,开平方根​

曼哈顿距离(Manhattan Distance) ​

曼哈顿距离也称为“城市街区距离”(City Block distance)

曼哈顿城市特点:横平竖直

​曼哈顿距离 = 对应维度差值的绝对值之和​

​

切比雪夫距离(Chebyshev Distance) ​

​切比雪夫距离 = 对应维度差值绝对值的最大值​

闵氏距离(Minkowski Distance) ​
  • 闵可夫斯基距离,简称为:闵式距离

  • 不是一种新的距离的度量方式。

  • 而是距离的组合 是对多个距离度量公式的概括性的表述

两个 维变量 与 间的闵可夫斯基距离定义为

其中 是一个变参数:

  • 当 ​ ​ 时,就是曼哈顿距离;

  • 当 ​ ​ 时,就是欧氏距离;

  • 当 时,就是切比雪夫距离。

根据 的不同,闵氏距离可表示某一类种的距离

‍


每一篇文章,都是时间的标本