我们在上一篇文章中给大家介绍了很多关于K近邻算法的知识,比如K近邻算法的三要素、算法执行的步骤、应用领域以及注意事项,但是K近邻算法的使用注意事项可能大家可能不是很清楚的,我们在这篇文章中针对这个问题进行解答,并且告诉大家K近邻算法的优点以及缺点。
K近邻算法的使用注意事项我们在前面已经提到,具体就是使用距离作为度量时,要保证所有特征在数值上是一个数量级上,以免距离的计算被数量级大的特征所主导。在数据标准化这件事上,还要注意一点,训练数据集和测试数据集一定要使用同一标准的标准化。这是为什么呢?其实很简单,总的来说就有两点内容,第一就是标准化其实可以视为算法的一部分,既然数据集都减去了一个数,然后除以一个数,这两个数对于所有的数据来说,就要一视同仁。第二就是训练数据集其实很少,在预测新样本的时候,新样本就更少得可怜,如果新样本就一个数据,它的均值就是它自己,标准差是0,这根本就不合理。
那么K近邻算法的优点是什么呢?K近邻算法的优点具体体现在四方面,第一就就是k近邻算法是一种在线技术,新数据可以直接加入数据集而不必进行重新训练,第二就是k近邻算法理论简单,容易实现。第三就是准确性高,对异常值和噪声有较高的容忍度。第四就是k近邻算法天生就支持多分类,区别与感知机、逻辑回归、SVM。
说了K近邻算法的优点,我们就给大家介绍一下K近邻算法的缺点,基本的 k近邻算法每预测一个“点”的分类都会重新进行一次全局运算,对于样本容量大的数据集计算量比较大。而且K近邻算法容易导致维度灾难,在高维空间中计算距离的时候,就会变得非常远;样本不平衡时,预测偏差比较大,k值大小的选择得依靠经验或者交叉验证得到。k的选择可以使用交叉验证,也可以使用网格搜索。k的值越大,模型的偏差越大,对噪声数据越不敏感,当 k的值很大的时候,可能造成模型欠拟合。k的值越小,模型的方差就会越大,当 k的值很小的时候,就会造成模型的过拟合。
讲到这里,关于K近邻算法的知识我们总算是给大家讲完了,大家看了这篇文章以后对于K近邻算法有了一定的了解了吧?希望这篇文章能够帮助大家更好地认识K近邻算法。