维度灾难

本文详细解释了机器学习中的维度灾难问题,探讨了随着特征值维度的增加导致样本数据需求呈指数级增长的现象及其带来的挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在机器学习中,经常会听到维度灾难问题,那么什么是维度灾难呢?

当数据的维度增高时,很多机器学习问题就变得相当困难,这种现象就是维度灾难。

维度灾难发生在计算机科学的许多地方,但是在机器学习中尤其如此。

在机器学习中我们需要设定模型的特征值,而每一个特征值又含有不同的数值代表不同类别。在机器学习的过程中,为了更好的区分数据,我们往往会增加模型的特征值维度(即特征值得个数),如下图所示,只有一个特征值得时候,各类别的特征值有重叠部分,很难完全将它们区分开来,但是再增加一个特征值(每个特征值对应一个维度空间),便可以很好地将数据分散开来,就可以更好的找到分类算法。

但是随着特征值个数的增加,特征值对应的空间也对应的增加响应的维度,这样问题就出现了,我们训练模型,必定要给予足够的样本数据,使得在每个特征值维度里都有相应的样本数据占据,如果一个特征值维度拥有10个不同的数值代表不同的类别,那么至少需要10个样本数据去填充;如果特征值维度增加到两维,对应的至少需要10*10个样本数据去填充特征值空间。

这样就出现了:当数据的特征值维度增大时,对应的特征值空间的样本数据将会呈现指数级增长。

如上图所示

  • 在一维时,只有一个特征值得时候,我们用只需要1010个数值便可以区分。当每个区域有足够的样本数时,学习算法能够轻易地泛化的很好,泛化的一个直接方法是估计目标函数在每个区域的值;
  • 在二维时,对每个变量区分1010个不同的值更加困难。我们需要追踪1010=10010∗10=100个区域,至少需要更多的样本数据来覆盖所有的区域;
  • 在三维时,区域数量增加到了103=1000103=1000个区域,至少需要那么多的样本。

对于需要区分dd维以及v个值来说,我们至少需要O(vd)个区域和样本,这就是维度灾难

维度灾难带来的问题

由上面我们明白了,有了更好的区分样本类别,我们需要增加特征值个数,从而引来维度灾难问题,那么维度灾难有什么后果呢?

增加了特征值得个数,从而造成了需要填充特征值空间的样本数据以指数形式增长,这对于收集样本数据来说是个恐怖的事情,试想下如果每个维度有100个值对应,那么需要填充5个特征值对应的特征值空间需要的样本数据至少需要1005=10000000000=1001005=10000000000=100 亿,而且这是“至少”,因为这是按照每个特征值都对应一个数值,但是这样下来,需要找100亿个所有特征值都不相同的数据,其中免不了有些数据的特征值有相同的,那么实际收集的样本数据个数将会更多,这将会是一件恐怖的事情。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViatorSun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值