AI 术语表 · 基础 · 数据与评测
KNN
KNN(k 近邻,k-Nearest Neighbors)是一种方法:当新数据进来时,从已知数据中找出最相似的 k 个,再参考这些邻居的答案做出判断。它不需要复杂的训练过程,依靠“相似的东西答案也相似”这一想法,是最简单的机器学习方法之一。
通俗解释 就像在第一次去的街区选午饭时,看看口味和自己最接近的五个朋友选了什么,然后跟着选被选最多的那道菜。
工作原理
KNN 在训练阶段只是把数据原样存起来,并不构建单独的模型。新数据进来时,它计算新数据与所有已存数据之间的距离(差异有多大)。从中选出最近的 k 个后,如果是分类问题就按邻居的多数投票决定答案,如果是数值预测问题就取邻居数值的平均。距离通常是先把数据转换成数字列表,再根据差值来衡量。
为什么重要
KNN 原理直观,适合在机器学习入门阶段理解“相似”和“距离”的概念。这种“寻找相近之物”的思路也直接延续到如今基于嵌入的搜索中。把文档或图像转换成嵌入后,找出与问题最接近的内容,正是最近邻搜索。RAG 和推荐系统的底层也是同样的思路。
注意事项
k 取得太小,容易受噪声干扰;取得太大,不同的群体会混在一起,判断变得模糊。由于每次都要计算与所有数据的距离,数据量增大后会变得非常慢。因此,大规模搜索会使用稍微牺牲准确度、大幅提升速度的 ANN 搜索。此外,如果各项数值的单位不一致,距离会失真,因此统一数值范围的预处理很重要。
示例
可以想想购物网站的简单推荐功能。先把某位顾客的购买记录用数字表示,再找出记录最相似的 k 位顾客,推荐他们常买的商品。在向量数据库中“找出与问题最相似的 k 篇文档”时使用的 top-k 搜索,也是源自同一 KNN 概念的说法。