评估假设

评估改进机器学习模型的一般方法

对数据集分类

改进机器学习模型有以下方法供选择:
1. 增加更多的训练样本;
2. 增加或减少特征数量;
3. 使用特征的更高次幂;
4. 增加或者减少正则化参数。

构造机器学习模型的一般步骤是:首先使用训练集(training dataset)训练模型,再使用测试集(test dataset)计算模型的预测误差,然后使用以上方法中的一种或几种改进模型,用训练集进行训练,使用测试集进行评估,如此反复最后选择测试误差最低的一种模型。
以上方法存在的问题是,使用测试集挑选的模型可能只是碰巧在这部分测试集上表现很好,但是不能泛化到新的样本中。所以为了评估模型在泛化能力,一般在训练模型前将数据集分成三份,训练集(train dataset), 验证集(cross validation dataset), 测试集(test dataset),各占整个数据集的比例为6:2:2。
例如,某一模型只包含一个特征的多项式形式,

h=b+w1x+w2x2+w3x3+...+wdxd h = b + w 1 x + w 2 x 2 + w 3 x 3 + . . . + w d x d

其中,
d=1,2,3,4.. d = 1 , 2 , 3 , 4..

为了挑选最优的多项式,先用训练集训练不同特征幂次的模型,再用验证集选出最优的模型,最后再使用测试集评估预测误差 。随着特征幂次的升高,训练集的预测误差越来越低,但是验针集可能呈现出一个U行的曲线,这一曲线的两端称为偏差(bias)和方差(variance),分别对应欠拟合(underfitting)现象和过拟合(overfitting)现象。

高偏差和高方差

当训练集的预测误差和测试集的训练误差都很高并约等时,称为高偏差;当训练集的预测误差很低,但验证集的预测误差很高时,称为高方差。
这里写图片描述
从上图可见当模型简单时,不能充分表达特征和标签的对应关系,训练集和验证集的预测误差都很高;当模型的多项式次数很高时,能很好的拟合训练集中的大部分数据,包括一些不典型的数据,这时模型的泛化能力下降,使得验证集的预测误差不降反升。当特征较少时,可以降低特征的次数解决过拟合问题,但是如果特征太多,比如神经网络模型,不仅包含大量的特征,而且很多特征时自动生成,要通过手动减少特征幂次的方法消除过拟合现象不现实,所以对于过拟合现象一般是使用正则化方法来解决。加入正则化项的预测误差计算公式修正为:
这里写图片描述
加入了正则化项相当于对高次幂的特征加入了惩罚机制,使用梯度下降算法修正权重时,如果某一特征导致了较高的预测误差,那其对应权重的偏导数也较高,所以其对应的权重会下降较快。正则化项进一步加速了导致预测误差的特征对应权重的下降速度。如最左边的图所示,当 λ λ 很大时,所有权重都会快速下降,并趋近与0,而当选择合适的 λ λ ,则高次幂的特征对应的权重下降的速度会比低次幂特征下降更快,最终高次幂的权重趋于0,从而降低了高次幂的特征对导致的过拟合现象。
这里写图片描述
一般情况下,样本数越多,相对同一模型的泛化能力越强,预测误差越小;但是如果训练模型本身欠佳,则优化模型对预测误差的改善比收集更多数据更加明显。那么对于改进模型和收集数据应该如何选择呢?一般情况可以分析学习曲线来决定下一步的改进方法。
如果对模型的评估表现为高偏差或欠拟合现象,此时测试集和数据集的预测误差都很高,收集更多数据对模型性能提升有限,则应该增加模型的复杂程度,例如增加特征,增加特征的次数和减小 λ λ 的值。

如果对模型的评估表现为高方差现象,训练集的预测误差很小但是测试集的预测误差很大,此时应该收集更多的数据,提高模型的泛化能力来减少测试集的预测误差,或者增加 lambda l a m b d a 的值解决过拟合。
这里写图片描述

偏斜类

分类的数据集有时呈现不均匀的统计特征,正样本的数据比负样本的数据多得多,此时预测误差的值并不能准确表示机器学习的性能。
例如要开发一种能够对癌症进行预测的机器学习模型,收集1000例数据样本,可能只有5例患有癌症。如果此时模型的预测误差为1%,则准确达到99%,看似很高,但是如果模型对所有样本输出均为非癌症,准确率高达99.5%,但这一模型显然并不是好的预测模型。所以为了评估偏斜类的预测误差,引入了精度(precision)和召回率(recall)的两个新的概念。
对于二分类的问题,样本可以分为正样本的负样本,精度表示预测为正样本的数据集中正样本所占的比例,召回率表示所有正样本中被预测正确的样本所占的比例。
这里写图片描述

precision=True positivePredict positive=True positiveTrue positive+False positive p r e c i s i o n = T r u e   p o s i t i v e P r e d i c t   p o s i t i v e = T r u e   p o s i t i v e T r u e   p o s i t i v e + F a l s e   p o s i t i v e

recall=True positiveActual positive=True positiveTrue positive+False negative r e c a l l = T r u e   p o s i t i v e A c t u a l   p o s i t i v e = T r u e   p o s i t i v e T r u e   p o s i t i v e + F a l s e   n e g a t i v e

在评估模型时,一般将较少出现的类型标记为1,依然以上边的癌症问题为例,将癌症标记为1,则如果将所有样本预测为非癌症0,则得到召回率和精度值都为0,如果将所有样本预测为癌症1,则:

precision=59995+5=0.5 p r e c i s i o n = 5 9995 + 5 = 0.5

recall=55=1 r e c a l l = 5 5 = 1

此时召回率高但精度却很低,可见使用召回率和精度解决了偏斜类数据集样本不均匀的问题,但是要评估模型的表现还需要将二者结合,一般使用F-score来评估模型表现的
Fscore=2PRP+R F − s c o r e = 2 P R P + R

其中P代表精度,R代表召回率。
只有在召回率和精度都较高的时候,F-score才能得到较高的值。

总结

本章的前半部分讨论使用机器学习解决问题时,可以先构建一个简单的模型,将数据集分为三份,训练集,验证集和测试集,使用训练集和验证集画出学习曲线,分析当前模型是高方差还是高偏差问题,如果是高偏差,可以通过增加模型的复杂度,例如增加特征,使用特征的更高次幂或者减小 λ λ 来解决;如果是高方差问题,则可以通过较少收集更多的样本和增加 λ λ 来解决;后半部分主要针对偏斜类数据集介绍了精度、召回率的概念,并最终给出了使用F-score来评估模型表现的方法,对召回率和精度的使用需要注意的是要将数量小的类别标记为1。本章的全部内容来自Ardnew Ng的机器学习课程。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值