机器学习入门,一文彻底理解:训练集,验证集,测试集,交叉验证样本训练集语法

sklearn中没有对应的方法,可以自己构造:

训练集(trainset),验证集(validationset),测试集(testset)这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被混用。

通过本文,您将学会:

1、训练集,验证集,测试集概念、用法2、交叉验证在不同教材及sklearn中的概念区别3、sklearn交差验证方法划分数据集语法、参数解析、用法4、不同数据条件下如何选择交差验证方法4、运用交叉验证进行模型评估(语法、参数解析、用法)

训练集,验证集,测试集

在机器学习预测任务中,我们需要对模型泛化误差进行评估,选择最优模型。如果我们把所有数据都用来训练模型的话,建立的模型自然是最契合这些数据的,测试表现也好。但换了其它数据集测试这个模型效果可能就没那么好了。为了防止过拟合,就需要将数据集分成训练集,验证集,测试集。

很多机器学习的竞赛中,组织方一般会提供一个标注的数据集(作为训练集)以及一个没有标注的作为测试集,那么我们做模型的时候,通常会人工从训练集中划分一个验证集出来。

它们的作用分别是:

训练集:用来训练模型

验证集:评估模型预测的好坏及调整对应的参数

测试集:测试已经训练好的模型的推广能力

有一个比喻十分形象,训练集就像高三学生的练习册,验证集就像高考模拟卷,测试集就是最后真正的考试。

交叉验证

交叉验证(CrossValidation)用来验证学习器性能的一种统计分析方法,基本思想是重复的使用数据,把得到的样本数据进行切分,组合为不同数据集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。

1、李航老师的《统计学习方法》中模型选择方法分为两类,一个是正则化,一个是交差验证,交叉验证又分为简单交叉验证、s折交叉验证、留一交叉验证。

2、周志华老师的《机器学习》中,模型评估有三种方式,留出法、交叉验证(分为k折交叉验证和留一法)、自助法。

3、sklearn官方文档中,train_test_split作为留出法的实现方式,而交叉验证进行数据集划分(迭代器)又分为K折(KFold)、p次k折交(RepeatedKFold)、留一(LeaveOneOut)、留p(LeavePOut)、随机(ShuffleSplit)等等

看定义,简单交差验证和留出法应该是同一件事。

下面我们重点看一下比较常用的几个,不常用的大家可以自行探索。

留出法/简单交叉验证

留出法是最简单的数据集划分方式,随机的将样本数据分为两部分(比如:70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上选择模型及参数。然后再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后选择损失函数评估最优的模型和参数。

留出法/简单交叉验证可以通过sklearn.cross_validation中的train_test_split实现

语法:

X_train,X_test,y_train,y_test=cross_validation.train_test_split(train_data,train_target,test_size=0.3,random_state=0)

参数解析:

train_data:所要划分的样本特征集

train_target:所要划分的样本结果

test_size:样本占比,如果是整数就是样本的数量

random_state:随机数的种子

使用方法:

importnumpyasnpfromsklearn.model_selectionimporttrain_test_splitfromsklearnimportdatasetsiris=datasets.load_iris()X_train,X_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.4,random_state=0)

k折交叉验证

对于需要进行超参评估的模型,留出法还需要划分出验证集,这会使训练集进一步变小;另外,模型也会随着我们选择的训练集和验证集不同而不同。所以我们引入了k折交叉验证:

k折交叉验证把样本数据随机的分成k份,每次随机的选择k-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择k-1份来训练数据。若干轮(小于k)之后,选择损失函数评估最优的模型和参数。k一般取10,数据量大的时候,k可以设置的小一些;数据量小的时候,k可以设置的大一些。

THE END
1.将数据集切分成训练集验证集和测试集的方法? ?深度学习说到底是由数据驱动的,所以数据是非常重要的。我们在网上收集的数据,常常是没有分成训练集,验证集和测试的,需要我们自己进行分割。本笔记的代码参照了深度之眼老师提供的参考代码,并作了一些相关的拓展。 ? ?代码和数据集:dataSplit.zip https://blog.csdn.net/sinat_35907936/article/details/105611737
2.机器学习训练集验证集测试集机器学习 - 训练集、验证集、测试集 与其他机器学习方法不同,随机森林存在OOB,相当于自带多套训练集和测试集,内部可以通过OOB作为评估模型准确性的一种方法。大多数其他机器学习方法都没有这种优势。 通常,当有一套数据时,它需要分为训练集和测试集。数据集一般按比例进行8:2,7:3,6:4分为训练集和测试集。https://www.tulingxueyuan.cn/tlzx/jsp/2205.html
3.训练集(Train),验证集(Validation)和测试集(TestSets)以及交叉关键字:普通参数,超参数,训练集,验证集,测试集 很多机器学习过程实际上就是选择模型,由于模型只是参数未知,所以就需要得到一个最优参数,使得模型可以比较准确的描述自变量到因变量的变化情况。对于模型的训练和度量,就需要用到已知的数据集。 数据集一般分为以下3种。如果已经有了一个大的标注数据集,那么通过随机抽https://www.pianshen.com/article/51521358243/
4.训练集验证集测试集和而不同,国内数据集又是怎样光景?人人在AI的世界中,有关数据集的“故事”有很多,这篇文章里,作者就继续讲述有关AI数据集的那些原理,梳理了训练集、验证集、测试集的区别和联系,以及目前国内数据集的现状、挑战和应对之策。想弄懂AI数据集的同学,不妨来看看这篇文章。 各位看官: 欢迎一起揭秘AI的世界。AI领域中,无论是模型,算法,还是应用,都离不https://www.woshipm.com/ai/5989591.html
5.深度学习模型训练的过程理解(训练集验证集测试集batch深度学习模型训练的过程理解(训练集、验证集、测试集、batch、iteration、epoch、单步预测、多步预测、kernels、学习率),呜呜呜呜,感谢大佬学弟给我讲干货.本来是讨论项目的,后面就跑偏讲论文模型了.解答了我https://blog.51cto.com/u_15310764/5782867
6.语义分割之DeepLabV3+—Jittor__init__: 定义数据路径,这里的data_root需设置为之前您设定的voc_aug,split为train val test之一,表示选择训练集、验证集还是测试集。同时需要调用self.set_attr来指定数据集加载所需的参数batch_size,total_len、shuffle。 __getitem__: 返回单个item的数据。 https://cg.cs.tsinghua.edu.cn/jittor/2020/03/15/segmentation/
7.如何对模型进行优化的数据划分的方法就是划分9:1的训练集和验证集,除此之外还可以划分如下图所示*的交叉验证,在每个数据集上留出一部分作为验证集可以参考这篇博客 进行正则化 学习过深度学习,机器学习都会知道什么是正则化,无非最为常见的的包括L1正则化和L2正则化,先给出数学公式:L1的表达式为:L2的表达式为:λ∈(0,1)在https://www.flyai.com/article/591
8.基于改进上采样技术的图像超分辨率重建现在的神经网络训练十分依赖数据集, 在本文中, 选择DIV2K作为我们的训练数据集. DIV2K数据集包含1 000张高质量图像, 其中800张作为训练集, 100张作为验证集, 100张作为测试集. 图像超分任务一般使用成对的超分和低分图像来训练网络. 在网络中首先通过双三次插值降低图像分辨率, 再将低分辨率图像作为输入送入网https://c-s-a.org.cn/html/2022/3/8386.html
9.基于焦点损失函数的嵌套长短时记忆网络心电信号分类研究为将实验全面化,首先利用平衡数据集对NLSTM模型性能进行验证,而后再针对不平衡数据进行更为全面的实验。从原始训练数据中两次随机选取N、V、R、L类各2 500个样本数据,前一次作为训练集,后一次作为测试集,对CNN、单向长短时记忆网络(unidirectional long short-term memory,ULSTM)、NLSTM三种模型的分类效果进行验证。https://www.cjebm.com/article/10.7507/1001-5515.202110002
10.Deblurringalgorithmbasedonpedestrianabnormalbehavior整个数据集由3214对模糊清晰图像对组成,其中2103对作为训练集,1111对作为验证集。然后对自制的100张扶梯上的行人异常行为模糊图片去模糊,使用改进的Tiny YOLOv3[15]网络对去模糊前后的图像进行检测,比较准确率的变化。 本文对训练的数据进行随机裁剪和缩放、水平翻转等方法进行数据增强,并将清晰图像和模糊图像的像素https://www.oejournal.org/article/doi/10.12086/oee.2021.210009