机器学习:训练集和测试集

1 训练集和测试集的划分

  • 训练集和测试集应该同分布
  • 如果两者的分布不同,将更多关注放到测试集,多选一些和预测的分布相同的测试集
  • 如果测试集效果不理想,先更新测试集,试着将测试集分出小部分重点关注集(eyeball dev set)来指导模型优化
  • 对于大数据而言,训练集相对测试集来说比例并不用很大(训练集2/3测试集1/3不适用)
  • 针对模型尽量选用多指标(准确率、召回率、F1-score)同时评价模型

2 偏差和方差

  • 模型性能分析基本的两个概念是Bias和Variance(偏差和方差):
    • 偏差可以理解为训练集上的错误率e,方差是模型在测试集上的误差和刚才训练错误率e的差距(训练错误率16%,验证错误率17%,那么方差就差了1%)
    • 模型在测试集表现总是比训练集差一点,而一般的,偏差和方差总是往相反方向变化
      在这里插入图片描述
      当训练数据集m(training set size)变大时, 训练错误率(Training error) 变大,测试集错误率(Dev Error) 越来越小。
      最优的错误率(Desired Performance) 和训练错误率的差就是不可避免的偏差(unavoidable bias)
      测试集和训练集的差就是前面提到的方差(variance)

2.1 如何降低偏差

  • 1 增加模型复杂度:让训练集表现效果更好,但是这可能会导致方差增大,可以降维解决(增加正则约束)
  • 2 做更仔细的特征工程(对特征优化)
  • 3 去除已有的正则约束(有增大方差的风险)
  • 4 设计更好的模型结构(运气好可以同时降低偏差和方差)

2.2 如何降低方差

  • 1 增加很多的训练数据(有些时候测试集错误率和训练集错误率差距很大,仅仅是因为训练集太小)
  • 2 降低模型复杂度(有升高偏差风险)
  • 3 特征工程优化
  • 4 增加正则约束(有升高偏差的风险)
  • 5 设计更好的模型结构
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页