我无法理解维度的诅咒。scikit-learn具体来说,我在用 python做教程时遇到了它。有人可以用更简单的方式解释以下内容吗?抱歉,我一直在尝试理解最长的时间,但无法理解他们如何计算训练示例的数量以实现高效的 KNN 估计器?
这是解释:
为了使估计器有效,您需要相邻点之间的距离小于某个值 d,这取决于问题。在一个维度上,这平均需要 n ~ 1/d 个点。在上述 KNN 示例的上下文中,如果数据仅由一个值范围为 0 到 1 且具有 n 个训练观测值的特征来描述,那么新数据将不会超过 1/n。因此,与类间特征变化的规模相比,只要 1/n 较小,最近邻决策规则就会很有效。
如果特征数量为 p,您现在需要 n ~ 1/d^p 个点。假设我们在一维中需要 10 个点:现在在 p 维中需要 10^p 个点来铺平 [0, 1] 空间。随着 p 变大,一个好的估计器所需的训练点数呈指数增长。
编辑:在该示例中,波浪号 ( ~) 是否也应该代表近似值?还是 python 波浪号运算符?