数据集划分办法基于sklearn

本文介绍了机器学习中数据集划分的三种方法:留出法、交叉验证法和自助法。强调了保持训练、测试集合分布一致的重要性,以及在划分过程中应注意的问题,如样本分布、随机种子和避免交集。最后提到了sklearn库中相关函数的应用。
摘要由CSDN通过智能技术生成

机器学习中的一个必要问题就是模型评估。因此就需要划分训练集和测试集。

数据集划分有三种方式:留出法(hold-out)、交叉验证法(cross-validation)、自助法(bootstrapping)

留出法: 顾名思义单独留出一部分作为测试集合,并且两个集合互斥。极端情况就是留一法,在样本不足的时候可以考虑使用,否者计算开销太大。
实现 : sklearn.model_selection中的LeaveOneOut,LeavePOut

交叉验证法: 将训练集分成k折,每次取一折作为测试集,其余作为训练集。
实现 : sklearn.model_selection中的KFold,StratifiedKFold

自助法: 有放回的采样n个样本,n为数据集的大小。从概率上讲,大约会有三分一的样本未被采到,可以将未被采到的部分做为测试集,称之为”包外估计“。显然这种方法改变了数据分布,所以用的较少。
实现 : sklearn没有独立的划分实现,但是某些算法对bootstrap进行了支持,例如随机森林。

划分训练集和样本集合需要考虑的几个问题:

  • 通常都需要保持训练、测试集合的分布与数据分布相一致。原因之一:试想如果两者分布不一致,而算法采用的又是朴素贝叶斯之类的,这样做的估计都是有偏差的,效果自然不好。第二:如果正例样本相对反例样本来说,占比很少。再经过随机抽样,那么训练样本中的正例更是少的可怜,可能就被分类器忽略掉了。
  • 打散样本集合。为了避免训练顺序上某类样本总是先于其他类样本。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值