统计学习笔记之K近邻法

 

K近邻作为基本的分类和回归方法。在分类中,对新的实例,根据k个最近邻得训练实例的类别,通过多数表决进行预测。

一、算法

输入:T =\left \{ (x_{1},y_{1}),(x_{2},y_{2}),\cdots (x_{n},y_{n}) \right \}x_{i}\in \mathbb{X}为实例的特征向量,y_{i}\in \mathbb{Y} =\left \{ c_{1},c_{2}\cdots c_{n} \right \}为实例的类别。

输出:实例的x的所属的类y。

(1)根据给定距离度量,在训练集中找出与x最近邻的k个点,涵盖这k个点的x的领域记作N_{k}\left ( x \right )

(2)在N_{k}(x) 根据分类决策规则(类似多数投票)决定x属于哪一类。

二、相关概念

值得一提的是关于距离度量的几个概念。

距离通式:

                                                L_{p}\left ( x_{i},y_{i} \right )=\left [ \sum_{l=1}^{n} \left | x_{i}^{\left ( l \right )} -y_{i}^{\left ( l \right )}\right |^{p}\right ]^{\frac{1}{p}}

欧式距离,p=2,即

                                               L_{2}\left ( x_{i},y_{i} \right )=\left [ \sum_{l=1}^{n} \left | x_{i}^{\left ( l \right )} -y_{i}^{\left ( l \right )}\right |^{2}\right ]^{\frac{1}{2}}

曼哈顿距离,p=1,即

                                               L_{1}\left ( x_{i},y_{i} \right )=\sum_{l=1}^{n} \left | x_{i}^{\left ( l \right )} -y_{i}^{\left ( l \right )}\right |

 

各个坐标距离的最大值p=\infty,即

                                               L_{\infty }\left ( x_{i},y_{i} \right )=max_{l} \left | x_{i}^{\left ( l \right )} -y_{i}^{\left ( l \right )}\right |

下图直观展示了三种不同度量方式在表示到原点距离是1的点画出的图像:

                                                 

 

三、kd树

KNN在对数据进行k近邻搜索的时候,有时因为数据量较大,搜索开销是个值得思考的问题。于是,kd树的思想应运而生。实际上,kd树是二叉树,是考虑将k维空间实例点进行存储和便于快速检索的树形数据结构。

算法

输入:k维空间数据集T=\left \{ x_{1},x_{2}, \cdots x_{n} \right \},x_{i}=(x^{(1)},x^{(2)}\cdots x^{(n)})

输出:kd树

(1)构造根节点,包含T的k维空间的超矩形区域。

(2)选择x^{(1)}的坐标轴,以T中的所有实例的x^{(1)}坐标的中位数作为切分点,通过切分点并于坐标轴x^{(1)}垂直作超平面,将超矩形区域分成两个子区域。以此生成深度为1的左右两个结点,左结点表示x^{(1)}小于切分点的子区域,右结点表示x^{(1)}大于切分点的子区域。

(3)重复(2)操作,直至两个子区域没有实例存在为止。

可以借用《统计学习》有道例题理解:

 

 

kd树最近邻搜索算法

输入:已构造好kd树,目标点为x.

输出:x的最近邻点.

(1)递归搜索包含目标结点的叶结点。

(2)设叶结点为最近点。

(3)递归回退,对于每个结点如果比当前最近点距离更小,则以该点为最近点。对于每个结点的兄弟结点也要进行遍历,判断是否更新最近点。

(4)当回退到根结点,搜索结束。最后的最近点即为所求。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值