敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

K 近邻 (KNN) 算法

探索 K 近邻 (KNN) 如何通过其直观的、非参数的方法简化机器学习,以用于分类和回归任务。

K-近邻(KNN)是一种基础的监督学习算法,用于分类和回归任务。它被认为是一种基于实例或“惰性学习”的算法,因为它在训练数据阶段不构建模型。相反,它存储整个数据集,并通过在存储的数据中找到 'K' 个最相似的实例(邻居)来进行预测。其核心思想是相似的数据点存在于邻近区域。对于一个新的、未分类的数据点,KNN 识别其最近的邻居,并使用它们的标签来确定其自身的分类或值。

KNN 的工作原理是什么?

KNN 算法基于简单的相似性原则运行,通常通过距离度量来衡量。最常见的是欧几里得距离,但也可以使用其他度量,具体取决于数据集。

做出预测的过程非常简单:

  1. 选择K值:要考虑的邻居数(K)是一个关键的超参数。K的选择会显着影响模型的性能。
  2. 计算距离: 对于新的数据点,该算法计算它与训练数据集中每个其他点之间的距离。
  3. 识别邻居: 它从训练集中识别出与新点最接近的 K 个数据点。这些是“最近邻居”。
  4. 进行预测:
    • 对于 分类任务,该算法执行多数投票。新的数据点被分配到其 K 个最近邻居中最常见的类别。例如,如果 K=5,并且三个邻居是 A 类,两个邻居是 B 类,则新的点被分类为 A 类。
    • 对于 回归任务,该算法计算其 K 个最近邻居的值的平均值。该平均值成为新数据点的预测值。

实际应用

KNN 的简单性和直观性使其在各种应用中都很有用,尤其适合作为基线模型。

  • 推荐系统:KNN 是构建推荐引擎的常用选择。例如,流媒体服务可以通过识别具有相似观看历史的其他用户(邻居)来向用户推荐电影。然后推荐这些邻居喜欢但目标用户尚未看过的电影。这种技术是一种 协同过滤 形式。
  • 金融服务: 在金融领域,KNN 可用于信用评分。通过将新的贷款申请人与具有已知信用结果的过去申请人数据库进行比较,该算法可以预测新的申请人是否可能违约。邻居是具有相似财务状况(例如,年龄、收入、债务水平)的过去申请人,他们的违约历史为预测提供信息。这有助于自动进行初步风险评估。

KNN 与相关概念

区分 KNN 和其他常用机器学习算法非常重要:

  • K-均值聚类:虽然名称相似,但它们的功能却大相径庭。K-均值是一种无监督学习算法,用于将数据划分为 K 个不同的、非重叠的子组(簇)。相比之下,KNN 是一种监督算法,用于根据标记的数据进行预测。
  • 支持向量机 (SVM):SVM 是一种监督算法,旨在找到最佳的超平面,该超平面可以分离特征空间中的不同类别。虽然 KNN 基于局部邻居相似性做出决策,但 SVM 旨在找到全局最优边界,这使其方法从根本上不同。更多详细信息可以在 Scikit-learn SVM 页面上找到。
  • 决策树:决策树通过创建基于分层、基于规则的决策模型来对数据进行分类。这会产生一个树状结构,而KNN依赖于基于距离的相似性,而无需学习显式规则。您可以在Scikit-learn决策树文档中了解更多信息。

虽然 KNN 是理解基本机器学习概念以及在较小的、精心管理的数据集上使用的宝贵工具,但对于实时推理大数据而言,它在计算上可能非常密集。对于复杂的计算机视觉任务(如实时目标检测),由于 Ultralytics YOLO 等更高级的模型具有卓越的速度和准确性,因此更受欢迎。可以使用 Ultralytics HUB 等平台轻松训练和部署这些模型。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入
链接已复制到剪贴板