训练集、测试集、验证集

训练集:确定模型的参数;
验证集:确定模型的超参数;(如多项式的次数N)
测试集:评估模型的泛化性能,选择最优模型;
例子:色泽、根蒂、敲声来确定好瓜还是坏瓜。将数据分成训练集、验证集、测试集
1、决策树模型,选定初始预剪枝的参数值,用训练集训练,生成模型;改变预剪枝参数值若干次,用训练集训练,生成若干模型,用验证集检验正确率,确定最优的预剪枝参数值;
2、多项式回归,选定多项式次数N,用训练集训练,生成模型;改变多项式次数N若干次,用训练集训练,生成若干模型,用验证集验证正确率,确定最优的多项式次数N。
用测试集分别测试决策时模型和多项式模型,确定两者的泛化性能,选择最优模型。
下面的伪代码写的很清晰

# split data

data = ...

train, validation, test = split(data)

# tune model hyperparameters

parameters = ...

for params in parameters:

model = fit(train)

skill = evaluate(model, validation)

# evaluate final model for comparison with other models

model = fit(train)

skill = evaluate(model, test)

摘自:http://www.sohu.com/a/159288970_465975

补充:有人说,是不是可以把验证集和测试集合并起来,即只有训练集和测试集,然后对于每个超参值,都用训练集训练出其余参数,根据测试集确定最优的超参和模型。
我个人认为这种方法不好的地方在于:超参的确定和最优模型的确定两者在同一个步骤里完成,这样是有风险的:超参的确定我认为实际上也是使得拟合最优,本质上还是参数的确定,而把参数确定和泛化性能检验合并,则依然存在过拟合的风险,而分成3个集合的话,第一步确定参数,第二部确定超参,第三部确定最优模型,这样可以把过拟合的风险大大降低,即测试集必须在所有参数(参数和超参数)都确定的条件下才能够使用,用来评估模型的泛化性能。否则借用测试集确定超参数,那么评估时,对于泛化性能一定是较好的。
所以对于之前提出的问题,为什么k折交叉验证可以没有验证集,我认为可能是因为进行重抽样后,泛化性能本身就可以得到检验了,因此验证集和测试集只需要一个了。

————————————————————————————————————————————
最近看了《深度学习》一书中对此问题的阐述,讲得还算清晰。

以最简单的广义线性回归为例,有一个超参数:即多项式的次数,作为容量超参数。像lasso等回归还有另一个超参数,控制权重衰减程度的 λ是另一个超参数。有时一个选项被设为学习算法不用学习的超参数,是因为它太难优化了。更多的情况是,该选项必须是超参数,因为它不适合在训练集上学习。这适用于控制模型容量的所有超参数。如果在训练集上学习超参数,这些超参数总是趋向于最大可能的模型容量,导致过拟合(参考图5.3 )。例如,相比低次多项式和正的权重衰减设定,更高次的多项式和权重衰减参数设定 λ = 0 总能在训练集上更好地拟合。为了解决这个问题,我们需要一个训练算法观测不到的 验证集(validation set)样本。
早先我们讨论过和训练数据相同分布的样本组成的测试集,它可以用来估计学习过程完成之后的学习器的泛化误差。其重点在于测试样本不能以任何形式参与到模型的选择中,包括设定超参数。基于这个原因,测试集中的样本不能用于验证集。因此,我们总是从训练数据中构建验证集。特别地,我们将训练数据分成两个不相交的子集。其中一个用于学习参数。另一个作为验证集,用于估计训练中或训练后的泛化误差,更新超参数。用于学习参数的数据子集通常仍被称为训练集,尽管这会和整个训练过程用到的更大的数据集相混。用于挑选超参数的数据子集被称为 验证集(validation set)。通常, 80% 的训练数据用于训练, 20% 用于验证。由于验证集是用来 ‘‘训练’’超参数的,尽管验证集的误差通常会比训练集误差小,验证集会低估泛化误差。所有超参数优化完成之后,泛化误差可能会通过测试集来估计。
在实际中,当相同的测试集已在很多年中重复地用于评估不同算法的性能,并且考虑学术界在该测试集上的各种尝试,我们最后可能也会对测试集有着乐观的估计。基准会因之变得陈旧,而不能反映系统的真实性能。值得庆幸的是,学术界往往会移到新的(通常会更巨大、更具挑战性)基准数据集上。
——摘自《深度学习》

通过上面的阐述应该能对训练集、验证集和测试集有一个比较好的了解了。

————————————————————————————————————————
参考文献:
伊恩·古德费洛,约书亚·本吉奥,亚伦·库维尔.《深度学习》

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值