模型的选择、评估和优化-下

模型评估

上文叙述了当机器学习模型已经训练完成之后,我们该如何评估模型的好坏。

但是一般而言,机器学习模型的训练时间较长,在训练过程中,我们怎么样判断模型训练的状态和优劣呢?

之前说过,训练过程中的最容易出现的问题就是过拟合欠拟合,下面介绍判断拟合状态的方法。

之前介绍过方差、偏差的概念以及他们的意义,在训练过程中,我们会得到训练集测试集的总误差,通过这两个参数,我们可以判断出算法的拟合状态。

  • 当出现欠拟合时,偏差高,方差低
  • 当出现过拟合时,方差高,偏差低

拟合状态与样本规模

首先,无论是过拟合还是欠拟合,由于一个特定的函数对于更多的数据更难以拟合,但是对预测是有利的,所以训练集误差会增加,测试集误差会减少

  • 若出现欠拟合情形,增大数据量,训练集和测试集误差会趋于平缓,并且两者很接近,但是喂更多的数据基本无效。

    过拟合与欠拟合

  • 若出现过拟合情形,增大数据量,训练集误差会持续增加,测试集误差会持续减少,并且两者相差较大。

    过拟合与欠拟合

拟合状态与正则化项

在线性回归、支持向量机等算法中,都会加入正则化项来防止过拟合,因为正则化项可以使得参数尽可能小。

​ $$J(h_w(x),y) = -\frac1m \lbrace \sum_{i=1}^{m} y^ilog(h_w(x^i)) +(1-y^i)log(1-h_w(x^i)) \rbrace + \frac \lambda {2m} \sum_{j=1}^{m} \theta_j^2$$

例如该式中的$\lambda​$即为正则化项的参数,其值越大,越可以避免过拟合,但是可能会陷入欠拟合泥淖之中。

随着$\lambda$的增大,训练集误差会持续升高(因为拟合程度逐渐减小),而测试集误差会先下降后上升,期间有最低点。

如图,$\lambda$较小时,会发生过拟合,所以测试集误差会很大,$\lambda$较大时,会发生欠拟合,所以测试集误差也会很大。

过拟合与欠拟合

拟合状态和模型复杂性

显然,选择的特性越多,模型越复杂。例如一个普通的线性回归,我们就可以选择:

​ $$y_1=\theta_0 + \theta_1x$$

​ $$y_2=\theta_0 + \theta_1x +\theta_2x^2$$

​ $$y_2=\theta_0 + \theta_1x +\theta_2x^2+\theta_3x^3……$$

模型越复杂,学习能力越强,故训练集误差越小。但是对于测试集误差,当它减少到一定程度时,模型可能因为过于复杂而出现过拟合现象,误差反而增大。

过拟合与欠拟合

模型优化

如果我们已经发现当前算法效果并不好,会试图对算法进行一些优化,例如:加更多的特征,增加数据集,增大正则化项等,下表列举了常见的措施和应对情况。

措施 应对情形
搜集更多的数据 过拟合,高方差
使用更少的特征 过拟合,高方差
增加额外的特征 欠拟合,高偏差
增加多项式特征 欠拟合,高偏差
减小λ的值 欠拟合,高偏差
增加λ的值 过拟合,高方差

查看更多

所有的文章都会在我的博客和我的知乎专栏同步进行更新,欢迎阅读


本文结束啦感谢您的阅读
生活不易,求打赏
0%