【机器学习】—— 模型评估那点“小事儿”

1. 训练误差和泛化误差

把学习器的实际预测输出与样本真实输出值之间的差异称为“误差”。
训练误差:学习器在训练数据上的误差,可做为模型调参的依据。
泛化误差:学习器在新样本上的误差,反映了学习器对未知数据的预测能力。将学习器对未知数据的预测能力称为泛化能力,泛化误差越小,泛化能力越强,越是符合我们的期望。

2. 过拟合与欠拟合

过拟合:学习器对已知数据学习的太好了,以至于把训练样本特有的一些性质当作了所有样本都具有的性质,即:模型的复杂度高于实际“真模型”,在已知数据上表现很好,在未知数据上表现很差。
欠拟合:学习器连已知样本的一般性质都没有学好,即:模型复杂度低于实际“真模型”,导致学习能力不足,在已知数据和未知数据的预测表现都较差。
  从图中可以看到,当模型复杂度增加时,训练误差不断下降,而测试误差先降低后增加,这是因为在模型复杂度过高时发生了过拟合造成的,因此在实际模型训练中,我们需要选择复杂度适当的模型,以达到测试误差最小、泛化能力最强的目的。而过拟合是无法避免的,只能通过早停、正则化等方法进行缓解,而欠拟合可以通过增加模型复杂度克服。

          在这里插入图片描述

3. 常用的模型评估方法

  可以通过实验测试的方式评估学习器的泛化能力选择恰当的模型复杂度。在实际中,未知样本我们是事先不知道的,因此无法直接计算泛化误差。通常可将已有数据划分为互斥的两部分,一部分作为训练集,进行学习器的学习,另一部分对于学习过程是不可见的,称为测试集,利用学习器在测试集上的测试误差衡量学习器的泛化能力,进行学习器的选择。常见的划分数据集的方法有留出法、交叉验证、自助法。
(1) 留出法
  留出法是将数据集划分成两个完全互斥的集合,一个作为训练集,一个作为测试集,利用训练集进行学习器的训练,利用测试集估计泛化误差。一般训练样本数量占全部数据的比例在2/3~4/5之间,在数据类别不均衡时,可采用分层抽样避免因采样带来的误差,保证训练集/测试集中数据分布与原始数据集的分布一致。单次使用留出法划分数据集得到的结果可能存在数据集划分造成的误差,结果往往缺乏可靠性和稳定性,因此一般采用多次划分试验后取平均值作为最终结果。留出法可通过sklearn中的train_test_split实现ÿ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值