数据集划分比例(数据集划分比例对实验结果的影响)
大家好!今天让创意岭的小编来大家介绍下关于数据集划分比例的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
创意岭作为行业内优秀的企业,服务客户遍布全球各地,如需了解SEO相关业务请拨打电话175-8598-2043,或添加微信:1454722008
本文目录:
一、第二章 模型评估与选择
上一章,简略地介绍了机器学习,以及 数据集、数据集、测试集、假设空间、版本空间等等的相关概念 。这一章就开始讲模型评估与选择了,因为书上是以“学习器”来称呼模型的,所以下面我也用学习器来进行说明总结。
什么是经验误差?
在分类样本时会出现分类错误,我们把分类错误的样本数占样本总数的比例称为 “错误率” , 精度 即正确率,自然是1-错误率了。学习器的 实际预测输出 与样本 实际输出 之间的 差异 就称为 “误差” ,于 训练集 就是 “经验误差” ,于 新样本 就是 “泛化误差” 。
什么是过拟合?
我们希望学习器能在新样本的预测中有更好的效果,即泛化性能最大化。但 在学习过程中 ,往往会把训练集中的样本学得过多,使得泛化降低,就是说 学到了 训练样本个体的特点而不是总体样本的特点,或者说学了这个训练集的特殊点, 相对于所有潜在的样本来说的特点 。这就是 “过拟合” ,那么与过拟合相对的就是 “欠拟合” ,反而思之,便是学得不到位,样本的一般性质都掌握不了!
因为过拟合无法避免,所以我们想要去减少它的风险。 其实就是 对模型的泛化误差进行评估,然后选择泛化误差最小那个。
对多种学习算法、参数配置进行选择即模型选择:
一个学习算法→不同参数配置→不同模型
在实验测试中,只有数据集可用,为了对学习器的泛化误差进行评估,只能 从数据集(验证集)中分离出训练集与测试集 ,测试集用于测试学习器对新样本的判别能力, 将测试集上的“测试误差”作为泛化误差的近似 。故 测试集要尽可能与训练集互斥 。
直接将数据集划分两个互斥的集合,一个作训练集,一个作测试集。训练集、测试集的划分要尽可能保持数据分布一致性。即 保持训练集和测试集中样本类别比例相差不大,否则会产生偏差 。一般确定训练集与测试集的样本比例之后,对于数据集的样本划分的方法也有很多, 不同划分方法造成模型评估结果也不同,所以就要进行多次留出法,随机划分重复评估再取平均值作为评估结果 。对于留出法,其划分样本于训练集与测试集的比例要适当,若是训练集含有大多数样本,那么其模型结果便与数据集训练出来的模型接近,但是由于测试集样本过少,其评估结果就不那么准确,反之也是一样的道理。 故常常采取2/3~4/5的样本作为训练集,其余作为测试集。
将数据集划分为k个大小相似的互斥子集,即互不包含。 每个子集尽可能保持数据分布的一致性,即通过 分层采样 得到。 这k个子集又分出k-1个作为训练集,剩下一个作为测试集,可以分k次,进行k次训练和测试 ,最终也是求其 结果的均值 。同留出法, 交叉验证法要随机使用不同的划分重复多次 ,最终结果是多次k折交叉验证结果的均值。比如“10次10折交叉验证”就会有100次训练,有100个训练结果(模型)。
交叉验证法有一个特例,其名为 留一法 ,就是数据集 有多少个样本,就划分成多少个子集 ,即每个子集一个样本,于是随机划分只会产生一种结果, 所以这种方法被实际评估的模型与期望评估的用数据集训练出来的模型很相似。 其缺点是当数据集很大的时候,用它就需要庞大的计算量(还未考虑调参)。
上面两种方法是需要将数据集划分的,这样自然会让 用训练集训练出的模型 与 用数据集训练出来的模型 有一定的 估计偏差 。如此,自助法以自助采样法为基础,简单地讲就是重复随机抽样, 从数据集D中进行重复随机抽样m次,便会得到一个含有m个样本的数据集D 1 ,这就是自助采样的结果。
对于 样本在m次不被采集到 的概率:
这说明了,D中大概有36.8%的样本没有出现在D 1 中。于是我们可以 把D 1 作为训练集 ,把那约 36.8%的样本作为测试集 。其优点是对于 数据集较小、难以有效划分训练 时很有用,其缺点就是改变了初始数据集的划分,这可能会引入估计偏差。
什么是调参?
上面粗略地提到过参数的调整,我们 在进行模型的评估和选择时,不仅要对学习算法进行选择,还要对算法参数进行设定 ,这便是调参。
梳理一下:
参阅自: 机器学习为什么需要训练,训练出来的模型具体又是什么?
回到调参,对于每种参数都训练出模型是不现实的,我们应 对每个参数选定一个范围和步长 ,选出的参数即为 候选参数值(一般10个以内) ,最终从这些候选参数值中产生 选定值 。这是一种折中的结果,是为了使学习过程成为可能。
然鹅,尽管我们得到了这个模型,但这不是最终提交给用户的模型,我们 需要对数据集重新训练 ,使用全部样本以训练出的模型,才是最终模型。
习得模型在实际遇到的数据称为测试数据;模型评估与选择中用于评估测试的数据称为"验证集"。 例如:在研究对比不同算法的泛化性能时,用测试集上的判别效果来评估模型在实际使用中的泛化性能,而把训练数据分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
是衡量模型泛化能力的评价标准。 其反映了 任务需求 。对于给定的样例集D={(x 1 ,y 1 ),(x 2 ,y 2 ),...,(x m ,y m )},其中的y是x的真实标记,现在要评估学习器f的性能,于是把f的结果与y进行比较。
回归任务——性能度量——“均方误差” :
一般的,对于数据分布 和概率密度函数p(·),均方误差可以表示为:
下面主要介绍 分类任务中常用的性能度量 。
上面这两种就是分类任务中常用的性能度量啦!对于样例集D,分类错误率定义如下:
【注:Ⅱ(·)是指示函数。若·( 即对括号内进行逻辑判断 )为 真 则取值为 1 , 假 则取 0 】
精度定义:
一般的:
对于真实类别与学习器预测类别的异同,我们可以分为真正例、假反例、假正例、真反例,分别称为TP、FN、FP、TN(T=True,F=False,P=Positive,N=Negative)。这里的 真假是针对学习器预测结果 来说的。
于是查准率P与查全率R定义如下:
这 两个性能度量是矛盾的,呈负相关 。
我们常常根据学习器的预测结果对样例进行排序, 把“最可能”是正例的放在前面 。按这个顺序,逐个把样本作为正例进行预测,每次都可以计算出当前的查准率与查全率,然后以查准率为纵轴,查全率为横轴,作P-R图如西瓜书p 31 。
若一个学习器的P-R图完全包含了另一个,则说明前者性能更优于后者。
但往往会出现不完全包含, 出现交叉的情况 ,那么我们 一般用F1 来对比衡量。
在说F1度量之前,先说一下平衡点。
平衡点(BEF) 是综合考虑查准率与查全率的性能度量。是 “查准率 = 查全率” 时的取值。是一种简单的度量。
F1度量:
一般形式:
其中 >0 度量了查全率对查准率的 相对重要性 。 >1时,查全率有更大的影响, <1时,查准率有更大的影响。
上面提及到的性能度量的 平均值 (在各 混淆矩阵 (其实就是上面真假正反例的矩阵)上分别计算出查准率与查全率,再计算平均值)称为 “宏查准率”(macro—P)、“宏查全率”(macro—R)以及"宏F1"(macro—F1) ,前两个均值就是算术平均的计算方式,相加除以n,最后一个则是根据前两个计算得来,参考上面F1的定义。
上面是一种做法,也可以把混淆矩阵的真假正反例进行平均,则有 、 、 、 ,于是可求出 “微查准率”(micro—P)、“微查全率”、“微F1”。 然后你懂的,参考上面写的相关公式,代入即可。
ROC全称是“受试者工作特征曲线”,根据预测结果对样例进行排序,然后按顺序逐个把样本作为正例进行预测,以每次计算出的“真正例率”(TPR)作为纵轴,“假正例率”(FPR)作为横轴。两者定义如下:
ROC曲线下的面积即为AUC ,是用来比较当两个学习器的ROC曲线相交不完全包含,要进行性能比较时,则使用AUC。 AUC的估算 :
其与排序误差有紧密联系,于是给定 个反例, 个正例,令 和 分别表示反例、正例的集合。则 排序损失 定义为:
对应的是 ROC曲线之上的面积 ,由此有: .
为何引入代价?
因为.......你这样做是要付出代价的!即为所造成结果的超额处理。引入代价是为了 衡量不同类型错误所造成不同的损失 ,可为错误赋予 “非均等代价” .
代价矩阵 :
其中 表示将第i类样本预测为第j类样本的代价。 例如上矩阵中,损失程度相差越大, 与 值的差别越大,比较一般是以 代价比值 而非绝对值。(即倍数关系)
从前面提到的性能度量, 均是在假设均等代价前提下 进行计算的,如今引入了非均等代价,便要对其考虑在内。
于是将上面代价矩阵中的第0类作正例,第1类作反例,而 与 分别表示正例子集和反例子集,则以错误率为例子,“代价敏感”错误率为:
除此之外,若令 中的 不限取0和1,则可定义出多分类任务的代价敏感性能度量。
那么在非均等代价下,ROC曲线无法直接反映学习器的期望总代价,于是我们引入“代价曲线”,其横轴是取值为[0,1]的正例概率代价:
其中p是样例为正例的概率,纵轴是取值为[0,1]的 归一化 代价:
其中FNR=1-TRP。ROC曲线上的每一点对应代价平面上的一条线段,若ROC曲线上一点为(FPR,TPR)则对应一条从(0,FPR)到(1,FNR)的线段,于是 所有线段的下界围成的面积即为在所有条件下学习器的期望总体代价。
有了实验评估方法和性能度量之后,便是对学习器的泛化性能进行比较。此时为了对学习器进行适当的比较,统计假设检验为我们进行学习器性能比较提供了重要依据。该节默认以错误率为性能度量。
1. 二项检验
2. t检验
二、机器学习中常用的数据集处理方法
机器学习中常用的数据集处理方法
1.离散值的处理: 因为离散值的差值是没有实际意义的。比如如果用0,1,2代表红黄蓝,1-0的差值代表黄-红,是没有意义的。因此,我们往往会把拥有d个取值的离散值变为d个取值为0,1的离散值或者将
其映射为多维向量。
2.属性归一化: 归一化的目标是把各位属性的取值范围放缩到差不多的区间,例如[-0.5,0.5]。这里我们使用一种很常见的操作方法:减掉均值,然
后除以原取值范围。 做归一化至少有以下3个理由: - 过大或过小的数值范围会导致计算时的浮点上溢或下溢。 - 不同的数值范围会导致不同属性对模型的重要性不同(至少在训练的初始阶段如此),而这个隐含的假设常常是不合理的。这会对优化的过程造成困难,使训练时间大大的加长。 - 很多的机器学习技巧/模型(例如L1,L2正则项,向量空间模型-Vector Space Model)都基于这样的假设:所有的属性取值都差不多是以0为均值
且取值范围相近的
。 3.分割数据集 一般把数据集分为两部分,一部分为训练集,用于训练数据,一部分为测试集,用于测试训练的数据,测试集不应过多或过少,数据较少时训练集:测试集可以为8:2,较多时比
例可以达到9:1 。
三、分析数据集{20,6,1,9,11,15,26,32},哪些指标可以测度数据的集中趋势。
可以使用下面几种指标来测度数据集的集中趋势:
均值(mean): 将所有数据的总和除以数据的个数, 即可得到均值
中位数(median): 一个数据集中的中间值,将数据集按照大小排序后的中间值
众数(mode): 一个数据集中出现次数最多的数值
四分位数(quartile): 将数据集划分为四个部分, 每一部分的最大值或最小值称为四分位数
四分位差(Interquartile range):Q3-Q1
标准差(standard deviation): 衡量数据集分散程度的一种指标, 越小说明数据越集中
变异系数(coefficient of variation):衡量数据集离散程度的指标,值越小说明数据越集中。
注意:中位数和四分位数对异常值鲁棒性较好。
四、10折交叉验证后取哪个模型
先直接回答:首先要知道在在一个10折交叉验证中,在一个10折交叉验证中,所有模型的超参数(注意这里是超参数)是一致的,但是由于每个模型用到的训练数据有差异,所以每个模型训练出来的结果是不一样的,所以是不同的模型(每个模型训练出来的参数是不一样的)。
注意的是,需要区分清楚超参数和参数。上面说的超参数是指可以是不同的模型算法(例如svm,C5.0),也可以是某个模型算法的不同超参数,例如svm中的惩罚因子)。
回答这个问题后,如果想明确理解交叉验证,我们可以分为3个维度去阐述这个问题:
(1)训练集、验证集以及测试集的区分
(2)交叉验证:直接用于模型评估
(3)交叉验证:用于超参数选择
如果关于模型评估,希望有更深入的认识可以看之前的这个文章:
张浩彬:机器学习中模型评估的详细剖析(拟合问题、交叉验证,评估指标)
1训练集、验证集及测试集
综合来说,为了能准确评估模型性能,我们可以把整个数据集集分成两个部分,一部分用于训练模型,得到估计参数(训练集);另一部分用于评估模型误差,得到准确率(测试集)
更进一步,在有些实践当中,如在分类问题上,我们往往在事先不知道那种算法是最优的,并且不同的算法里面也包含大量的需要人为设定的超参数。在这些情况下,我们往往需要再划分多一个验证集,用于选择具体超参数,因此也可以把数据集划分为训练集,验证集以及测试集。
只有训练集和测试机的情况比较简单,这里不再累述,我们讨论有训练集、验证集以及测试机的情况:
步骤:
(1)首先按照一定比例划分为广义训练集A以及测试集T;
(2)由于我们还需要一个验证集,所以我们再从广义训练集A再按比例划分训练集S以及验证集V;
(3)我们在训练集S上分别采用不同的算法/参数得出模型,再利用验证集V评估各个模型的性能。经过这一步,我们已经得到了最优的算法/参数配置;
(4)根据得到的最优配置,我们在广义训练集A上(即S+V)重新构建模型,得到最终模型;
(5)把最终模型用于测试集T检验结果,进行评估测试。
综合来说,为了能准确评估模型性能,我们可以把整个数据集集分成两个部分,一部分用于训练模型,得到估计参数(训练集);另一部分用于评估模型误差,得到准确率(测试集)
这样直接划分训练集、测试集的方法,我们称之为留出法。
留出法的意思就是直接将总数据D划分为两个对立集
以上就是关于数据集划分比例相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
登帐号显示数据解析异常什么意思(登帐号显示数据解析异常什么意思呀)