kNN算法有哪些缺点?

  统计/机器学习 监督式学习 开放问题    浏览次数: 1185
4

kNN算是比较早期的算法了,但是业界似乎用的并不多,kNN有哪些明显的缺点或者短板吗

欢迎开放讨论


 

吴昊通   2018-01-16 23:30



   6个回答 
12

KNN属于懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢

可解释性较差,无法给出决策树那样的规则。

kNN算法必须保存全部的数据集,如果训练数据集很大,那么就需要耗费大量的存储空间。此外,由于必须对待分类数据计算与每一个训练数据的距离,非常耗时。


博观   2018-01-17 20:04

8

1. 计算代价很大

2. 无法处理categorical变量

3. 对变量的缩放非常敏感

4. 难以处理不同单位和不同数值范围的变量

5. 对高维数据表现不佳


Jiho   2018-01-18 12:24

7

kNN还有个问题就是k的选择。k总是在过拟合与欠拟合之间游走。

你可以说通过cross validation来选k,可是呢,你选出的k是全局适用的,而每个局部都是这个k最佳。

所以kNN总是无法避免地在一些区域过拟合,同时在另一些区域欠拟合。


abuu   2018-01-26 11:26

5

k-NN怕高维啊怕高维啊怕高维,说三遍

特别是遇到没什么用的特征,k-NN会不知所措,而且被那些没有什么prediction power的特征牵着鼻子走。

所以k-NN必须要先做特征选择,不然这些不相关的特征会影响到分类效果,因为k-NN自己无法学习到哪些特征重要、哪些不重要


sasa   2018-02-25 11:44

对,高维和不相干特征的影响,这个是要害。 - 木子周   2018-04-06 11:12
5

不能调参算缺点么?

比较牛的模型,一般都有很多参数可以调,比如神经网络或者xgboost。

但是对于K近邻模型来说,本来水平就一般,连参数也只有一个k可以调,就显得有点弱上加弱了。


Arsjun   2018-01-27 15:24

3

如果用K近邻模型做回归的话,一个比较明显的缺陷,就是K-NN无法做out of sample的回归预测。

因为用K-NN做回归的时候,预测值是它附近几个值的平均值。所以预测值不可能超过预测样本的最大值,也不可能小于样本的最小值。这个缺点其实是和回归树一样的。


TTesT   2018-02-24 09:42



  相关主题

为什么bias-variance一定会trade off?   2回答

如何理解PAC Learning?   1回答

机器学习算法中有哪些用到了贪婪算法的思想?   5回答

非参模型是什么意思?有哪些模型算是非参的?   2回答

hyperparameter与parameter的区别?   3回答

机器学习算法的鲁棒性是什么意思?   1回答

在线算法(online algorithm)是什么意思?   2回答

机器学习如何快速入门?   1回答

人类的第一个机器学习算法是什么?   2回答

机器学习中的奥卡姆剃刀原理是什么意思   5回答

数据泄漏(data leakage)是什么意思?   2回答

Bagging是什么意思?   3回答



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

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

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

我们谢绝答非所问。

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

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