深圳Yolo 视觉
深圳
立即加入
词汇表

K 近邻 (KNN) 算法

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

K-Nearest Neighbors (KNN) 是一种非参数的有监督学习算法,被广泛应用于计算、分析和预测、 监督学习算法,广泛用于 分类和回归任务。通常被称为 通常被称为 "懒惰学习器 "或基于实例的学习方法,KNN 在训练阶段不会从训练数据中生成判别函数。 在训练阶段,KNN 不会从训练数据中生成一个判别函数。相反 而是记忆整个数据集,只有在对新实例进行预测时才执行计算。这种方法 假定相似数据点在特征空间中的位置非常接近,从而允许算法根据多数类classify 。 新输入的分类是基于其最近邻居的多数类或平均值。

KNN 如何发挥作用

K-Nearest Neighbors 的运行机制依靠距离度量来量化数据点之间的相似性。 点之间的相似性。最常用的指标是 欧几里得距离,也可以使用 曼哈顿距离或明考斯基距离等。 根据问题领域的不同,也可以使用其他指标,如曼哈顿距离或明考斯基距离。预测过程包括几个不同的步骤:

  1. 选择 K:用户定义邻居的数量,用 "K "表示。这是调整 超参数调整的关键步骤,因为 K 直接影响模型的 偏差-方差权衡。K 值越小 噪声敏感性,而 K 值过大则会使明显的边界变得平滑。
  2. 计算距离:当引入一个新的查询点时,算法会计算该点与存储数据集中的每个示例之间的距离。 与存储数据集中每个示例之间的距离。
  3. 识别邻居:该算法对距离进行排序,并选出前 K 个值最小的条目。 最小的 K 个条目。
  4. 总产出:
    • 分类:该算法分配 K 个邻居中出现频率最高的类别标签(多数投票)。 邻居中出现频率最高的类别标签(多数投票)。
    • 回归:预测值是根据 K 个相邻目标值的平均值计算得出的。 邻居目标值的平均值。

KNN 的简单性使其成为许多机器学习问题的有效基线。 机器学习问题的有效基准。下面是一个简明的 示例来演示基本的分类工作流程。 演示基本分类工作流程。

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# distinct classes: 0 and 1
X_train = np.array([[1, 1], [1, 2], [2, 2], [5, 5], [5, 6], [6, 5]])
y_train = np.array([0, 0, 0, 1, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [4, 4]
prediction = knn.predict([[4, 4]])
print(f"Predicted Class: {prediction[0]}")
# Output: 1 (Closer to the cluster at [5,5])

实际应用

尽管 K-近邻法很简单,但在各种复杂的领域中都有应用,在这些领域中,可解释性和基于实例的推理非常重要。 基于实例的推理非常重要。

  • 推荐引擎:KNN 有助于 协同过滤 推荐系统中的协同过滤。流媒体 平台使用它来推荐内容,方法是找到有相似观看历史的用户(邻居),并推荐他们喜欢的内容。 他们喜欢的内容。这种方法对个性化用户体验非常有效。
  • 医疗诊断:在 在医学图像分析中,KNN 可通过将病人的指标或图像特征与历史病例数据库进行比较,协助 通过将病人的指标或图像特征与历史病例数据库进行比较,可以帮助诊断病情。例如 例如,它可以帮助classify 乳腺癌肿瘤 例如,它可以根据细胞特征与确诊病例的相似性,帮助将乳腺癌肿瘤分为恶性和良性。
  • 异常检测:金融机构利用 KNN 异常检测来识别欺诈行为。通过 通过分析交易模式,系统可以标记出明显偏离用户标准行为的活动--即与 "近邻 "相距较远的点。 行为--即与 "近邻 "相距甚远的点。

KNN 与相关算法的区别

要为计算机视觉或数据分析项目选择合适的工具,了解 KNN 与其他算法的区别至关重要。 计算机视觉或数据分析项目选择合适的工具至关重要。

  • K-Means 聚类由于名称相似,KNN 和 K-Means 聚类:由于名称相似,KNNK-Means 聚类很容易混淆。 不过,K-Means 是一种 是一种无监督学习技术,可将未标记数据 然而,K-Means 是一种无监督的学习技术,它将未标记的数据归入聚类,而 KNN 是一种有监督的技术,它需要标记的数据来进行预测。
  • 支持向量机(SVM):虽然两者都用于分类,但 支持向量机 (SVM) 支持向量机(SVM)的重点是找到一个全局决策边界(超平面),使类别间的差值最大化。反之,KNN 基于局部数据密度做出决策,而不构建全局模型。有关这些差异的更多信息,请参阅 SVM 文档
  • 决策树A 决策树通过学习明确的、分割特征空间的分层规则来对数据进行分类、 分层规则来对数据进行分类。KNN 完全依赖于特征空间中的距离度量,因此在处理不规则的决策边界时更加灵活,但在推理过程中计算量较大。 在不规则的决策边界上更加灵活,但在推理过程中计算量较大。

虽然 KNN 在较小的数据集上非常强大,但在大数据中却面临着可扩展性的挑战。 由于每次查询都要计算距离计算成本,KNN 距离。对于高性能 实时推理,如 对象检测等任务中的高性能实时推理,现代深度学习 架构,如 YOLO11等现代深度学习架构因其 YOLO11 等现代深度学习架构因其卓越的速度和准确性而受到青睐。

加入Ultralytics 社区

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

立即加入