统计学习方法-3(k近邻)

k近邻法(k-nearest neighbor,k-NN)是一种基本分类与回归方法,书中只讨论分类问题中的k近邻法。

  • 输入为实例的特征向量
  • 输出为实例的类别
  • 分类时,对于新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测
  • 三要素:k值选择、距离度量及分类决策规则

k近邻算法

  • 输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\left\{(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{N},y_{N})\right\} T={(x1,y1),(x2,y2),...,(xN,yN)}
  • 输出:实例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

k近邻法的特殊情况是k=1的情形,称为最近邻算法

k近邻模型

模型

特征空间中,每个训练实例点,距离该点比其他点更近的所有点组成一个区域,叫做单元(cell),


每个训练实例点拥有一个单元,所有训练实例点组成的单元构成对特征空间的一个划分
将实例xi的类yi作为其单元中所有点的类标记

在这里插入图片描述

距离度量

  • 特征空间中两个实例点的距离是两个实例点相似程度的反映。
  • k近邻模型的特征空间一般是n维实数向量空间 R n R^{n} Rn ,使用的距离是欧氏距离,但也可以是其他距离 L p L_{p} Lp距离或Minkowski距离

设特征空间X是n维实数向量空间, x i , x i ϵ X , x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) T , x j = ( x j ( 1 ) , x j ( 2 ) , . . . , x j ( n ) ) T , x i , x j 的 L p 距离定义为: x_{i},x_{i}\epsilon X, x_{i}=(x_{i}^{(1)},x_{i}^{(2)},...,x_{i}^{(n)})^{T}, x_{j}=(x_{j}^{(1)},x_{j}^{(2)},...,x_{j}^{(n)})^{T},x_{i},x_{j}的L_{p}距离定义为: xi,xiϵX,xi=(xi(1),xi(2),...,xi(n))T,xj=(xj(1),xj(2),...,xj(n))T,xi,xjLp距离定义为:

L p ( x i , x j ) = ( ∑ l = 1 n ∣ x i l − x i l ∣ p ) 1 p L_{p}(x_{i},x_{j})=(\sum_{l=1}^{n}|x_{i}^{l}-x_{i}^{l}|^{p})^{\frac{1}{p}} Lp(xi,xj)=(l=1nxilxilp)p1

  • 这里p>=1。当p=2时,称为欧氏距离,即
  • L 2 ( x i , x j ) = ( ∑ l = 1 n ∣ x i l − x i l ∣ 2 ) 1 2 L_{2}(x_{i},x_{j})=(\sum_{l=1}^{n}|x_{i}^{l}-x_{i}^{l}|^{2})^{\frac{1}{2}} L2(xi,xj)=(l=1nxilxil2)21

  • p=1时,称为曼哈顿距离,即
    - L 1 ( x i , x j ) = ( ∑ l = 1 n ∣ x i l − x i l ∣ 1 ) L_{1}(x_{i},x_{j})=(\sum_{l=1}^{n}|x_{i}^{l}-x_{i}^{l}|^{1}) L1(xi,xj)=(l=1nxilxil1)

  • p = ∞ p=\infty p=时,它是各个坐标距离的最大值,即
  • L ∞ ( x i , x j ) = max ⁡ l ∣ x i l − x j l ∣ L_{\infty }(x_{i},x_{j})=\displaystyle \max_{l}|x_{i}^{l}-x_{j}^{l}| L(xi,xj)=lmaxxilxjl

k值的选择

  • 较小k值,近似误差减小,估计误差增大,对近邻实例敏感,模型更复杂,容易过拟合
  • 较大k值,近似误差增加,估计误差减小,模型变得简单
  • k=N,模型过于简单,完全忽略训练实例中有用信息,不可取
  • 应用中,一般选比较小的数值,通常采用交叉验证法来选取最优的k值

ps:

  • 近似误差:训练数据上的误差
  • 估计误差:测试数据上的误差

分类决策规则

多数表决规则
如果分类的损失函数为0-1损失函数,分类函数为

  • f : R n → { c 1 , c 2 , . . . , c k } f:R^{n}\to \left\{c_{1},c_{2},...,c_{k} \right\} f:Rn{c1,c2,...,ck}
    那么误分类的概率为:
  • P ( Y ≠ f ( X ) ) = 1 − P ( Y = f ( X ) ) P(Y\neq f(X))=1-P(Y=f(X)) P(Y=f(X))=1P(Y=f(X))

对于实例x最近邻的k个训练实例点构成集合 N k ( x ) N_{k}(x) Nk(x),如果涵盖 N k ( x ) N_{k}(x) Nk(x)的区域的类别是 c j c_{j} cj,那么误分类率

  • 1 k ∑ x i ϵ N k ( x ) I ( y i ≠ c j ) = 1 − 1 k ∑ x i ϵ N k ( x ) I ( y = c j ) \frac{1}{k}\sum_{x_{i}\epsilon N_{k}(x)}I(y_{i}\neq c_{j})=1-\frac{1}{k}\sum_{x_{i}\epsilon N_{k}(x)}I(y=c_{j}) k1xiϵNk(x)I(yi=cj)=1k1xiϵNk(x)I(y=cj)

要使误分类率最小即经验风险最小,就要使 1 k ∑ x i ϵ N k ( x ) I ( y = c j ) \frac{1}{k}\sum_{x_{i}\epsilon N_{k}(x)}I(y=c_{j}) k1xiϵNk(x)I(y=cj)最大,所以多数表决规则等价于经验风险最小化

k近邻法的实现:kd树

好难…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值