维度灾难&&bias和variance

维度灾难

维度增多主要会带来高维空间数据稀疏化问题,机器学习

也就是说,数据会更加的分散,于是就须要更大的数据量才能得到较好的bias和variance,达到较好的预测效果。性能

此处,最典型的是对于KNN的预测。学习

更详细的见:怎样理解"curse of dimensionality".net

另外一方面看,当维度增长时,也可能致使过拟合现象:训练集上表现好,可是对新数据缺少泛化能力。高维空间训练造成的分类器,至关于在低维空间的一个复杂的非线性分类器,这种分类器过多的强调了训练集的准确率甚至于对一些错误/异常的数据也进行了学习,而正确的数据却没法覆盖整个特征空间。所以,这样获得的分类器在对新数据进行预测时将会出现错误。blog

下图是随着维度(特征数量)的增长,分类器性能的描述:get

 

可是如何避免维度灾难呢?数学

并无固定的规则规定在分类问题中应该使用多少个特征,由于维度灾难问题和训练样本的数据有关。it

事实上,避免维度灾难主要有两种方法:io

  • 降维。能够是从本来维度中挑选一些维度,或是从原特征的基础上构造新特征
  • 交叉验证。

参见:机器学习中的维数灾难基础

bias与variance的权衡

上面既然提到了bias和variance,趁机就详细说一下

bias与variance究竟是个什么鬼

解释1:

bias 误差 :模型的指望(或平均)预测和正确值之间的差异

variance 方差 :模型之间的多个拟合预测之间的偏离程度

更多关于bias和variance的定义(包括概念定义,图形化定义,数学定义等)见:权衡误差和方差

解释2:

也就是说,bias和variance分别从两个方面来描述了咱们学习到的模型与真实模型之间的差距。

Bias是 “用全部可能的训练数据集训练出的全部模型的输出的平均值” 与 “真实模型”的输出值之间的差别;

Variance则是“不一样的训练数据集训练出的模型”的输出值之间的差别。

 解释3:

首先 Error = Bias + Variance
Error反映的是整个模型的准确度,Bias反映的是模型在样本上的输出与真实值之间的偏差,即模型自己的精准度,Variance反映的是模型每一次输出结果与模型输出指望之间的偏差,即模型的稳定性。
更准确地讲ERROR分红3个部分:Error = Bias + Variance + Noise

而这两个与过拟合和欠拟合又有什么关系呢?

处理过拟合和欠拟合的过程就是关于处理bias和variance。模型复杂度越高,过拟合的风险就越大,bias就减少,可是variance就越高。以下图所示:

K折交叉验证中K的选择:当k偏小的时候,会致使bias偏高。当k偏大的时候,会致使variance偏高,一般把k控制在5~10的范围里。

bias-variance判断

  • 根据错误均值判断bias,若是错误均值很低,说明在这个数据集上,该模型准确度是能够的。 
  • 根据错误标准差来判断variance,若是错误标准差很高,说明该模型的泛化能力须要提升。

也就是说,一个好的模型,误差越小越好,方差越小越好。

相关文章
相关标签/搜索