训练测试样本划分
在离线建模环节,需要对模型进行评估,这就需要对总样本进行划分,一部分用于训练,模型从训练集学习规则,一部分用于测试,检验模型的泛化能力。 下面介绍几种样本划分方法。 留出法 这种方法非常简单,但 不能充分利用数据训练模型,而且样本划分对模型效果影响很大。 a. 只利用了部分数据训练模型,得到的模型很可能和全量数据D得到的模型偏差很大,训练集越小,偏差越大 b. 如果训练集较大,测试集较小,则模型可信度降低 c. 划分前后数据分布不同,比如总样本1500正1500负,划分后,测试样本50正950负,这显然会影响模型的效果。 样本集划分数量会导致模型偏差,通常做法是 2/3做训练集,1/3做测试集; 类别分布不同也会影响模型效果,可采用分层抽样的方法,特别是类别不均衡问题; 鉴于留出法的不确定性,可进行多次留出法实验,最终取平均值 适用场景:样本具有明显的时间序列因素 如 6月需要训练模型,可拿1-4月作为训练集,5月作为测试集 交叉验证 这是最常用的方法,老生常谈了,直接贴图片吧 交叉验证明显比留出法更复杂, 当k=2时,其仍不同于留出法,因为留出法是1个训练集,而交叉验证是2个训练集; 当k=n,n为样本数,此时测试集为一个样本,这称为 留一法,(Leave-One-Out,LOO) , // 这种方法训练n个模型,每个模型基本用到全部数据,接近“真实”模型; //