机器学习中的数据集划分

通常我们把分类错误的样本数占样本总数的比列称为“错误率”(error rate),相应的,1-错误率=精度。我们把学习器在训练集上的误差称为“训练误差”,在新样本上的误差称为“泛化误差”。
当学习器把训练样本学得太好了的时候,很可能已经把训练样本自身的一些特点当做了所有潜在样本都具有的一般性质,导致学习器的泛化性能下降,称之为“过拟合”;而对训练样本的一般性质尚未学好,称为“欠拟合”。

要评估学习器的泛化性能,需要使用一个测试集。下面介绍如何划分训练数据与测试数据。
1.留出法
“留出法”直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T,即D=S∪T,S∩T=null;而不同的划分将导致不同的训练集与测试集,相应的,模型评估的结果也会有差别
。因此,单次使用留出法得到的估计结果往往不够稳定可靠。留出法中常见的做法是将大约2/3-4/5的样本用于训练,剩余样本用于测试。

2.交叉验证法
“交叉验证法”将数据集D划分为k个大小相似的互斥子集,即D=D1∪D2∪…Dk,Di∩Dj=null,每个子集Di都尽可能保持数据分布的一致性,即从总体数据D中通过分层采样得到。然后,每次使用k-1个子集的并集
作为训练集,余下的那个作为测试集;这样就可以进行k次训练和测试,最终返回的是这k个测试结果的均值。交叉验证法评估结果的稳定性和保真性在很大程度上取决于k的取值,故交叉验证法称为
“k折交叉验证”,k的取值常有5,10,20。
在这里插入图片描述

3.自助法
“自助法”每次随机从m个样本的数据集D中挑选一个样本,将其拷贝放入D1,然后再将样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集
D1;显然,D中有一部分样本会在D1中多次出现,而另一部分样本不出现。可以做一个简单的估计,样本在m次采样中始终不被采到的概率是(1-1/m)的m次方,当m取无穷大时,概率值是1/e,约等于0.368,通过
自助采样,初始数据集D中约有36.8%的样本未出现在D1中,将D1作为训练集,D-D1作为测试集。

前文提到了错误率与精度,两者虽然常用,但并不能满足所有任务需求,故而提出了查准率和查全率。对于二分类问题,可将样本根据其真实类别与学习器预测类别的组合划分为真正例(true positive),
假正例(false postive),真反例(true negative),假反例(false negative)四种情形,分别记为TP,FP,TN,FN;显然TP+FP+TN+FN=样例总数,分类结果的混淆矩阵如下所示:
在这里插入图片描述

其中正例的查准率=TP/(TP+FP); 正例的查全率=TP/(TP+FN);
若想对查准率和查全率有一个综合的考量,可以使用F1值,即F1=(2*TP)/(样例总数+TP-TN)。
同时对测试结果还可以绘制P-R曲线,ROC曲线与AUC曲线。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值