【统计学习方法读书笔记】K_NN

一、k近邻算法原理理解

1、寻找离自己最近的k个伙伴
  k近邻是指给定一个训练数据集,对新的输入实例,在给定的训练集中找到与该实例最近邻的k个实例。
2、少数服从多数
  如果这k个实例的多数属于某个类,就把该输入实例分类到这个类中。
  因为特征空间中两个实例点的距离是两个实例点相似程度的反映。(《统计学习方法》)

二、k近邻参数理解

(一)k值的选择

1、k值选择较小

“如果我们选取较小的k值,那么就会意味着我们的整体模型会变得复杂,容易发生过拟合!”
                              ——《统计学习方法》

  以上是李航老师在书中对于k值过小的解释,是不是很抽象~下面我来利用图解给大家通俗的讲解一下原理。

  加上我们选取k=1的特殊情况,这被称为最近邻算法。对于输入的实例点x,最近邻法将训练数据集中与x最邻近点的类作为x的类。

假设我们有训练数据和待分类点如下图:
在这里插入图片描述
  上图中有俩类,一个是黑色的圆点,一个是蓝色的长方形,现在我们的待分类点是红色的五边形,显然在红色五边形旁的黑点是异常点,属于数据噪声。

  好,根据我们的k近邻算法步骤来决定待分类点应该归为哪一类。我们由图中可以得到,很容易我们能够看出来五边形离黑色的圆点最近,k又等于1,那太好了,我们最终判定待分类点是黑色的圆点。

  由这个处理过程我们很容易能够感觉出问题了,如果k太小了,比如等于1,那么模型就太复杂了,我们很容易学习到噪声,也就非常容易判定为噪声类别,而在上图,如果,k大一点,k等于8,把长方形都包括进来,我们很容易得到我们正确的分类应该是蓝色的长方形!如下图:
在这里插入图片描述
  所谓的过拟合就是在训练集上准确率非常高,而在测试集上准确率低,经过上例,我们可以得到k太小会导致过拟合,很容易将一些噪声(如上图离五边形很近的黑色圆点)学习到模型中,而忽略了数据真实的分布!

2、k值选择较大

  如果我们选取较大的k值,就相当于用较大邻域中的训练数据进行预测,这时与输入实例较远的(不相似)训练实例也会对预测起作用,使预测发生错误,k值的增大意味着整体模型变得简单。

  我们想,如果k=N(N为训练样本的个数),那么无论输入实例是什么,都将简单地预测它属于在训练实例中最多的类。这时,模型是不是非常简单,这相当于你压根就没有训练模型呀!直接拿训练数据统计了一下各个数据的类别,找最大的而已!这好像下图所示:
在这里插入图片描述
  我们统计了黑色圆形是8个,长方形个数是7个,那么哈哈,如果k=N,我就得出结论了,红色五边形是属于黑色圆形的(明显是错误的好不,捂脸!)

  这个时候,模型过于简单,完全忽略训练数据实例中的大量有用信息,是不可取的。

  恩,k值既不能过大,也不能过小,在我举的这个例子中,我们k值的选择,在下图红色圆边界之间这个范围是最好的,如下图:
在这里插入图片描述
注:这里只是为了更好让大家理解,真实例子中不可能只有俩维特征,但是原理是一样的1,我们就是想找到较好的k值大小。

3、如何选择较好的k值

“在应用中,k值一般取一个比较小的数值,通常采用交叉验证法来选取最优的k值。”
                              ——《统计学习方法》
  也就是说,选取k值很重要的关键是实验调参,类似于神经网络选取多少层这种,通过调整超参数来得到一个较好的结果

(二)距离最近

  现在我们理解了k值的选择,那接下来的问题就是如果定义距离最小。因为只有定义了距离最小,我们才能找到输入实例的具体分类。

  在k近邻模型中,其特征空间一般是n维实数向量空间 R n R^n Rn。一般使用的是欧式距离。

  李航博士在书中给出了几种度量距离的方法。

设 特 征 空 间 X 是 n 维 实 数 向 量 空 间 R n , x i , x j ∈ 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 距 离 定 义 为 \small 设特征空间 \mathcal{X} 是n维实数向量空间R^n,x_i,x_j\in\mathcal{X},x_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T,x_j=(x_j^{(1)},x_j^{(2)},\cdots,x_j^{(n)})^T,x_i,x_j的L_P距离定义为 XnRnxi,xjXxi=(xi(1)xi(2)xi(n))Txj=(xj(1)xj(2)xj(n))T,xi,xjLP

          L P ( x i , x j ) = ( ∑ l = 1 n ∣ x i ( l ) − x j ( l ) ∣ p ) 1 p , p ≥ 1 \small L_P(x_i,x_j)=(\sum_{l=1}^n |x_i^{(l)}-x_j^{(l)}|^p)^{\frac{1}{p}}, p\ge1 LP(xi,xj)=(l=1nxi(l)xj(l)p)p1,p1

当 p = 2 时 , 称 为 欧 式 距 离 ( E u c l i d e a n d i s t a n c e ) , 即 \small 当p=2时,称为欧式距离(Euclidean distance),即 p=2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值