统计学习方法——K近邻法【k-NN】(一)

k k k近邻法( k − N N k-NN kNN

一种基本的分类与回归方法。

k k k 近邻算法

  • 思想
    给定一个训练数据集,对新的输入示例,在训练集中找到与该实例最近邻的 k k k个实例,依据这 k k k个实例进行分类。
  • 特点
    • 监督学习
    • 懒惰学习
    • 假设——基于样本总能在任意小距离内找到一个训练样本——在现实中可能不成立
    • 算法重点在于距离度量
  • 算法规范表述
    • 输入:训练样集 T T T,待检测的样本 x x x
    • 输出:实例 x x x所属的类 y y y
    • 计算
      1. 根据给定的距离度量,在训练集 T T T中找到与 x x x最近的 k k k个点,包含这 k k k个点的邻域记作 N k ( x ) {N_k}\left( x \right) Nk(x)
      2. N k ( x ) {N_k}\left( x \right) Nk(x)中根据分类决策规则(如多数表决等)决定 x x x的类别 y y y:
        y = arg ⁡ max ⁡ c j ∑ x i ∈ N k ( x ) I ( y i = c j ) ,    i = 1 , 2 , ⋯   , N ;    j = 1 , 2 , ⋯   , K y = \arg \mathop {\max }\limits_{{c_j}} \sum\limits_{{x_i} \in {N_k}\left( x \right)} {I\left( {{y_i} = {c_j}} \right),\;i = 1,2,} \cdots ,N;\;j = 1,2, \cdots ,K y=argcjmaxxiNk(x)I(yi=cj),i=1,2,,N;j=1,2,,K
        其中 I I I为指示函数,当 y i = c j y_i=c_j yi=cj时为 1 1 1,否则为 0 0 0
  • 最邻近算法
    k = 1 k=1 k=1时,称为最邻近算法。

k k k近邻模型

k k k近邻法使用的模型实际上对应于特征空间的划分,包括三个基本要素:距离度量 k k k值得选择以及分类决策规则

模型

k k k近邻中,如果训练集、距离度量、 k k k以及分类决策确定后,新的输入实例的类也唯一确定

相当于根据上述要素将特征空间划分为子空间,确定子空间每个点所属的类。

  • 单元:对于每个训练样本 x i x_i xi距离该点比其他点更近的所有点构成的区域。
距离度量

对于训练样本中的任意两个样本 x i , x j x_i,x_j xi,xj,其特征空间为 n n n,即 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} = {\left( {x_i^{\left( 1 \right)},x_i^{\left( 2 \right)}, \cdots ,x_i^{\left( n \right)}} \right)^T},{x_j} = {\left( {x_j^{\left( 1 \right)},x_j^{\left( 2 \right)}, \cdots ,x_j^{\left( n \right)}} \right)^T} xi=(xi(1),xi(2),,xi(n))T,xj=(xj(1),xj(2),,xj(n))T,常用的距离包括以下几种:

  1. 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\limits_{l = 1}^n {{{\left| {x_i^{\left( l \right)} - x_j^{\left( l \right)}} \right|}^p}} } \right)^{\frac{1}{p}}} Lp(xi,xj)=(l=1nxi(l)xj(l)p)p1
  2. 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\limits_{l = 1}^n {\left| {x_i^{\left( l \right)} - x_j^{\left( l \right)}} \right|} L1(xi,xj)=l=1nxi(l)xj(l)
  3. p = 2 p=2 p=2时,为欧式距离
    L 2 ( x i , x j ) = ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ 2 {L_2}\left( {{x_i},{x_j}} \right) = \sqrt {\sum\limits_{l = 1}^n {{{\left| {x_i^{\left( l \right)} - x_j^{\left( l \right)}} \right|}^2}} } L2(xi,xj)=l=1nxi(l)xj(l)2
  4. p = ∞ p=\infty p=时,是各个坐标距离的最大值
    L ∞ ( x i , x j ) = max ⁡ l ∣ x i ( l ) − x j ( l ) ∣ {L_\infty }\left( {{x_i},{x_j}} \right) = \mathop {\max }\limits_l \left| {x_i^{\left( l \right)} - x_j^{\left( l \right)}} \right| L(xi,xj)=lmaxxi(l)xj(l)
    下图给了详细的表示(不同算法距离是不同的)。
    距离
k k k值选择

k k k值选择的不同也会产生巨大影响。
两种选择:

  • 选择较小的 k k k值:
    • 优点
      • 近似误差小(只有与输入实例相近的才会影响结果)
    • 缺点
      • 估计误差大(预测结果对临近点非常敏感)

总的来说 ,随着 k k k值减小,整体模型变复杂,易发生过拟合

  • 选择较大的 k k k值:
    优缺点正好与选择较小 k k k值相反。

通常选择较小的 k k k,并使用交叉验证选择最优 k k k值。

分类决策规则

k k k近邻中使用的往往是多数表决,应该很好理解就不赘述了。
多数表决规则等价于经验风险最小化。

参考文献

《机器学习》
《统计学习方法》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值