sklearn 中所有交叉验证数据集划分方式完整总结

一、总体分类(一共 6 大种)

sklearn 交叉验证划分全部来自:

from sklearn.model_selection import *

1. KFold(最基础 K 折交叉验证)

  • 用途:普通回归、分类任务
  • 特点
    • 均匀分成 K 份
    • 轮流 1 份测试,K-1 份训练
  • 不分层 → 类别不平衡时不推荐
python 复制代码
kf = KFold(n_splits=5, shuffle=True, random_state=42)

2. StratifiedKFold(分层 K 折)⭐⭐⭐⭐⭐

  • 用途分类任务、类别不平衡
  • 特点
    • 每折都保持类别比例
  • 分类任务首选!
python 复制代码
skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)

3. ShuffleSplit(随机打乱划分)

  • 用途 :想自定义训练/测试比例
  • 特点
    • 不分成均等份
    • test_size 自己定
  • 不分层
python 复制代码
ss = ShuffleSplit(n_splits=5, test_size=0.2, random_state=42)

4. StratifiedShuffleSplit(分层随机打乱)⭐⭐⭐⭐⭐

  • 用途分类 + 想自定义 test 比例
  • 你刚才用的就是这个!
  • n_splits=1 等价 train_test_split(stratify=y)
python 复制代码
sss = StratifiedShuffleSplit(n_splits=1, test_size=0.2)

5. GroupKFold / LeaveOneGroupOut(按分组划分)

  • 用途防止同一组数据出现在训练集和测试集
  • 例如:
    • 同一用户的数据
    • 同一患者的数据
    • 同一设备的数据
  • 避免数据泄露
python 复制代码
gkf = GroupKFold(n_splits=5)

6. TimeSeriesSplit(时间序列交叉验证)

  • 用途时间数据、股票、天气、时序预测
  • 不能打乱!
  • 未来数据不能用来训练过去
python 复制代码
tscv = TimeSeriesSplit(n_splits=5)

二、最实用的「选择指南」(背会这张表)

你的数据场景 应该用哪个划分?
普通回归任务 KFold
分类任务(均衡/不均衡) StratifiedKFold
分类任务 + 自定义 test 比例 StratifiedShuffleSplit
防止同一用户/患者泄露 GroupKFold
时间序列 TimeSeriesSplit
只想简单切一次 train/test train_test_split(stratify=y)

三、最最重要的 3 个(工作 99% 用这三个)

  1. StratifiedKFold → 分类 K 折(最常用)
  2. StratifiedShuffleSplit → 分类随机切分(你正在用)
  3. GroupKFold → 防止分组数据泄露

四、一句话终极总结

  • 回归 → KFold
  • 分类 → StratifiedKFold / StratifiedShuffleSplit
  • 分组数据 → GroupKFold
  • 时间数据 → TimeSeriesSplit

相关推荐
agent喵7 小时前
从知识库问答到业务自动化:AI Agent 工作流搭建经验分享
人工智能
周末程序猿7 小时前
图解 120 个大语言模型(LLM)核心概念(1-30)
人工智能
EQUINOX17 小时前
【论文阅读】| MoCo精读
论文阅读·人工智能·python·深度学习·机器学习
用户8356290780518 小时前
使用 Python 自动化 Excel 公式和函数:完整指南
后端·python
刘一说8 小时前
AI科技热点日报 | 2026年07月09日
人工智能·科技
LYFlied8 小时前
Anthropic Agent隔离架构解读:比权限弹窗更可靠的是限制爆炸半径
人工智能·架构·软件工程·claude·安全架构·ai agent
敲代码的嘎仔8 小时前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
ZZZMMM.zip8 小时前
基于鸿蒙HarmonyOS NEXT开发AI英语口语应用:智能口语练习新体验与鸿蒙Flutter框架跨端实
人工智能·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
程序喵大人8 小时前
【AI专栏】图解Transformer - 第05章:LLM 推理工程
人工智能·深度学习·llm·transformer
甲维斯8 小时前
差距太大了!GPT5.6Sol 正面战 Fable5,啥也不是!
人工智能·ai编程