APD1:几种不同的交叉验证数据集划分迭代器比较

本文介绍了交叉验证的各种迭代器,包括K-fold、重复K折、留一法、分层K折和分组数据的交叉验证。强调了在不同数据结构下选择合适验证方法的重要性,如时间序列数据的时间序列交叉验证。此外,还讨论了Stratified K fold在处理不平衡类别问题上的优势。
摘要由CSDN通过智能技术生成

交叉验证迭代器

迭代器根据不同的交叉验证策略用于生成数据下标,进而实现数据集的划分,生成需要的测试集和验证集。

独立且完全相同分布数据

iid数据,independent and identically distributed data,以下方式可用于这种数据的划分。
note:机器学习中假设数据是iid的,然而实际上并不可能。对于已知数据结构的数据,比如时间序列的,采用 time-series aware cross-validation scheme可能更合适;同理,对于拥有分组结构的数据(如从同一个对象上采集的数据,同一个实验中获取的数据),采用group-wise cross-validation更合适。

K-fold

将数据划随机分为K份,利用每次利用其中K-1份进行训练,利用剩余的一份进行验证,循环K次将数据遍历。

import numpy as np
from sklearn.model_selection import KFold

X = np.array(['a','c','f','c','a','a','f'])
kf = KFold(n_splits = 2)
for train,test in kf.split(X):
    print(train,test)
[4 5 6] [0 1 2 3]
[0 1 2 3] [4 5 6]

可以看出,K fold并不受数据分布和组、类的影响,有可能把同一组或者类的元素分到不同的样本中。

重复K flod

即将K-fold重复进行n次,可以用于数据量较少时,为了在训练过程中充分利用数据。感觉重复的次数 n × K n\times K n×K应该小于数据量,不然会存在重复划分的数据。同理,RepeatedStratifiedKFold是进行n次重复的StratifiedKFold划分。

import numpy as np
from sklearn.model_selection import RepeatedKFold

X = np.array(['a','c','f','c','a',
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值