术语表

K-Nearest Neighbors(KNN)

了解 K-Nearest Neighbors (KNN) 如何通过直观的非参数方法简化机器学习的分类和回归任务。

K-Nearest Neighbors(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-Means 聚类:虽然名称相似,但功能却大相径庭。K-Means 是一种无监督学习算法,用于将数据划分为 K 个不同的、不重叠的子组(簇)。而 KNN 是一种有监督的算法,用于基于标记数据进行预测。
  • 支持向量机 (SVM):SVM 是一种有监督的算法,旨在找到最佳的超平面,将特征空间中的不同类别区分开来。KNN 基于局部邻近相似性做出决策,而 SVM 则旨在找到一个全局最优边界,因此在方法上有本质区别。更多详情,请参阅Scikit-learn SVM 页面
  • 决策树:决策树通过创建一个基于规则的分层决策模型来对数据进行分类。这就形成了树状结构,而 KNN 则依赖于基于距离的相似性,无需学习明确的规则。您可以在Scikit-learn 决策树文档中了解更多信息。

虽然 KNN 是理解基本机器学习概念和用于较小的、经过精心整理的数据集的重要工具,但对于大数据实时推理来说,它的计算密集度很高。对于复杂的计算机视觉任务(如实时物体检测)Ultralytics YOLO等更先进的模型因其卓越的速度和准确性而受到青睐。这些模型可以通过Ultralytics HUB 等平台轻松训练和部署。

加入 Ultralytics 社区

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

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