这是一篇有关《统计学习基础》,原书名The Elements of Statistical Learning的学习笔记,该书学习难度较高,有很棒的学者将其翻译成中文并放在自己的个人网站上,翻译质量非常高,本博客中有关翻译的内容都是出自该学者的网页,个人解读部分才是自己经过查阅资料和其他学者的学习笔记,结合个人理解总结成的原创内容。
有关ESL更多的学习笔记的markdown文件,可在作者GitHub上查看下载。
原文 | The Elements of Statistical Learning |
---|---|
翻译 | szcf-weiya |
时间 | 2018-08-21 |
解读 | Hytn Chen |
更新 | 2020-01-06 |
最邻近方法用训练集 T \mathcal{T} T 中在输入空间中离 x x x 最近的观测组成 Y ^ \hat{Y} Y^.特别地,对 Y ^ \hat{Y} Y^ 的 k k k-最近邻拟合定义如下:
Y ^ ( x ) = 1 k ∑ x i ∈ N k ( x ) y i (2.8) \hat{Y}(x)=\frac{1}{k}\sum\limits_{x_i\in N_k(x)}y_i\tag{2.8} Y^(x)=k1xi∈Nk(x)∑yi(2.8)
N k ( x ) N_k(x) Nk(x) 是在训练样本中 k k k 个离 x x x 最近的点 x i x_i xi 组成的邻域.远近意味着度量,目前我们假设是欧氏距离.因此,用文字来叙述就是,我们在输入空间中找到离 x x x 最近的 k k k 个观测 x i x_i xi,然后取这些值的平均.
在图 2.2 中我们采用图 2.1 中同样的训练数据,然后采用 15 15 15-最近邻平均二进制编码作为拟合的方法.因此 Y ^ \hat{Y} Y^ 是橘黄色在邻域中的比例,然后如果 Y ^ > 0.5 \hat{Y} > 0.5 Y^>0.5 在邻域中的数量占了主要部分则将橘黄色的类赋值给 G ^ \hat{G} G^.有颜色的区域表明该区域里面的点根据这一条规则分成了橘黄色和蓝色,这种情形下是靠对网格上的点进行赋值找到的.我们可以看到分开蓝色和橘黄色的判别边界更加地不规则,而且对应于某一类所主导的局部聚集.
图 2.2 图 2.1 中一样的二维分类的例子.类别被二进制变量编码(蓝色为 0 0 0,橘黄色为 1 1 1),通过 15 15 15-最近邻平均拟合.因此预测的类别是选择 15 15 15-最近邻中占大部分的类别.
图 2.3 显示了 1 1 1-最近邻的分类结果: Y ^ \hat{Y} Y^ 被赋了距离 x x x 的最近点 x ℓ x_{\ell} xℓ 的值 y ℓ y_{\ell} yℓ.这种情形下,区域的分类可以相对简单的计算出来,这对应训练数据的 泰森多边形图 (Voronoi tessellation).每个点 x i x_i xi 都有一个对应的区域,这些小区域形成了离某点最近的区域.对于小区域里面的每一个点, G ^ ( x ) = g i \hat{G}(x)=g_i G^(x)=gi.判别边界比之前更加不规则了.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-98uFKahj-1578302811743)(…/img/02/fig2.3.png)]
图 2.1 中一样的二维分类的例子.类别被二进制变量编码(蓝色为 0 0 0,橘黄色为 1 1 1),通过 1 1 1-最近邻分类预测.
k k k-最近邻平均的方法以与定量输出 Y Y Y 的回归完全相同的方式定义,尽管 k = 1 k=1 k=1 是不太可能的选择.
相比较图 2.1,在图 2.2 中更少的训练观测值被错误地分类.尽管如此,这个不应该给我们太大的安慰,因为图 2.3 中没有一个训练数据被错误地分类.一个小小的想法表明在 k k k-最近邻拟合中,训练数据的误差应该近似是关于 k k k 的增函数,而且当 k = 1 k=1 k=1 时误差总是为 0 0 0.一个独立的测试集比较这些不同的方法会给我们一个满意的方法.
看起来 k k k-最近邻拟合只有一个参数, k k k 值的大小,而在最小二乘有 p p p 个参数.尽管情况就是这样,我们将会看到 k k k-最近邻的 有效(effective) 参数个数是 N k \frac{N}{k} kN,而且一般地会比 p p p 大,另外随着 k k k 的增长有效参数个数减少.为了弄清楚为什么,注意到如果邻域没有重叠,则会有 N k \frac{N}{k} kN 个邻域,而且我们在每个区域内拟合一个参数.
我们不能在训练集上将误差平方和作为选择 k k k 的标准,因为我们总会选择 k = 1 k=1 k=1. k k k-最近邻方法对于上文中描述的情境 2 2 2 更适合,尽管对于高斯分布的数据 k k k-最近邻判别边界会有不必要的噪声.
最小二乘法的线性判别边界非常光滑,而且显然拟合得很稳定.它似乎严重依赖线性判别边界是合理的假设.我们马上用文字讨论,它有低方差和潜在的高偏差.
另一方面, k k k-最近邻过程似乎不非常依赖任何关于数据的假设,而且可以适用于任何情形.然而,判别边界的任何特定的分区都依赖几个输入点和它们的特定位置,而且因此左右摇摆不稳定——高方差和低偏差.
每种方法都有各自处理得最好的情形;特别地,线性回归更适合上面介绍的情形 1 1 1,而最邻近方法最适合情形 2 2 2.是来揭露困难的时候了.事实上数据是从介于两种情形的模型中模拟出来的,但是更接近于情形 2 2 2.首先,我们从双变量高斯分布 N ( ( 1 , 0 ) T , I ) N((1,0)^T,\bf{I}) N((1,0)T,I) 中产生 10 10 10 个均值 m k m_k mk,标记此类为蓝色.类似地,从双变量高斯分布 N ( ( 0 , 1 ) T , I ) N((0,1)^T,\bf{I}) N((0,1)T,I) 中产生 10 10 10 个均值并标记此类为橘黄色.然后对每一类按照下面方式产生 100 100 100 个观测:对于每个观测,我们以 1 / 10 1/10 1/10 的概率随机选择一个 m k m_k mk,然后产生 N ( m k , I / 5 ) N(m_k,\bf{I}/5) N(mk,I/5),因此对于每一类引出了一个高斯分布簇的混合.图 2.4 显示了从该模型产生 10000 10000 10000 个新观测的的分类结果,我们比较最小二乘法和一系列 k k k 值对应的 k k k-最近邻的结果.
图 2.4:在图 2.1,图 2.2,图 2.3 中运用的模拟例子的错误分类曲线.我们用的是 200 200 200 个样本作为训练数据,检测数据规模为 10000 10000 10000个.橘黄色的曲线对应 k k k-最近邻分类的测试数据,蓝色的曲线对应 k k k-最近邻分类的训练数据.线性回归的结果是在自由度为 3 3 3 上的大橘黄色和蓝色的方块.紫色的直线是最优的贝叶斯错误率.
今天最受欢迎的技巧的一大部分是这两种方法的变形.事实上, 1 1 1-最近邻,所有方法中最简单的,夺取了低维问题的大部分市场.下面列举描述了这些简单的过程增强的方式
K K K近邻的另一种直观的理解是,将待分类的点看作圆心,慢慢扩大圆的半径慢慢包括进越来越多的训练样本,直到包括进来 K K K个训练样本为止,这时候对这 K K K个训练样本进行统计,哪一类占的数量多就将样本点的标签打为哪一类。这应该是也是原文中平均二进制编码的意思,二分类问题如果是第一类就是1,是第二类就是0,一共 K K K位二进制编码。
当 K = 1 K=1 K=1的时候误差为0,没有样本被错误分类,注意K近邻法的本质就是:利用训练数据集对特征向量空间进行划分,并作为其分类的model。如果 K = 1 K=1 K=1,这样得出的model(划分方案)显然会过拟合。
那么为什么K近邻的有效参数个数是 N k \frac{N}{k} kN呢?因为在邻域不重合的情况下,整个空间会被划分成 N k \frac{N}{k} kN个区域,因此最终的分类结果就会由这 N k \frac{N}{k} kN个因素来决定,所以有效参数个数是 N k \frac{N}{k} kN。