高维情况下的局域方法
在上面两篇中,我们提到了,假如说样本的数据总量 N N 非常大,那么我们用最近邻方法可以近似出一个最优函数,其等价于理论上的条件数学期望值。(注:具体的内容主要在第二篇里面)但是同时我们也知道我们一般没有那么大的数据集来满足这样的条件。
在这一篇里,我们会提到,当处理高维数据的时候,这种方法同样会失效。这种现象被称为维度诅咒(curse of dimensionality)。
我们来考虑最简单的例子:假设我们使用最近邻方法,我们的输入均匀地散布在一个 维的单位体积超立方当中(注:这个超立方每一个维度的尺寸都是1)。如下图:
(图:左边展示的是一个三维情况下的单位立方体。右边展示的是随着体积比的增加,立方体各边需要考察的边长。随着维度 p p 从1变到10,所谓的近邻区不再近邻了)
假设当我们考察其中一个点的近邻区的时候,我们需要整个立方体里面数量比例为 的点来作为近邻区。因为所有的点在空间中是均匀分布的,这意味着我们需要考察体积也为 r r 的区域。假设这块区域也是超立方型状的,那么数学上每一个维度上的长度就是 。随意计算一下可以得到: e10(0.01)=0.63 e 10 ( 0.01 ) = 0.63 , e100.1=0.80 e 10 0.1 = 0.80 ,而整个超立方每条边的长度只有 1.0 1.0 。这意味着:为了考察1%和10%的数据来做最近邻方法,每个维度都要考察63%和80%的值域范围。所以所谓的“近邻区”都不是近邻了。
那么假如考察得少一点,把比例范围 r r 缩小一点呢?那么我们能看到更少的数据点,所得结果的方差也会更高。
另外一个需要注意到的事情是,在高维情况下,所有的样本点都会靠近空间的边。假设有 个数据点均匀分布在一个 p p 维单位球体当中,球心就在坐标原点上。假设我们在原点处使用最近邻方法。从中心到离其最近的数据点的距离的中位数是:
(注:式子的求解过程太过于复杂,如果有人感兴趣那可以一起讨论一下~)
找个数字带进去,我们可以发现 d(10,500)≈0.52 d ( 10 , 500 ) ≈ 0.52 ,这个值已经超过从原点到球边界的一半距离了,而这个值只是中位数。这说明大部分的点,在高维的样本空间里,都尽可能地趋向于分布在边界区,而远离其他的点。提到这个的原因在于,当遇到样本边界的时候,我们的预测会遇到点困难:在非边界区我们可以通过内插(interpolate)来进行预测,而现在到边界区我们得使用外推了(extrapolate)。
最后需要提的一点是,在高维空间中,样本采样密度正比于 N