K近邻算法所面临的维数灾难问题

  • K近邻算法的基本思想

K近邻算法是一种常用的监督学习方法,其原理非常简单:

给定测试样本,基于某种距离找出训练集中与其最靠近的K个训练样本,然后基于这K个邻居的信息来进行预测。

两个基本要素:1某种距离的概念 2 彼此相近的点具有相似性质的假设

  • k近邻算法所面临的维数灾难问题

但是随着特征维数的增大,K近邻算法的效果会持续变差,这是因为高维空间过于巨大,高维空间内的点根本不会表现得彼此邻近。

观察维数灾难的一种方法是在一个高维的空间中随机地生成点对,并计算它们之间的距离。

对于从1到100的每一个维度,我们会计算10000个随机点对的距离,并统计其平均值和最小值,结果如图1所示:

可以看出,随着维度的增加,空间中点对的平均距离和最小距离都在逐步增大。

但更糟糕的是最小距离和平均距离之间的比例也在逐步增大,如图2所示:

  • 如何解决该问题?

所以,如果打算在高维空间中使用K近邻算法,不妨先做一些降维的工作。

发布了9 篇原创文章 · 获赞 1 · 访问量 6066

猜你喜欢

转载自blog.csdn.net/wcysghww/article/details/82589975
今日推荐