我正在阅读凯文·墨菲(Kevin Murphy)的书:《机器学习-概率论》。在第一章中,作者正在解释维数的诅咒,其中有一部分我不理解。例如,作者指出:
考虑输入沿D维单位立方体均匀分布。假设我们通过在x周围生长一个超立方体直到它包含所需的数据点分数来估计类标签的密度。该立方体的预期边缘长度为。e D(f )= f 1
这是我无法理解的最后一个公式。似乎如果要覆盖10%的点,则沿每个尺寸的边长应为0.1?我知道我的推理是错误的,但我不明白为什么。
我正在阅读凯文·墨菲(Kevin Murphy)的书:《机器学习-概率论》。在第一章中,作者正在解释维数的诅咒,其中有一部分我不理解。例如,作者指出:
考虑输入沿D维单位立方体均匀分布。假设我们通过在x周围生长一个超立方体直到它包含所需的数据点分数来估计类标签的密度。该立方体的预期边缘长度为。e D(f )= f 1
这是我无法理解的最后一个公式。似乎如果要覆盖10%的点,则沿每个尺寸的边长应为0.1?我知道我的推理是错误的,但我不明白为什么。
Answers:
我认为主要要注意的是
一开始真的很陡。这意味着您将需要包含一定量体积的边缘的大小会急剧增加,特别是在开始时。也就是说,随着增加,您需要的边缘将变得非常大。
为了使这一点更加清楚,请回想一下墨菲展示的情节:
如果您注意到,对于值,斜率确实很大,因此该函数在开始时确实陡峭地增长。如果采用的导数,则可以更好地理解:e D(f )
由于我们仅考虑增加维度(即整数值),因此我们仅关注整数值。这意味着。考虑如下边的表达式:1 − D < 0
注意,我们将提升为小于0的幂(即负)。当我们将数字提高为负幂时,我们在某个时候进行倒数运算(即)。对已经非常小的数字进行倒数运算(请回想因为我们仅考虑体积的一部分,因为我们正在执行KNN,即,总数最近的数据点)意味着该数字将“增长a很多”。因此,我们得到了期望的行为,即随着增加,幂变得更加负,因此,所需的边沿将根据增大程度而大大增加。x − 1 = 1
(请注意,与很快变得无关紧要的相比,呈指数增长)。
我认为对于kNN距离起更大的作用。(超)立方体发生的事情类似于点之间的距离发生的事情。随着尺寸数量的增加,最接近的距离与平均距离之间的比率会增加-这意味着最接近的点与平均点的距离几乎一样远,因此它的预测能力仅比平均点略大。这篇文章很好地解释了
Joel Grus很好地在Scratch的Data Science中描述了此问题。在那本书中,他计算了维数增加时维空间中两点之间的平均和最小距离。他计算了点之间的10,000个距离,维数的范围为0到100。然后他继续绘制两个点之间的平均和最小距离,以及最近距离与平均距离的比值(Distance_Closest / Distance_Average) 。
在这些图中,乔尔(Joel)表明,最近距离与平均距离的比率从0维度的0增加到100维度的〜0.8。这显示了使用k最近邻算法时维数的基本挑战;随着维数的增加和最近距离与平均距离之比接近1,算法的预测能力降低。如果最近的点几乎与平均点相距甚远,则其预测能力仅比平均点略强。