深度学习-数据集的划分
数据集的划分方法
留出法
留出法:将已知数据集分成两个互斥的部分,其中一部分用来训练模型,另一部分用来测试模型,评估其误差,作为泛化误差的估计
通常,训练集:测试集=7:3(按照分层采样的方式)
交叉验证法
k折交叉验证法:将数据集D划分K个大小相似的互斥的数据子集,子集数据尽可能保证数据分布的一致性(分层采样),每次从中选取一个数据集作为测试集,其余用作训练集,可以进行k次训练和测试,得到评估均值。也叫k折交叉验证。重复p次,就是p次k折交叉验证。K的取值会影响到结果的稳定性和保真性,通常k取10。
常用于分类
实现代码
from sklearn.model_selection import train_test_split, KFold |
自助法
自助法:是一种产生样本的抽样方法,其实质是有放回的随机抽样。在给定的m个样本的数据集中随机抽取一条记录,然后将该记录放入训练集同时放回原数据集(该记录在下一次仍有可能被采到),继续下一次抽样,该操作执行m次后,就得到了所需训练集。
样本在m次不被取到的概率为$(1-\frac{1}{m})^m$,取极限得0.368,所以测试集大约占36.8%。
常用于数据集小,难以有效划分数据集时。
一般使用交叉验证法和留出法居多。
解释一下批次,批量大小以及迭代次数
批次(epoch)指的是在训练过程中,遍历整个训练集的次数。
批量大小(batch_size)指的是在每次迭代中,从训练集中抽取的样本数量。
迭代次数(iteration)是指 训练集数量/批量大小
假设批量大小为100,批次为10,训练集量为10000个样本,那么需要训练10次,每一次有100次迭代,每一次迭代包括100个样本
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 tjy的发展史!
评论