k近邻算法k值过小和过大有什么危害?k值如何选取?
① 如果选取较小的k值,那么就会意味着我们的整体模型会变得复杂,容易发生过拟合。
注:过拟合即训练的模型泛化能力弱,不适应新的样本。
注:假设我们选取 k=1 这个极端情况,怎么就使得模型变得复杂,又容易过拟合了呢?
注:假设我们有训练数据和待分类点如下图:
注:上图中有俩类,一个是黑色的圆点,一个是蓝色的长方形,现在我们的待分类点是红色的五边形。
注:由图中可以看出五边形离黑色的圆点最近,k又等于1,我们最终判定待分类点是黑色的圆点。
注:由这个处理过程我们很容易能够感觉出问题了,如果k太小了,比如等于1,我们很容易学习到噪声,也就非常容易判定为噪声类别。
注:如果,k大一点,k等于8,把长方形都包括进来,我们很容易得到我们正确的分类应该是蓝色的长方形!如下图: