在学习机器学习时,遇到一个维度灾难的一个说明,看着老是让人觉着别扭,不管是英文的介绍还是中文的介绍,把一些应该交代的细节忽略掉了,让人读起来很费力,我尝试重新表述一下:
在1维空间中(也就是一条直线上),有若干个点,空间长度为1(在这些点中距离最大的两个点的距离)(不带单位,反正就叫1),那么要对这些若干个点进行分类,那么根据knn算法的思路,就是找到某个点附近的几个点,然后对这几个点求平均,就得到目标值。这里对于“附近的几个点”的定义是通过距离来界定的,比如,规定距离小于d=0.1才算“附近”
定义:某个点想要成为另一个点的近邻,则这两个点的距离必须小于d=0.1
由于总空间长度是1,如果每隔距离d=0.1安放1个点,那么刚好能安放n=10=1/d个点,对于随机均匀分布在长度为1的空间上的点,要想出现点与点之间的距离小于d=0.1的情况(具有临近关心的点),那么点的个数n得大于 10 =1/d个,即n > (1/d);
结论:
在一维的情况下,点随机均匀分布,如果想要找到满足近邻关系(距离小于d)的两个点,那么总长度为1的空间中的点数 n 必须 > (1/d);以此推广到p维空间中,就需要n^p(n的p次幂)个点,即必须大于 (1/d)^p = (1^p)/(d^p) = 1/(d^p)个点
至于为什么一维情况下需要 n个点,p维空间下就需要n^p个点,文中没有说明,只是大致能感觉出来应该是这个样。