模型的选择、评估和优化-下
由ypyu创建,最终由ypyu 被浏览 40 用户
在本文中,我将介绍机器学习的模型选择、评估和优化
因为知乎中对于markdown的支持太差了,本文不在知乎直接排版,所以阅读体验不是很好,若想获得更好的阅读体验,请点击下文链接进行阅读。
所有的文章都会在我的博客和我的知乎专栏同步进行更新,欢迎阅读决策树所有的文章都会在我的博客和我的知乎专栏同步进行更新,欢迎阅读
下面是正文:
模型评估
上文叙述了当机器学习模型已经训练完成之后,我们该如何评估模型的好坏。
但是一般而言,机器学习模型的训练时间较长,在训练过程中,我们怎么样判断模型训练的状态和优劣呢?
之前说过,训练过程中的最容易出现的问题就是过拟合和欠拟合,下面介绍判断拟合状态的方法。
之前介绍过方差、偏差的概念以及他们的意义,在训练过程中,我们会得到训练集和测试集的总误差,通过这两个参数,我们可以判断出算法的拟合状态。
- 当出现欠拟合时,偏差高,方差低
- 当出现过拟合时,方差高,偏差低
拟合状态与样本规模
首先,无论是过拟合还是欠拟合,由于一个特定的函数对于更多的数据更难以拟合,但是对预测是有利的,所以训练集误差会增加,测试集误差会减少。
- 若出现欠拟合情形,增大数据量,训练集和测试集误差会趋于平缓,并且两者很接近,但是喂更多的数据基本无效。
- 若出现过拟合情形,增大数据量,训练集误差会持续增加,测试集误差会持续减少,并且两者相差较大。
拟合状态与正则化项
在线性回归、支持向量机等算法中,都会加入正则化项来防止过拟合,因为正则化项可以使得参数尽可能小。
$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......$
模型越复杂,学习能力越强,故训练集误差越小。但是对于测试集误差,当它减少到一定程度时,模型可能因为过于复杂而出现过拟合现象,误差反而增大。
模型优化
如果我们已经发现当前算法效果并不好,会试图对算法进行一些优化,例如:加更多的特征,增加数据集,增大正则化项等,下表列举了常见的措施和应对情况。
措施 | 应对情形 |
---|---|
搜集更多的数据 | 过拟合,高方差 |
使用更少的特征 | 过拟合,高方差 |
增加额外的特征 | 欠拟合,高偏差 |
增加多项式特征 | 欠拟合,高偏差 |
减小λ的值 | 欠拟合,高偏差 |
增加λ的值 | 过拟合,高方差 |