博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
K近邻算法-KNN
阅读量:7043 次
发布时间:2019-06-28

本文共 1078 字,大约阅读时间需要 3 分钟。

K近邻算法-KNN

何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1时,算法便成了最近邻算法,即寻找最近的那个邻居。为何要找邻居?打个比方来说,假设你来到一个陌生的村庄,现在你要找到与你有着相似特征的人群融入他们,所谓入伙。


用官方的话来说,所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居),这K个实例的多数属于某个类,就把该输入实例分类到这个类中。根据这个说法,咱们来看下引自维基百科上的一幅图:

如上图所示,有两类不同的样本数据,分别用蓝色的小正方形和红色的小三角形表示,而图正中间的那个绿色的圆所标示的数据则是待分类的数据。也就是说,现在,我们不知道中间那个绿色的数据是从属于哪一类(蓝色小正方形or红色小三角形),下面,我们就要解决这个问题:给这个绿色的圆分类。

如果K=3,绿色圆点的最近的3个邻居是2个红色小三角形和1个蓝色小正方形,少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于红色的三角形一类。
如果K=5,绿色圆点的最近的5个邻居是2个红色三角形和3个蓝色的正方形,还是少数从属于多数,基于统计的方法,判定绿色的这个待分类点属于蓝色的正方形一类。
于此我们看到,当无法判定当前待分类点是从属于已知分类中的哪一类时,我们可以依据统计学的理论看它所处的位置特征,衡量它周围邻居的权重,而把它归为(或分配)到权重更大的那一类。这就是K近邻算法的核心思想。

K值的选择

1. 如果选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”近似误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的估计误差会增大,换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合;

2. 如果选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。
3. K=N,则完全不足取,因为此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的累,模型过于简单,忽略了训练实例中大量有用信息。
在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值。

转载地址:http://kseal.baihongyu.com/

你可能感兴趣的文章
硬件辅助超融合:任意云中的全闪存VSAN
查看>>
个人隐私安全该何去何从-大量APP秘密收集追踪个人信息
查看>>
阿里云E-MapReduce 作业结果和日志查看
查看>>
WiFi步入60GHz时代:助力4K、VR和物联网
查看>>
借助雨滴也能发电:功率转化效率85% 可与太阳能发电互补
查看>>
此刻, 演进到100G真不是梦
查看>>
《Scala机器学习》一一2.5 数据驱动系统的基本组件
查看>>
CTO CORNER:为什么开放金融应用程序接口十分重要
查看>>
传东芝可能会拒绝富士康提出的270亿美元报价
查看>>
如何对付“邪恶女佣”?表想太多,人家是一种攻击而已……
查看>>
数据分析时代到来 颠覆了既有理念
查看>>
《Cocos2D权威指南》——3.4 CCLayer层类
查看>>
网络安全七种意识:发展网络国防力量刻不容缓
查看>>
微软收购Linkedin:企业和生产力市场的航母编队
查看>>
通讯软件化及业务流程集成
查看>>
不需神化大数据,更不必妖魔化!
查看>>
量子通信,永不陷落的安全堡垒?
查看>>
美媒称俄黑客造成卡塔尔断交潮 俄:啥事都栽给我
查看>>
津巴布韦规划41MW太阳能电站 何时启动还需拭目以待
查看>>
摩尔定律终结,计算的未来在哪里
查看>>