k近邻

KNN是一种分类和回归算法,在分类问题的KNN中,以训练集样本来划分特征向量空间,根据目标样本在特征空间相邻最近的k个点的类别,以多数表决的方式来判断目标样本的类别。

KNN模型的三要素:距离度量、K值选择、分类决策规则。

距离度量

常用的距离度量是欧式距离和更一般的lp距离

K值选择

k值过大,模型更简单,估计误差小,近似误差大。k值过小,模型更复杂,有过拟合风险,估计误差大,近似误差小。通常采用交叉验证选择最优的k值。

分类决策规则

常用的是多数表决,对应经验风险最小化。

构造kd树

k近邻模型的实现主要考虑的是如何快速搜索最近的k个点,主要使用kd树(二叉树)实现。

构造kd树的主要思想:分别以训练样本的每一维作为切分坐标轴,训练样本对应维度下数值的中位数所对应的样本点为切分点,中位数为偶数个使用较大的为切分点。小于切分点的节点为左子节点,大于切分点的节点为右子节点。

搜索kd树

在kd树中搜索近邻点的主要思想:在kd树中,以包含目标点S的叶节点D作为当前最近邻,而真正的最近邻一定在以目标点S为中心,目标点S与叶节点D的距离为半径的邻域(超球体)内。返回叶节点D的父节点,如果父节点离目标点距离更近,则更新为新的当前最近邻。否则检查该父节点另一子节点对应的区域是否与目标点S的邻域相交。如果相交,则移动到该另一子节点进行最近邻搜索。如果均不满足,继续向上返回父节点。直到到达根节点结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值