什么是K近邻算法?
使用K个最接近的数据预测结果
该博客上撰写的文章是出于教学目的而创建的。 另外,文章中的信息可能不正确,请谨慎。
K-Nearest Neighbors,简称KNN,是一种通过寻找与新数据最接近的K条数据来确定结果的算法。 在韩语中,它被称为K最近邻算法。
跟随你周围的大多数人
假设我们已经有了苹果和橙子的重量和颜色数据。 当有新的水果进来时,会在现有数据中找到最接近的水果。
附近有 5 种新水果
4 个苹果
1 个橙子
预测结果:苹果
这里,如果K为5,则检查附近的5条数据。 在分类问题中,您可以选择类数最多的类,在回归问题中,您可以使用接近值的平均值。
更接近于搜索而不是学习
KNN 很少需要提前创建复杂模型的过程。 训练数据保持原样,每次进行预测时都会计算到新数据的距离。
学习阶段:保存数据。
预测步骤:计算所有数据和距离。
所以实现很简单,但是数据越多,预测就越慢。 如果有 N 个数据和 D 个特征,则简单的实现将需要在一次预测期间计算大约 N 个距离。
K的值改变结果
如果 K 为 1,则仅信任最接近的数据。 即使很小的噪音也很容易改变结果。
如果 K 太大,局部特征就会丢失,包括远处的数据。 如果两个类存在相似的数字,可以选择奇数来减少平局,但奇数并不总是正确的答案。
KNN 的核心是假设附近的数据具有相似的属性。 因此,对于距离含义明确且数据量不太大的问题,先测试是一个很好的算法。