我是靠谱客的博主 从容火,最近开发中收集的这篇文章主要介绍理解K近邻算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

K近邻算法是一种基于实例的学习方法,学的不是明确的泛化模型,而更是样本之间的关系。

k 近邻算法先找到高维空间中与未知实例最接近的 k个训练实例,再根据少数服从多数的原则,将这 k 个实例中出现最多的类别标签分配给未知的实例。超参数 k对性能的影响较大,甚至会影响分类结果。

从另一个角度看,超参数 k 表示了模型的复杂度,准确地说是和模型的复杂度成反比关系。如果训练集的容量为 N,算法的有效参数数目就可以近似表示为 N/k。

k均值的分类结果实质上是近邻区域内(就是上图中的圆圈多个训练实例的平均,越大的 k 值意味着近邻区域包含的点数越多,平均化的程度就越高,对训练实例中噪声的平滑效果也就越好,相应的模型复杂度就越低。

反过来,越小的 k 值意味着近邻区域越狭窄,平均化的程度也就越低。这时的分类结果只由离未知数据点最近的少量训练实例决定,因而更容易受到这些实例中噪声的影响,也会表现出更强的过拟合。

解决维数灾难最直接有效的方式就是增加数据点的数量,当数据点的数量没法增加时就得退而求其次,想办法降低特征空间的维度。特征选择和特征提取都可以用于 k 近邻算法对数据的预处理。

k 近邻算法的运行方式和以线性回归为代表的参数方法截然相反。线性回归的运算量主要花在参数拟合上,参数被计算出来,训练数据的历史使命就完成了,新来的数据都会用这组参数来处理。可 k近邻算法的训练过程没那么复杂,只需要将数据存储下来就行了。可是对新实例进行分类时,k近邻算法需要找到离它最近的 k个训练实例,这才是算法主要的运算负荷。也就是说它具有无需训练的优点,但分类新实例的计算复杂度较高。
在这里插入图片描述

kkk 近邻算法的性能取决于超参数 kkk 的取值和距离的定义方式。

最后

以上就是从容火为你收集整理的理解K近邻算法的全部内容,希望文章能够帮你解决理解K近邻算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部