文本分类训练集 测试集_训练集,测试集,检验集的区别与交叉检验

前言

在机器学习中,不可避免要接触到训练集,测试集以及检验集,这些数据集各有各的作用,为机器学习算法的泛化保驾护航,这里结合《Deep Learning》中的关于训练集,测试集和检验集的讨论,浅谈所见所学。 如有谬误,请联系指正。转载请注明出处。

联系方式:

e-mail: FesianXu@gmail.com

QQ: 973926198

github: https://github.com/FesianXu


训练集和测试集

机器学习模型需要训练去更新模型中的各个参数,因此需要提供训练集(Training Set)作为训练样本,假设此训练集由数据生成分布

生成。同时为了描述这个模型的泛化能力,需要一个同样由
生成的
测试集(Test Set)进行测试,得出其泛化误差。 可以得知,训练集和测试集是独立同分布的,在训练阶段,模型观测不到测试集

检验集

超参数

在讨论检验集之前,有必要先提到超参数(hyperparameter)这个概念。超参数不能或者难以通过机器学习算法学习得出,一般由专家经过经验或者实验选定,如广义线性回归中的多项式次数,控制权值衰减的

等。容易想象到,不同的超参数选定控制了模型的容量和泛化能力,决定了模型的性能,事实上,超参数的调试(Tuning of the hyperparameter)是机器学习中很关键的一部分。   这里我们假想一个场景:
我们有多个待选的权值衰减因子
,分别是
,这些
的不同选择代表了一个模型的不同超参数状态,其中有一个可能性能比较优的超参数,为了得到这个较为优的超参数,我们需要在多个[训练集,测试集]元组上训练测试,寻找最小的泛化误差,直到找到合适的超参数为止。

由于监督数据的获取困难,一般来说没有那么多数据用来划分这个元组,因此一般的做法是:

将数据集按一定比例划分为训练集(大类)和 测试集(Test set),其中测试集只在最后的测试泛化误差的时候才能被模型观察到,而在训练集(大类)中又将其按一定比例划分为 训练集(Training Set)和 检验集(validation set),其中训练集用于模型训练,检验集用于寻找最佳的超参数。一般模型会在训练集上训练多次,在检验集上检验多次,直到得到满意的检验误差,然后才能交给测试集得出泛化误差。

d6e6b1e690d6ba14bca8efb9fff6f703.png

交叉检验(Cross Validation)

在实际应用中,因为数据集的数量限制,常常采用交叉检验作为检验手段[^1],其中k折交叉检验(k-folds cross validation)最为常用,其中

最为常见。其方法十分简单,
就是将训练集(大类)均分为
份,然后分别取出其中的第
个作为检验集,其余的
作为训练集训练,然后再检验集上检验。进行了
次该操作之后,采用平均值作为最终的
交叉验证误差(CV Error),用于选择模型。

其中

是第
检验集的平均误差

40354fd43c327499ba3ede739cb13d21.png

总结

在这篇文章里,主要介绍了训练集,检验集,测试集之间的关系,以及引进检验集的目的:就是为了多次比较,得出较好的超参数,进行模型选择。

[^1]: 当给定数据集

对于简单的训练/测试或训练/验证分割而言太小难以产生泛化误差的准确估计时(因为在小的测试集上,
可能具有过高的方差),常常采用交叉验证。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值