术语表

K-Nearest Neighbors(KNN)

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

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

K-Nearest Neighbors(KNN)是机器学习(ML)中的一种基本算法,用于分类和回归任务。它的突出特点是简单直观。KNN 被归类为非参数方法,因为它不对底层数据分布做出假设。它也被称为 "懒学习 "算法,因为它不会在训练数据阶段建立通用模型;相反,它会存储整个数据集,只在需要预测时才进行计算。

KNN 如何工作

KNN 的核心理念基于相似性,通常使用欧氏距离等距离指标来定义。当预测一个新的、未见过的数据点时,算法会从存储的训练数据集中找出与之最接近的 "K "个数据点(邻近点)。K "值是用户自定义的整数,代表所考虑的邻居数量。

  • 对于分类:新数据点被归入其 K 个近邻中最常见的类别。如果 K=3 且两个邻居属于 A 类,一个属于 B 类,则新数据点被归为 A 类。
  • 回归新数据点的预测值通常是其 K 个近邻值的平均值(有时是中值)。

距离度量的选择和 "K "的值是至关重要的超参数,对模型的性能有重大影响。

选择 K 值

选择最佳 "K "值至关重要。K'值越小,模型对噪声和异常值越敏感,可能导致过度拟合。相反,"K "值过大则会使决策边界过于平滑,可能导致拟合不足和计算成本过高。通常会采用交叉验证等技术来找到一个合适的 "K "值,以平衡偏差和方差之间的权衡

KNN 的应用

KNN 非常简单,适用于各种应用,尤其是注重可解释性的应用:

  1. 推荐系统:KNN 可以根据用户 "最近 "邻居(品味相似的用户)的偏好向用户推荐物品(如电影或产品)。Netflix等服务也探索了类似的基于实例的方法。
  2. 图像识别:在基本的图像分类任务中,KNN 可以根据训练集中最相似图像的类别对图像进行分类(例如,根据像素相似性识别手写数字)。虽然对MNIST 等较简单的数据集很有效,但更复杂的任务往往需要复杂的模型。
  3. 异常检测:通过识别远离任何相邻集群的数据点,KNN 可用于检测异常值或异常现象,在欺诈检测或识别制造中的瑕疵品等领域非常有用。了解有关异常检测方法的更多信息。
  4. 基因表达分析:在生物信息学中,KNN 可帮助根据基因表达模式对样本进行分类,将相似的基因图谱归为一类。进一步了解人工智能在医疗保健领域的应用

KNN 的优缺点

KNN 有几个优点,但也有局限性:

优势

  • 简单直观:易于理解和实施。
  • 无训练阶段:通过存储数据集即时学习,使其能够适应新数据。
  • 灵活性:可自然处理多类分类,也可用于回归。

缺点

  • 计算成本:由于预测需要计算所有训练点的距离,因此速度较慢,计算成本较高,尤其是在大型数据集上。
  • 对无关特征的敏感性:高维数据(维度诅咒)或存在不相关特征时,性能会明显下降。可能需要降维等技术。
  • 需要对特征进行缩放:对数据规模敏感;范围较大的特征会在距离计算中占主导地位,因此需要进行归一化处理
  • 确定最佳'K':要找到 "K "的最佳值,需要仔细调整超参数

KNN 与相关概念

将 KNN 与其他算法区分开来非常重要:

  • K-Means 聚类虽然两者都使用 "K "和距离度量,但 K-Means 是一种无监督学习算法,用于根据相似性将数据聚类成组。KNN 是一种有监督的学习算法,用于基于标记的邻居进行分类或回归。
  • 支持向量机(SVM)SVM 是一种有监督的算法,它能找到一个最佳超平面来区分类别。与 KNN 基于实例的方法不同,SVM 建立了一个明确的模型,通常在处理高维数据时表现更好。
  • 决策树决策树基于特征分割建立模型,为分类或回归提供明确的规则。KNN 依靠的是局部相似性,而不是明确的规则。

虽然 KNN 对于某些任务和理解基本 ML 概念很有价值,但像实时物体检测这样的复杂问题通常需要更先进的模型,例如 Ultralytics YOLO等更先进的模型,尤其是在大规模计算机视觉数据集上,它们能提供更高的速度和准确性。您可以使用Ultralytics HUB 等平台训练和部署此类模型。

阅读全部