训练集

训练集,验证集和测试集

守給你的承諾、 提交于 2019-11-28 21:16:08
注: 好文章摘抄自 https://testerhome.com/topics/11390 模型训练的时候通常会将数据分成三部分。 分别是training set, dev set(也叫validation set)和 test set。 在模型调研过程中,training set用来训练模型, dev set用来统计单一评估指标,调节参数, 选择算法。 test set 则用来在最后整体评估模型的性能。 三者之间的关系与作用 如上图,假设有一份数据,会将它按一定的规则进行拆分。其中training set和dev set分别输入到了逻辑回归算法中,而test set则是在模型训练结束后,被输入到模型中评估结果。 我们可以根据report来看一下他们各自的作用。 尤其是dev set和test set,在很多文章中对他们的介绍很模棱两可,让人搞不明白他们之间到底有什么区别。 给我的感觉就是写文章的人也不懂,在那里随便写写罢了。 我们先看training set和dev set,因为他们都被输入到了模型训练算法中。 上图是模型训练的report。 我们可以从中看到training set和dev set(图中叫验证集) 的auc指标。这里便引入了dev set的作用, training set 很好理解,训练模型用的。 而dev set的作用就是在这里很方便的评估算法的单一评估指标

不均衡样本集问题

一曲冷凌霜 提交于 2019-11-28 17:45:36
2019-08-27 11:01:52 问题描述: 对于二分类问题,如果在训练的时候正负样本集合非常的不均衡,比如出现了1 :1000甚至更大的比例悬殊,那么如何处理数据以更好的训练模型。 问题求解: 为什么很多的分类模型在训练数据的时候会出现数据不均衡的问题呢?本质原因是模型在训练时优化的目标函数和人们在测试的时候的评价标准不一致。这种不对齐可能是由于训练数据的样本分布与测试时的样本分布一致,比如在训练的时候正负样本严重不均衡,但是在测试的时候,正负的比例几乎是1 :1。也可能是由于训练阶段不同类别的权重与测试的时候不一致,例如在训练的时候认为所有样本的贡献是一致的,但是在测试的时候某些样本的正确率要求要高很多。 根据上述的问题,一般可以从两个角度来处理样本不均衡的问题。 基于数据的方法 基于数据的方法核心就是将原本不均衡的训练集合通过采样的方式使之变的均衡。具体来说有两种方案,一是过采样,二是欠采样。 过采样 :过采样本质就是扩充少样本,使之数量变多。过采样的算法可以理解为是启发式的,也就是说言之有理即可,没有一条绝对正确的算法能够保证过采样算法的效果。 1)最简单的方案就是直接从少样本的训练集中有放回的选取样本,本质是对少样本数据集进行了复制。缺点是没有增加训练数据集的信息量,容易过拟合。 2)SMOTE算法,对少数类样本集中每个样本x