基础知识指南

K-最近邻

K 最近邻 (KNN) 通过查看 K 个最接近的示例并进行多数投票来对新数据点进行分类。

阅读时间:2分钟最后更新

概述

It matters as one of the simplest, most intuitive algorithms in machine learning, requiring almost no training.

深入探讨

KNN 是一个“惰性学习器”:它不进行真正的训练,而只是存储整个数据集。为了对新点进行分类,它测量到每个存储示例的距离(通常是欧几里得距离),找到 K 个最近邻居,并分配其中最常见的类别。对于回归,它会平均邻居的值。 K 的选择很重要:小 K 对噪声敏感并且可能过度拟合,而大 K 可以平滑决策,但可能会模糊真实边界。由于所有特征都会影响距离,因此 KNN 需要特征缩放,以便大范围变量不会占主导地位。它的主要弱点是预测速度,因为每个查询都会与整个数据集进行比较。

技术洞察

KNN 是非参数且基于实例的:它不对数据的形状做出任何假设,并存储示例而不是学习权重。距离度量、欧几里得距离、曼哈顿距离或余弦距离度量定义了“接近度”,并且它形成的决策边界可能非常不规则。因为它将每个查询与所有点进行比较,所以简单查找速度很慢,因此库使用 KD 树、球树或近似最近邻索引来加速较低维度的搜索。

战略影响

更清晰的判决

它可以帮助您将清晰的技术声明与营销语言分开。

成本与预算

在花费金钱或时间之前,您可以提出更好的实施问题。

团队与工作流程

具有共同理解的团队可以做出更好的产品、政策和学习决策。

K 最近邻的未来

KNN 的核心思想是找到最相似的示例,为现代向量搜索和检索增强生成提供动力,其中系统获取最近的嵌入向量以构建大型语言模型。 FAISS 和 HNSW 等近似最近邻库使十亿级相似性搜索变得实用。虽然最近邻原则很少是大型管道中的最终分类器,但它作为语义搜索和推荐的支柱比以往任何时候都更加相关。

现实世界的实施

推荐系统:推荐与用户已经喜欢的类似的电影或产品。

手写数字识别:通过将数字与最相似的标记图像进行比较来对数字进行分类。

医疗诊断支持:根据测试结果最相似的患者预测病情。

语义搜索:检索最近的文本嵌入来回答向量数据库中的查询。

风险与防护栏

不同的团队可能会以不同的方式使用同一术语,因此请尽早定义范围。

基准测试可能看起来很强大,但实际性能却参差不齐。

忽视数据质量和评估计划通常会产生脆弱的结果。

实施路线图

1

从您需要的结果的简单语言定义开始。

2

在测试之前选择一种成功指标和一种失败条件。

3

使用代表性数据运行小型试点,而不是完善的演示集。

4

记录 K 最近邻在哪些方面有帮助以及在哪些方面更简单的方法更好。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the K-Nearest Neighbors quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

朴素贝叶斯分类器

常见问题

What is K-Nearest Neighbors?

K 最近邻 (KNN) 通过查看 K 个最接近的示例并进行多数投票来对新数据点进行分类。它是机器学习中最简单、最直观的算法之一,几乎不需要训练。

KNN 如何对新数据点进行分类?

KNN 找到 K 个最近的存储示例,并分配其中最常见的类(对于回归,它对它们的值进行平均)。

为什么 KNN 被称为“惰性学习器”?

KNN将所有工作推迟到预测时间;它只是记住数据集,而不是在训练期间构建模型。

为什么特征缩放对于 KNN 很重要?

由于 KNN 依赖于距离,未缩放的大范围特征可能会压倒其他特征,因此通常对特征进行归一化。

如果您选择一个非常小的 K,例如 K=1,会发生什么?

一个很小的 ​​K 让单个有噪声或标签错误的邻居决定结果,导致锯齿状的过度拟合边界。

KNN 的主要实际缺点是什么?

由于每个查询必须测量到每个示例的距离,因此在大型数据集上预测可能会很慢,从而促使树或近似搜索加速。