《统计学习方法》——第三章 k近邻法

本文详细介绍了k近邻法的基本概念,包括其分类与回归原理、距离度量的选择、k值的影响以及分类决策规则。重点讨论了kd树在提高搜索效率的应用,包括平衡kd树的构造和搜索算法。
摘要由CSDN通过智能技术生成


前言

本文只要记录一些书中的一些小知识点,挑一些本人认为重要的地方进行总结。

各位道友!道长(zhǎng) 道长(chǎng)


一、k近邻法(k-nearest neighbor,k-NN

这是一种基本的分类与回归放啊。输入是实例特征向量,输出时实例的类别。

二、k近邻算法

输入:训练数据集 T = ( x 1 , y 1 ) . . . ( x N , y N ) T= {(x_1,y_1)...(x_N,y_N) } T=(x1,y1)...(xN,yN);实例的特征向量 x x x
输出: x x x所属的类y
(1)根据距离度量,在训练集T中找出与x最近的k个点,涵盖k个点的x的邻域记作 N k ( x ) N_k(x) Nk(x)
(2)在 N k ( x ) N_k(x) Nk(x)中根据分类决策规则(如多数表决)决定x的类别y
y = arg ⁡ max ⁡ c j I ( y i = c i ) , i = 1 , 2.. N y=\arg \max_{c_j}I(y_i=c_i) ,i=1,2..N y=argcjmaxI(yi=ci),i=1,2..N

其中I是指示函数,当属于该类ci是为1;
x是特征向量,y是类别,取值i=1,2,3....

从算法可知,模型由三个基本要素——距离度量、k值选择和分类决策规则

三、k-NN模型

3.1.距离度量

距离度量是两个实例点相似程度的反应
L p L_p Lp距离:
L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ ) 1 / p L_p(x_i,x_j)=(\sum_{l=1}^{n}|x_i^{(l)}-x_j^{(l)}|)^{1/p} Lpxi,xj=(l=1nxi(l)xj(l))1/p
当p=1为曼哈顿距离
当p=2为欧式距离
当p=∞为各个坐标的最大值
在这里插入图片描述

3.2 k值的选择

k值的选择对结果会有重大影响。

如果k较小,相当于用较小的邻域中的训练实例进行预测
优点是学习的近似误差会减小,只有与输入实例较近的训练实例才会对预测结果起作用。
缺点是学习的估计误差会增大,
这时预测结果会对近邻的实例点非常敏感

如果k较大,相当于用较大的邻域中的训练实例进行预测
优点是可以减少学习的估计误差
缺点是学习的近似误差会增。
这时输入实例较远的实例也会起预测作用。

在应用中,一般选取一个比较小的k值,用交叉验证发选取最优的k值。

3.3分类决策规则

分类规则往往是多数表决法。
误分类率如下
1 k ∑ x i ∈ N k ( x ) I ( y i ≠ c j ) = 1 − 1 k ∑ x i ∈ N k ( x ) I ( y i = c j ) \frac 1k \sum_{x_i\in N_k(x)}I(y_i \not= c_j)=1- \frac 1k \sum_{x_i\in N_k(x)}I(y_i = c_j) k1xiNk(x)I(yi=cj)=1k1xiNk(x)I(yi=cj)

要是误分类率最小,即经验风小最小,就要 ∑ x i ∈ N k ( x ) I ( y i = c j ) \sum_{x_i\in N_k(x)}I(y_i = c_j) xiNk(x)I(yi=cj)最大,所以多数表决规则等价于经验风险最小化

四、 k近邻法的视线,kd树

实现k近邻法是,最简单的方法是线性扫描,但是这种方法很不效率。于是,考虑特殊的存储结构存储训练数据,以减少计算距离的次数。下面介绍kd树算法。

4.1 构造平衡kd树

输入:k维空间数据集 T = x 1 . . x N T= {x_1..x_N } T=x1..xN;其中 x i = ( x i ( 1 ) . . . x i ( k ) ) x_i=(x_i^{(1)}...x_i^{(k)}) xi=(xi(1)...xi(k))
输出:kd树
(1)构造根节点,根节点对应包含T的k维空间的超矩形区域,
选择 x ( 1 ) x^(1) x(1)为坐标轴,以 x ( 1 ) x^(1) x(1)的中位数为切分点,将根节点对应的超矩形区域切分成两个子区域。切分点为新的根节点。
(2)重复:对深度为j的节点,选择 x ( l ) x^{(l)} x(l)为切分的坐标轴,其中l=j(mod k)+1,继续以中位数为切分点,不断的将之分为2部分
(3)直到两个子区域没有实例存在为止。

例子:
在这里插入图片描述
在这里插入图片描述

4.2搜索kd树

输入:kd树,目标点x
输出:x的最近邻

(1)找到包含目标点x的叶节点。
(2)以此叶节点为“当前最近点”
(3)递归的向上回退:
  (a)如果该节点保存的实例点比当前最近点的距离目标点更近,,则以该实例点为“当前最近点”
  (b)检查该子节点的父节点的另一子节点对应的区域是否有更近的节点。具体的,检查另一子节点对应的区域是否与以目标点为球心、以目标点与“当前最近点”间距离为半径的超球体相交。
     如果相交,可能另一个子节点赌赢的区域内有更近的点,移动到另一个子节点,递归进行最近邻搜索
     不相交,回退
(4)退到根节点,结束。最后的“当前最近点”即为x的最邻近点。
在这里插入图片描述

总结

今天的内容是统计学习方法的第三章节,也不难,结合模型图理解更加方便

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值