1.模型评估的方法与性能度量


周志华《机器学习》笔记整理

1.评估模型的方法

通常,将学习器的预测输出与真实输出之间的差异称为“误差”。
学习器在训练集上的误差叫做“经验误差(empirical error)”或者“训练误差(traing error)”;在新样本上的误差叫做“泛化误差(generalization error)”。

我们希望得到在新样本上表现很好的学习器,但实际上,我们并无法得到新样本。因此,只能在已有的训练样本中尽可能得学习到所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判断。

如果学习器把训练样本学得过好,很可能把训练样本自身的特点当做多有潜在样本都会具有的一般性质,就会导致泛化性能下降。这种现象,在机器学习中称之为“过拟合”(overfitting).
而如果对训练样本也没有学好,甚至连潜在样本都会具有的普遍规律都没有学到,会导致经验误差与泛化误差都很高,这种现象就称之为“欠拟合”(underfitting).

在实际应用中,欠拟合容易克服,比如增加模型训练的迭代次数,在决策树中扩展分支等等;但过拟合的问题却很难解决,是机器学习面临的关键障碍,并且无法彻底避免,只能“缓解”。那么有什么方法可以缓解过拟合呢?

通常的做法是,将已知的数据切分成“测试集”(testing set)和“训练集”(training set)。在训练集上训练学习器,得到的误差为经验误差;在测试集上测试学习器对新样本的判别能力,产生的误差为“测试误差”,作为泛化误差的近似。

那么如何切分才能达到尽量好的效果呢?以下介绍3种常用的方法。
(假设D为已知的样本,S是训练集,T是测试集)

1.1 留出法(hold-out)

留出法直接将数据集D拆分成互斥的两个集合,其中一个作为训练集S,另一个作为测试集T。在S上训练模型,在T上测试,并得到测试误差来近似泛化误差。

如何划分保证数据分布的一致性?–>“分层采样”
假设有1000个样本,500个是正例,500个是反例。如果随机地将1000个样本分成两部分,很可能在训练集或测试集中正反的比例不在是1比1,这就会引入额外的偏差。所以采用“分层采样”的方法来保证数据分布的一致性。

比如像在1000个样本中,70%作为训练,30%作为测试,使用分层采样,就是先对所有正例样本取出70%放到训练集中,30%放到测试集中;再对所有反例的样本取出70%放到训练集中,30%放到测试集中。这样的分层采样,保证了切割之后的两个数据集与原始数据集拥有一样的正负例比例。

如何保证随机划分的稳定性?–>“多次随机划分”
就算采用了分层采样,在每层中的采样也是随机的,每次采样的时候被选进训练集中的样本也是变化的,故单次使用留出法得带的估计结果往往不够稳定,在使用留出法时一般采用若干次随机划分。例如进行100次随机划分,那么就会有100组训练/测试集,进行模型的训练测试之后会有100个结果,将这100个结果进行平均作为一次留出法的最终结果。

训练与测试集划分的比例?
关于划分的比例没有完美的解决方案,常见的是大约2/3~4/5的数据用于训练,剩余的用于测试。

1.2

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值