前言

  • 在上一节《机器学习之回归案例研究》中说过,在机器学习的模型中并不是越复杂越好,也不是越简单越好,都有可能在Testing data上造成较大的误差。那么这些误差到底是怎么造成的呢?我们这一节来讨论一下。

Bias and Variance of Estimator

  • 假设Testing data样本的均值为u,模型估计出来的均值为m,则u与m之间的距离为偏差(bias),设模型估计出来的标准差(Variance)为s。
  • 因为没有100%准确的模型,所以u不等于m.
  • 模型估计有点类似于打靶,虽然每个model瞄准的都是靶心,但是实际射中的地方一般都是距靶心有一定的距离,而我们要做的工作就是寻找一个方法使我们射出的目标距靶心更近。如下图所示:

  • 从下图我们可以得知,一般简单的模型都会有small Variance but large Bias的情况,而复杂的模型通常会有small Bias but large Variance,而且简单的模型受数据量的影响较少。

Underfitting and Overfitting

  • Underfitting:**如果如果模型不能拟合训练样本,产生较大的偏差,称为Underfitting**。
  • Overfitting:**如果模型可以拟合训练数据,但是在Testing data上有较大的误差,则是Variance较大的原因,称为Overfitting**。
  • OK!现在我们知道了模型估计偏差(bias)较大和标准差(Variance)分别是由什么原因引起的了,下一步我们就可以对症下药,根据不同情况做不同的调整了。
  • 对于Large Bias,也就是Underfitting,我们通常做如下处理:
    1. 重新设计模型方程;
    2. 增加更多的特征作为输入;
    3. 设计一个更复杂的模型。
  • 对于Large Variance,也就是过拟合,我们通常做如下处理:
    • 增加训练数据,使模型学习到更多的特征;
    • 训练之前对数据进行Regularization(正则化),以减少Variance(标准差)。
    • 将训练集分为Training set and Validation set,如下图所示:

  • 将training set分成3份,一次让其中2份Training,一份用来验证(Validation),最后让每一份都当作一次验证集,求出3次训练的平均误差,取模型中平均误差最小的模型去处理测试集。