维度增多主要会带来高维空间数据稀疏化问题,机器学习
也就是说,数据会更加的分散,于是就须要更大的数据量才能得到较好的bias和variance,达到较好的预测效果。性能
此处,最典型的是对于KNN的预测。学习
更详细的见:怎样理解"curse of dimensionality",.net
另外一方面看,当维度增长时,也可能致使过拟合现象:训练集上表现好,可是对新数据缺少泛化能力。高维空间训练造成的分类器,至关于在低维空间的一个复杂的非线性分类器,这种分类器过多的强调了训练集的准确率甚至于对一些错误/异常的数据也进行了学习,而正确的数据却没法覆盖整个特征空间。所以,这样获得的分类器在对新数据进行预测时将会出现错误。blog
下图是随着维度(特征数量)的增长,分类器性能的描述:get
可是如何避免维度灾难呢?数学
并无固定的规则规定在分类问题中应该使用多少个特征,由于维度灾难问题和训练样本的数据有关。it
事实上,避免维度灾难主要有两种方法:io
参见:机器学习中的维数灾难基础
上面既然提到了bias和variance,趁机就详细说一下
bias与variance究竟是个什么鬼
解释1:
bias 误差 :模型的指望(或平均)预测和正确值之间的差异
variance 方差 :模型之间的多个拟合预测之间的偏离程度
更多关于bias和variance的定义(包括概念定义,图形化定义,数学定义等)见:权衡误差和方差
解释2:
也就是说,bias和variance分别从两个方面来描述了咱们学习到的模型与真实模型之间的差距。
Bias是 “用全部可能的训练数据集训练出的全部模型的输出的平均值” 与 “真实模型”的输出值之间的差别;
Variance则是“不一样的训练数据集训练出的模型”的输出值之间的差别。
解释3:
而这两个与过拟合和欠拟合又有什么关系呢?
处理过拟合和欠拟合的过程就是关于处理bias和variance。模型复杂度越高,过拟合的风险就越大,bias就减少,可是variance就越高。以下图所示:
K折交叉验证中K的选择:当k偏小的时候,会致使bias偏高。当k偏大的时候,会致使variance偏高,一般把k控制在5~10的范围里。
bias-variance判断:
也就是说,一个好的模型,误差越小越好,方差越小越好。