KNN 近邻算法一文读懂,轻松掌握机器学习精髓

2023-11-2910:27:18数据结构与算法Comments1,072 views字数 1474阅读模式

K 近邻算法(KNN),听起来很高大上,其实本质就是一个“找邻居”的游戏。在机器学习的世界里,它可是一款非常实用的分类和回归工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

它棱角分明,具有可解释性强,易实现的优点,在很多应用中扮演重要的角色。我们将一起探究它的算法原理、案例以及适用边界,一起慢慢地拆解它,使用它。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

一、KNN算法的原理

KNN(K-Nearest Neighbors)是一种基于实例的学习方法,它通过测量新样本与已知样本之间的距离,找到距离最近的 K 个邻居,然后根据这 K 个邻居的类别来决定新样本的类别。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

概念中提到了一个词“最近”,那我们该如何定义样本间距离的远近呢?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

通常来讲,我们会通过数学公式计算两个样本点之间的距离,最常见的一个计算方法就是欧式距离(Euclidean Space)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

最后再做一个简单的统计,找到距离待测样本点最近的 K 个样本点中,哪些类别最多。当然除了欧式距离,还有很多距离计算的方式,如曼哈顿距离、余弦距离等等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

总得来说,它不仅适用于分类问题,还能处理回归问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

二、KNN案例之挑选适合的商店

假设你是一个刚搬到城市的农村青年,对城市生活一无所知。但是,你有许多热情的邻居,他们愿意帮助你适应新环境。你家的周围有两家商店,一家卖水果,一家卖蔬菜。你想知道哪家商店更适合你,于是你开始了探索。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

你首先去水果店,店主热情地迎接你,告诉你水果的新鲜程度和价格。然后你去蔬菜店,店主也热情地迎接你,告诉你蔬菜的新鲜程度和价格。你发现,水果店的水果种类更多,价格也更贵;而蔬菜店的价格相对便宜,种类虽然没有那么多,但也很丰富。最后,你根据自己的需求,决定经常去蔬菜店购买蔬菜。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

这个过程,就像 KNN 算法的工作原理。你就像是待分类的新样本,两家商店就像是已知的类别。你通过比较两家商店的相似度(也就是水果和蔬菜的新鲜程度和价格),找到了距离你最近的那个邻居(也就是最适合你的蔬菜店),然后决定了自己的选择。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

三、KNN算法的应用步骤

计算方式,主要有以下几个步骤:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

  1. 准备数据:收集一批已知类别的样本,构成训练集。
  2. 计算距离:对于每一个新样本,计算它与训练集中每个样本的距离。
  3. 找到最近邻:选出距离新样本最近的 K 个样本。
  4. 确定类别:根据这 K 个邻居的类别,决定新样本的类别。

关于K值的问题:需要注意的是K值是人工假定的选取样本数量,它会直接影响到模型的预测效果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

当 K 越小的时候,模型就越容易过拟合,因为预测结果与最近一个样本点强相关。而 K 越大的时候,就越容易欠拟合,因为预测结果要考虑所有样本的情况,就相当于没有预测。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

所以,对于 K 的取值,一种有效的办法就是从 1开始不断地尝试,并对比准确率,然后选取效果最好的那个 K 值。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

四、KNN算法的适用边界和优缺点

【优点】简单易实现,可以快速解决多分类问题,并且相对于线性分类算法用一条直线来分割数据的方式来说,KNN 对于边界不规则的数据预测效果会更好。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

【缺点】KNN 对于数据的容错性很低。比如,当待测样本周围的 K 个数据样本中存在错误样本的时候,就会对预测结果有很大的影响。KNN 一般适用于样本数较少的数据集。因为它在处理数据量比较大的样本时会非常耗时,所以,在实际工业中,我们一般会选用 Kd-tree 来进行预测。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

【适用场景】在数据量不多,特征都相对单一的业务场景下很适合选择 KNN 算法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

五、最后的话

总的来说,KNN 算法就像是一个热情友善的邻居,它用自己的智慧和经验,帮助你解决生活中的问题。只要你理解它的原理,掌握它的计算方法,就能充分利用它的优点,克服它的缺点,它可以快速的帮你实现目标。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

如果用一句话来概括它,那就是“近朱者赤,近墨者黑”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

来源:柳星聊产品文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/57662.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/57662.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定