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


欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
通常情况下 , 我们会将产量(即响应变量)作为一个额外的轴/维度进行可视化 , 但我在这里没有这样做 , 因为我们只能将三个维度可视化化 。
比方说 , 现在是春天 , 我们正在种植新的西红柿作物 。 我们有土壤的硝酸盐水平和pH值 , 而且我们对预期的降雨量有一个很好的概念 。 我们把这个新作物表示为下面的红点 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
利用原来三个点的作物特性和产量 , 我们如何估计新的红色点的产量?有一种方法 , 叫做(单)近邻法 , 就是用原来三个点中最接近的作物产量来估计 。 我们会期望最近的点有大致相似的降雨量和土壤成分 。 看起来橙色点离红色点最近(产量为40000) 。 然而 , 从一个数据点推导出估计 , 不觉得有点不靠谱吗?也许与橙点相关的产量是一个意外 , 同样的特性在其他年份产生的产量可能会低得多 。 只有3个数据点 , 没有什么操作空间 , 但如果有数百个数据点呢?
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
现在 , 加入红点所代表的新作物 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
同样 , 我假设我们知道所有蓝点的作物产量 , 并希望利用这些信息来估计红点的作物产量 。 我们是否应该再次采用K-近邻算法?下面 , 我们找出离红点最近的20个“邻居” 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
为了估计红点的作物产量 , 取这20个近邻的作物产量的平均值似乎很合理 , 对吗?在这个例子中 , 我们只是在三维空间中运算 , 但这个方法可以推广到任何维度 。
我们如何定义"最近的"?普通的欧几里得距离?还是像马氏距离(Mahalanobisdistance)这样更细微的东西(它包含了不同预测因子之间的变化和关系)?这些问题都很重要(而且超级有趣) , 但答案与我们现在所要讨论的无关 , 所以我将把它们放在以后的文章中 。
让我们继续向前进:高维空间!
邻居们 , 你们好!
在接下来的部分中 , 我们将从有趣的应用实例(例如病人、家庭、农作物)中“撤退” , 进入一个简化的空间 。 想象一下 , 我们正在处理只有一个预测变量和一个响应变量的数据;因此 , 预测空间只有一个维度 。 我们还可以想象 , 预测变量的值是沿着预测变量的范围均匀分布的 。 为了简单起见 , 我们使用一个只能在-0.5和0.5之间取值的预测器 , 这样 , 预测器的范围是一个单位长度 。
同样 , 假设我们有一组数据点的预测值和响应值(称为训练数据点 , 因为这些是用来训练K-近邻模型的点) 。 让我们用蓝色来说明这些训练数据点 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
我们可以看到 , 训练点似乎是沿着单一预测器的所有可能值均匀分布的 。 现在 , 我们要预测一个新的点(称为索引点)的响应值 , 下面用红色表示 。
欢迎来到 走进高维空间系列 的第五部分|走进高维空间之“维度魔咒”,所有的“邻居”都去哪了?
文章图片
正如我们上面所学到的 , K-近邻算法的一般想法是确定在预测器空间中与索引点最接近的训练数据点 , 然后利用这些训练点的响应值来估计索引点的响应值 。 重要的是 , 我们只使用预测器空间中靠近的训练点来为估值提供信息 。 如果使用在预测空间中很远的训练数据点 , 那么它们可能不能很好地代表索引点的响应值 , 而我们的最终估计值可能与事实相差甚远 。