StratifiedKFold实现分层抽样

        当你要处理一个任务,比如说分类,手上就会有一批训练集和一批测试集,测试集使用来最终的评测。为了能更好的训练一个model并进行有效评估,首先要做的是将手头上的训练集划分出一个验证集,用以验证模型

        之前的k折交叉验证没有考虑到标签分布的问题,或者干脆就random一批验证集,其实这样最终的模型会有隐患,科学的做法是:可以利用分层抽样进行划分,能够确保生成的训练集和验证集中的各个类别比例同原始训练集中保持一致,这样就不会产生生成的数据分布紊乱问题,大家可以借鉴使用。API用sklearn的:

from sklearn.model_selection import StratifiedKFold

sfolder = StratifiedKFold(n_splits=3,random_state=24,shuffle=True)

猜你喜欢

转载自www.cnblogs.com/demo-deng/p/12409396.html