欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?( 三 )


在这个例子中 , 假设使用最接近索引点的10%的训练数据点 , 从索引点出发 , 需要在预测器空间中达到多远才能捕获10%的训练数据?更具体地说 , 需要在邻域中包括多大比例的预测值范围?
单预测器的情况实际上很简单 。 因为训练数据点是沿着单一维度均匀分布的 , 而预测器的范围是[-0.5,0.5] , 为了捕获10%的训练数据点 , 只需要包含预测器范围的10% 。 如下图所示:
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
看上去很合理 , 对吗?我们不需要离索引点太远 , 就可以把10%的训练数据纳入 , 只需要在两个方向上取0.05个单位 。 目前看起来没什么特别 , 也许还有点无聊 。 让我们看看当入一个更高的维度时会发生什么 。
邻居的秘密
假设我们有两个预测器 , 每个预测器的范围是-0.5到0.5 , 训练数据点沿两个维度均匀分布 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
这是我们的索引点:
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
同样 , 我们希望捕捉10%的训练数据点 。 要做到这一点 , 每个预测器的范围中必须包括多少比例的邻居?也许我们可以把上面看到的扩展一个维度 , 我们将需要第一个预测器的10%和第二个预测器的10% 。 让我们来看看(我把训练点淡化了一些 , 以便更好地观察):
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
这是高维空间的奥秘中的另一个转折点!在单维空间中 , 我们只需要在索引空间的任何一个方向上取0.05个单位就可以捕获10%的训练数据 。 而现在 , 我们似乎必须从索引点的任何一个方向取0.16个单位 , 才能捕获10%的训练数据!就其预测值而言 , 邻域外围的训练点真的与索引点那么相似吗?答案最终将取决于数据的性质 , 但必须承认 , 当我们的目标是包括预测值与索引点尽可能相似的点时 , 包括每个预测器的近三分之一的范围似乎有点宽泛了 。
我们继续 , 向三维预测器空间迈进!下面是我们沿三个维度均匀分布的训练数据点云(左) , 以及索引点(右) 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
也许你已经知答案 , 但我再次提出问题:为了获得10%的训练点 , 应该怎样取值?
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
将近50%!让我们消化一下:
在单维中 , 只需要包括单个预测器范围的10% , 就可以定义一个包括10%的均匀分布的训练数据的邻居 。
在两个维度上 , 需要两个预测器的范围各占32% 。
在三个维度上 , 需要三个预测器范围中的每一个的46%!
这里的基础数学其实很简单 , 真正的精彩在最后 。
让我们用一个例子来说明这个问题吧 , 记得农作作物例子吗?pH值的范围是0-14 。 如果我索引点的pH值为7 , 那么就要在一个维度上包括pH值为6.25-7.75的训练点(直觉上似乎是合理的 , 对吗?) , 在两个维度上包括4.6-9.4(这合理吗?) , 在三个维度上包括3.55-10.45(这似乎开始离谱了) 。 将这些点称为邻居还有意义吗?
延伸
在应用统计学中 , 使用几十个、几百个、甚至几千个预测因子是很常见的 。 如果在三个维度中 , 每个预测器的范围有近50%是用来捕捉10%的训练数据的 , 那么在10个维度中呢?100个维度呢?
下面的图对1到100个维度之间的每一个维度回答了这个问题 。 具体来说 , 我们把维度(即预测器)的数量放在X轴上 , 把每个预测器的范围比例(捕获10%的训练数据所需)放在Y轴上 。