请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么knn算法的k越小模型会越复杂?

knn不是计算出样本与每个样本的距离后,对前k个距离最近的样本进行投票,然后最高票胜出。那为什么说k越小越容易过拟合呢?

正在回答

1回答

liuyubobobo 2018-01-23 03:20:38

直观地理解,过拟合就是学习到了很多“局部信息”,或者是“噪音”,使得我们的模型中包含很多“不是规律的规律”。在knn算法中,k越小,就越有可能让我们的学习结果被“局部信息”所左右。在极端情况下,k=1,knn算法的结果只由离我们待预测样本最近的那个点决定,这使得我们knn的结果高概率被“有偏差的信息”或者“噪音”所左右,是一种过拟合。


一个简单的可视化看过拟合的方式,是看决策边界的形状。“决策边界”的概念会在下一章介绍。决策边界越不规则,越有可能是过拟合。因为不规则的决策边界意味着数据的特征稍微有一点微小的变化,我们的分类算法就可能改变分类结果,也就是所谓的对噪音很明显。我们可以使用我们在这个课程中后续一直使用的plot_decision_boundary这个函数,来观察一下knn中,对k不同的取值,决策边界的不同。可以考虑看完下一章,再回头看下面的图示。在这里,我简单绘制了对于iris数据,knn中的k取值不同,决策边界的不同。很显然,k越小,决策边界越不规则:)

https://img1.sycdn.imooc.com//szimg/5a6638fc0001cc9c10900728.jpg

https://img1.sycdn.imooc.com//szimg/5a66386a0001728610860695.jpg

https://img1.sycdn.imooc.com//szimg/5a66386b00013bd510970680.jpg

https://img1.sycdn.imooc.com//szimg/5a66386b000186b711280700.jpg


代码参见:https://github.com/liuyubobobo/Play-with-Machine-Learning-Algorithms/blob/master/09-Logistic-Regression/Optional-01-kNN-Decision-Boundary/Optional-01-kNN-Decision-Boundary.ipynb

9 回复 有任何疑惑可以回复我~
  • 之前也有类似问题,模模糊糊地理解了下,从图上看更好理解了,比用文字描述简单多了
    回复 有任何疑惑可以回复我~ 2018-03-06 16:04:33
  • 很直观的理解,恍然大悟!
    回复 有任何疑惑可以回复我~ 2018-04-21 21:40:32
  • 我补充一点。knn和神经网络不一样的一点在于,knn并没有需要训练的参数。fit只是记住了训练数据(和标签)。在预测时,输入测试数据,根据你指定的k去取最近的k个点然后投票。因此,k越小,投票结果越容易受到个别点的影响。体现在决策边界就是“弯弯曲曲”。学习到了更多细节,所以说模型更复杂。
    回复 有任何疑惑可以回复我~ 2021-05-19 15:12:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信