【李航统计学习笔记】第三章:KNN

KNN模型

KNN模型实际上对应于对特征空间的划分,虽然没有具体的数学抽象语言描述,但是仍然存在其三要素:距离度量、K值的选择、分类决策规则

算法3.1:

输入:训练数据集 T = [ ( x 1 , y 1 ) , … , ( x N , y N ) ] T=\left[\left(x_{1}, y_{1}\right), \ldots,\left(x_{N}, y_{N}\right)\right] T=[(x1,y1),,(xN,yN)], x i ∈ X ⊆ R n x_{i} \in X \subseteq R^{n} xiXRn, y i ∈ Y = { c 1 , ⋯   , c K } \quad y_{i} \in Y=\left\{c_{1}, \cdots, c_{K}\right\} yiY={c1,,cK} , 实例特征向量 x x x

  1. 根据给定的距离度量,在训练集中找到与x最近的k个点,涵盖这k个点的邻域记作 N k ( x ) N_{k}(x) Nk(x)
  2. N k ( x ) N_{k}(x) Nk(x)中根据分类决策规则(如多数表决)决定 x x x的类别 y y y

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

模型

kNN模型没有显式的规则模型

距离度量

k近邻方法的特征空间一般是n维实数向量空间 R n \mathbf{R}^{n} Rn 。使用的距离是欧式距离。

假设特征空间 X X X是n维实数向量空间 R n \mathbf{R}^{n} Rn, x i = ( x i ( 1 ) , x i ( 2 ) , ⋯   , x i ( n ) ) T x_{i}=\left(x_{i}^{(1)}, x_{i}^{(2)}, \cdots, x_{i}^{(n)}\right)^{\mathrm{T}} xi=(xi(1),xi(2),,xi(n))T, x j = ( x j ( 1 ) , x j ( 2 ) , ⋯   , x j ( n ) ) T x_{j}=\left(x_{j}^{(1)}, x_{j}^{(2)}, \cdots, x_{j}^{(n)}\right)^{\mathrm{T}} xj=(xj(1),xj(2),,xj(n))T, x i , x j x_{i}, x_{j} xi,xj L p L_{p} Lp距离定义为

L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p L_{p}\left(x_{i}, x_{j}\right)=\left(\sum_{l=1}^{n}\left|x_{i}^{(l)}-x_{j}^{(l)}\right|^{p}\right)^{\frac{1}{p}} Lp(xi,xj)=(l=1n xi(l)xj(l) p)p1
这里 p ≥ 1 p\ge1 p1, 当 p = 2 p=2 p=2时,称为欧式距离,也就是
L 2 ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ 2 ) 1 2 L_{2}\left(x_{i}, x_{j}\right)=\left(\sum_{l=1}^{n}\left|x_{i}^{(l)}-x_{j}^{(l)}\right|^{2}\right)^{\frac{1}{2}} L2(xi,xj)=(l=1n xi(l)xj(l) 2)21
p = 1 p=1 p=1时,称为曼哈顿距离
L 1 ( x i , x j ) = ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ L_{1}\left(x_{i}, x_{j}\right)=\sum_{l=1}^{n}\left|x_{i}^{(l)}-x_{j}^{(l)}\right| L1(xi,xj)=l=1n xi(l)xj(l)

在这里插入图片描述

(source:https://medium.com/@balaka2605/distances-in-machine-learning-289afbce8148)

p = ∞ p=\infin p= 时,它是各个坐标距离的最大值,
L ∞ ( x i , x j ) = max ⁡ l ∣ x i ( l ) − x j ( l ) ∣ L_{\infty}\left(x_{i}, x_{j}\right)=\max _{l}\left|x_{i}^{(l)}-x_{j}^{(l)}\right| L(xi,xj)=lmax xi(l)xj(l)

对于两个点的切比雪夫距离(棋盘距离):
max ⁡ ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ ) \max \left(\left|x_{1}-x_{2}\right|,\left|y_{1}-y_{2}\right|\right) max(x1x2,y1y2)

k值的选择

除了距离度量外,还有K值的选择对KNN算法的结果也会产生重大影响。

  • 如果选择较小的k值,就相当于用较小的领域中的训练实例进行预测,“学习”的近似误差会减小,只有与输入实例较近的实例才会对预测结果起到作用。但缺点就是学习的估计误差就会增大,预测结果就会近邻的实例点非常敏感,如果邻近的实例点恰好是噪声,预测就会出错。
  • 如果选择较大的值,学习的误差估计会减小,但是与此同时,近似误差就会增大,这时会出现对于距离比较远的实例点也会对预测起作用,使得预测结果错误。
  • 在应用中:先取一个较小的k值,在通过交叉验证法选取最优的k值。

分类决策规则

KNN中的决策规则通常就是“投票选举”——少数服从多数的方式。损失函数为
1 k ∑ x i ∈ N k ( x ) I ( y i ≠ c j ) \frac{1}{k} \sum_{x_{i} \in N_{k}(x)} I\left(y_{i} \neq c_{j}\right) k1xiNk(x)I(yi=cj)
例子:
在这里插入图片描述

实心圆内都判断为红色的损失值
1 3 [ I ( y 1 ≠ r e d ) + I ( y 2 ≠ r e d ) + I ( y 3 ≠ r e d ) ] 1 3 ( 0 + 0 + 1 ) = 1 3 \begin{gathered} \frac{1}{3}\left[I\left(y_{1} \neq r e d\right)+I\left(y_{2} \neq r e d\right)+I\left(y_{3} \neq r e d\right)\right] \\ \frac{1}{3}(0+0+1)=\frac{1}{3} \end{gathered} 31[I(y1=red)+I(y2=red)+I(y3=red)]31(0+0+1)=31
实心圆内斗判断为蓝色的损失值
1 3 ( I 1 + I 2 + I 3 ) = 2 3 \frac{1}{3}\left(I_{1}+I_{2}+I_{3}\right)=\frac{2}{3} 31(I1+I2+I3)=32

Kd树

总结:

  1. Kd树采用了特殊的结构存储训练数据。

  2. Kd树可以减少计算距离的次数。

  3. 但当空间维数接近训练实例数时,它的效率会迅速下 降。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值