理解K近邻算法

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

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值