统计学习方法-K近邻法

简介

k近邻法的思想很简单,假定有一输入实例,我们找到距离它最近的K个训练集实例,并以K个实例中包含个数最多的种类作为输入实例的种类。前面一句话包含了K近邻法的三要素:K值、距离度量方法、分类决策(一般是多数表决)。

算法描述

K近邻法最特殊的是K=1的情景,这时称为最近邻法。

模型理解

怎样在空间中想象算法的描述呢?我们可以这样想,空间中任意K个点构成一个核心,该核心的类别是K个点中含个数最多的种类,那么有这么一片区域,该区域上的点到该核心的距离比到任意其它K个点(其它核心)的距离都要小,那么该区域上的点的种类与该核心的种类一样。若把K个点构成的核心想象成细胞核,那么对应的区域加上该细胞核就像是细胞一样。下面我们以K=1,即最近邻法在二维特征空间的划分做展示。

 图中的每个点相当于细胞核,每个细胞的区域相当于对特征空间的一个划分,落在该区域的点到细胞核的距离最小,与细胞核种类一样,注意,图中并不是细胞的种类可以重复,并不是10个细胞就是10个种类。K不等于1时的情景已经描述过,与K=1的情景区别在于,任意K个点构成细胞核,细胞的区域是根据该区域的点到该核的距离最短确定的。

我们可以看出,K近邻法并没有显式的学习过程,特征空间的划分一开始就是确定好的,我们只需要找对区域就行了。

距离度量

距离度量是空间中点相似度的度量,一般是L_{p}距离,

当p=2时,就是欧氏距离,也是初高中常用的计算两点距离公式 

K值选择的影响

K值过小,会预测结果对近邻的点非常敏感,如果近邻的点是噪音,则很可能判断错误,K越小,模型越复杂,也就说明容易出现过拟合。K过大,则相反。

K=N时,无论输入实例是什么,它都只会被认为训练实例中最多的类。K一般用交叉验证来确定。

构造kd树

为什么要构造kd树,这是为了解决线性扫描寻找最近邻的K个实例时,由于特征空间维数大或训练样本多导致的耗时耗算力的问题。

始终记住,我们要找距离最近的K个点。

kd树相当于不断地用垂直坐标轴的超平面将k维空间切分,注意这里的k代表特征空间的维度,不与K近邻法的K一样。经过切分后,会获得若干k维超矩形区域,每个区域对应kd树的一个结点。

切分点的选择,当前坐标轴上所有训练实例的中位数。注意,在李航的统计学习方法中,当实例个数是偶数时,中位数没有取两数的平均值,而是可任取一个,它取了较大的那一个。坐标轴的选择有很多种,可以看某座标轴上的数据的方差大小,或者就依次取,李航的书里采用了依次循环取坐标轴的方法。

具体算法如下:

 

kd树的搜索

为什么构造kd树可以加快k近邻搜索呢?

我们来看搜索kd树的过程(以最近邻搜素为例):给定一个目标点,我们要找到它的最近邻,我们首先在kd树上找到包含目标点的叶结点,该叶结点对应包含目标节点的最小超矩形区域,我们假设叶结点的实例是目标点的最近邻,那么要是存在更近的最近邻,它一定在以目标点为圆心,通过当前最近邻点的超球体内,为了判断是否有这样的点,我们得回退到当前结点的父结点(代表更大的超矩形区域),若该父结点的另一子结点,它的区域和超球体不相交,那么就说明不存在比当前最近邻更近的点,就可以停止搜索了,若相交,相交区域存在更近的点,则最近邻更新,若不存在,那么可以停止搜索了。注意,停止搜索并不是不继续搜索,它还要返回父结点进一步搜索,直到回退到根结点。我们可以看出kd树搜索只要退回根节点就行了,这可以减少不必要数据的搜索。

kd树试用于训练实例数远大于空间维数的K近邻搜索,当二者接近时,搜索效率大大下降,接近线性扫描。这个可以这样理解,训练实例越多,空间维数越小,那么该空间被切分的最小超矩形区域越多,而且每个区域内的点也很多,那么我们一次可以排除的点就越多,就省却了很多不必要的搜索。

参考文献:李航-统计学习方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

动感光波~~~biubiubiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值