← SEARCHABLE ARCHIVE
Artificial Intelligence · 2026-07-02

什么是K近邻算法?

使用K个最接近的数据预测结果

INTERACTIVE READING MODE →

该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。

K-Nearest Neighbors,简称KNN,是一种通过寻找与新数据最接近的K条数据来确定结果的算法。 在韩语中,它被称为K最近邻算法。

跟随你周围的大多数人

假设我们已经有了苹果和橙子的重量和颜色数据。 当有新的水果进来时,会在现有数据中找到最接近的水果。

附近有 5 种新水果
4 个苹果
1 个橙子

预测结果:苹果

这里,如果K为5,则检查附近的5条数据。 在分类问题中,您可以选择类数最多的类,在回归问题中,您可以使用接近值的平均值。

更接近于搜索而不是学习

KNN 很少需要提前创建复杂模型的过程。 训练数据保持原样,每次进行预测时都会计算到新数据的距离。

学习阶段:保存数据。
预测步骤:计算所有数据和距离。

所以实现很简单,但是数据越多,预测就越慢。 如果有 N 个数据和 D 个特征,则简单的实现将需要在一次预测期间计算大约 N 个距离。

K的值改变结果

如果 K 为 1,则仅信任最接近的数据。 即使很小的噪音也很容易改变结果。

如果 K 太大,局部特征就会丢失,包括远处的数据。 如果两个类存在相似的数字,可以选择奇数来减少平局,但奇数并不总是正确的答案。

KNN 的核心是假设附近的数据具有相似的属性。 因此,对于距离含义明确且数据量不太大的问题,先测试是一个很好的算法。