讲师中心 微信公众号

工具推荐

视频效率加速
立刻MV
立刻MV

低成本歌曲 MV、视频生成

剧云
剧云

中文短剧剧本制作平台

Laper
Laper

剧本策划到成片协作

AniShort
AniShort

AI短剧协同制作平台

Scikit-learn怎么划分训练集和测试集_使用train_test_split分割数据

落伟大大_3228

落伟大大_3228

发布时间:2026-04-29 12:15:15

|

396人浏览过

|

来源于php中文网

原创

train_test_split数据比例异常的根本原因是未设random_state或误将test_size当绝对数量用;它默认按比例切分,传整数才按条数切,但需确保数据量足够且行数一致,加stratify=y可保类别比例,shuffle=True防时序泄露,返回顺序固定为X_train、X_test、y_train、y_test,时间序列须用TimeSeriesSplit。

scikit-learn怎么划分训练集和测试集_使用train_test_split分割数据

train_test_split 为什么分出来的数据比例总不对

根本原因常是没设 random_state,或者误把 test_size 当成绝对数量用。它默认按比例切分,比如 test_size=0.2 表示取 20% 样本,不是固定 20 条;若传入整数(如 test_size=100),才按具体条数切——但仅当数据量 ≥100 且你明确知道总量时才安全。

常见错误现象:ValueError: test_size must be less than the number of samples,就是传了比总样本还大的整数。

  • 训练集/测试集划分前务必确认 X 和 y 行数一致,否则会静默错位
  • 分类任务中,加 stratify=y 能保持各类别在两集中比例一致,不加可能某类在测试集里全没了
  • shuffle=True 是默认值,但如果你的数据本身有序(比如按时间或类别排),不 shuffle 就会导致训练集全是前半段、测试集全是后半段,模型根本学不到泛化能力

train_test_split 返回的四个变量顺序不能乱

它固定返回 X_train, X_test, y_train, y_test 这四个,顺序不能靠名字猜,也不能只接两个变量想着“反正前两个是 X”。少接或错序会导致后续 fit() 报 ValueError: Expected 2D array, got 1D array instead 这类难以定位的错。

AI舌诊面诊问诊医疗系统+诊疗商城系统源码
AI舌诊面诊问诊医疗系统+诊疗商城系统源码

AI 舌诊面诊问诊医疗系统 + 诊疗商城系统源码是一套结合 AI 辅助诊断与商品转化的健康类程序,基于浩创云、ThinkPHP(PHP)开发,支持微信服务号与 H5 端,适合做中医舌诊面诊问答、健康建议推送以及配套诊疗商品的运营。

下载
  • 最稳妥写法:一次解包四变量,X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
  • 如果只要 X 的划分(比如做无监督预处理),仍得写全四个变量,把后两个设为占位符:X_train, X_test, _, _ = train_test_split(X, y, test_size=0.2)
  • 别用索引取,train_test_split(...)[0] 这种写法既难读又易错,尤其后续加参数改顺序时会崩

和 cross_val_split 混用时容易漏掉独立测试集

很多人用 cross_val_score 或 GridSearchCV 时,误以为交叉验证那几折已经“验过模型”,就直接拿原始数据去 fit-predict。其实 CV 只用于调参或评估,最终模型必须在**未参与 CV 的独立测试集**上跑一次,否则指标虚高。

  • 正确流程:先用 train_test_split 切出一个干净的 X_test/y_test(不参与任何训练或 CV);再对剩下的训练部分做 CV 调参;最后用最优参数在完整训练集上 fit(),再在那个预留的 X_test 上 predict()
  • 如果跳过第一步,直接对全量数据 CV,等于让每条样本都在某折里当过测试集,没有真正“没见过”的数据,上线后效果必然下滑
  • train_test_split 的 test_size 建议设为 0.2–0.3;CV 阶段再从训练集里分,两者不冲突

时间序列数据不能直接用 train_test_split

股票、日志、传感器数据这类有严格时间顺序的,用 train_test_split 随机打乱会泄露未来信息。模型看到“明天”的特征去预测“今天”,指标再好也没意义。

  • 该用 TimeSeriesSplit,它按时间先后切,保证每折的训练集都在测试集之前
  • 或者手动切:比如前 80% 当训练,后 20% 当测试,且不 shuffle —— 但必须显式写 shuffle=False,因为 train_test_split 默认是 True
  • 哪怕只是带时间戳的表格数据,只要业务逻辑依赖时序(比如用户行为分析),就得按时间切,不能图省事用随机切
实际用的时候,最容易被忽略的是 stratify 和 shuffle 这两个开关——它们默认值看似合理,但在特定场景下恰恰是 bug 温床。

热门AI工具

更多
讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

1911

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

5284

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1849

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

31977

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3787

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3787

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

1263

2023.08.11

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

616

2023.08.10

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

60

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn