k-NN的k取1会怎么样

  统计/机器学习 监督式学习    浏览次数: 706
5

k-NN一般都选比较大的数,几乎没有见过选k=1,为什么?

如果k=1,会怎样?


谢谢!

 

Steven0612   2017-11-09 12:14



   3个回答 
12

举个两元分类的例子。上图是k=1,下图是k=100。

当k=1的时候,决策边界变得非常不光滑,换句话说,模型的决策规则变得非常复杂,而这个就会很容易造成过拟合。

至于k怎么选,可以参考k近邻算法怎么选k


DuckU   2017-11-10 10:54

5

k=1会严重的过拟合。

严重到训练误差为0,但是测试误差会很大。


雷猴   2017-11-10 10:17

1

+ $k$ 的值越小,模型就越复杂,所以就越容易过拟合,过拟合表现出来的特点就是“训练误差远小于测试误差”。

+ $k$ 的值越大,模型就越简单(可以从极端情况来理解,$k$ 设置成一个很大很大的数值,那么我们的模型就不用计算 $k$ 近邻了,把所有的训练样本都拿进来做一次投票就行了),所以就越容易欠拟合。


李可以   2018-08-15 10:17



  相关主题

线性可分是什么意思?   1回答

knn推导过程中的一个细节   2回答

支持向量机(SVM)里的支持向量是什么意思   5回答

adaboost里的learning rate是什么意思?   1回答

kNN的k=1为什么训练误差为0?   3回答

欠采样后概率还原问题   0回答

python里如何实现线性判别分析(LDA)?   1回答

逻辑回归的前提假设是什么?   1回答

线性回归的bagging   2回答

可以对线性回归进行boosting吗?   3回答

GBDT+LR的工作原理?   3回答

kNN算法有哪些缺点?   6回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!