You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在该场景下正确使用train_test_split进行数据集划分?

解决train_test_split数据集划分的参数问题

我来帮你梳理一下train_test_split的正确用法,顺便修正你代码里的几个小问题:

首先,先明确几个核心要点:

  • train_test_split的必填参数是你的自变量特征集(通常命名为X)和因变量目标集(通常命名为y)
  • 你的代码里有两处需要调整:ix方法已经被pandas弃用,还有你写的返回变量顺序搞反了(正确顺序是X_train, X_test, y_train, y_test)

修正后的完整代码

import pandas as pd  # 别忘了导入pandas!
from sklearn.model_selection import train_test_split

# 读取并预处理数据集
Data1 = pd.read_csv(r"C:\Users\Zihao\Desktop\New\OBSTET.csv", index_col=0)
Data1.fillna(0, inplace=True)

# 提取因变量(第一列)和自变量(其余列)
y = Data1.iloc[:, 0]  # 用iloc替代已弃用的ix,索引更稳定
X = Data1.iloc[:, 1:]  # 取第2列到最后一列作为自变量特征

# 执行数据集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

关键参数详解

  • X和y:这两个是必填项,X是所有自变量的特征数据,y是对应的因变量标签,必须保证两者的行数完全匹配。
  • test_size:可选参数,设置测试集占总数据的比例,比如0.2表示20%的数据作为测试集,剩下80%作为训练集;默认值是0.25。
  • random_state:可选参数,设置随机种子,保证每次运行代码时划分的结果完全一致,方便实验复现。你可以填任意整数,比如42是机器学习领域常用的取值。

原代码的问题说明

  • 你调用train_test_split()时没有传入任何参数,它必须至少接收特征集和目标集两个核心参数才能运行。
  • 你写的返回变量顺序X_train, y_train, x_test, y_test不符合函数的返回规则,train_test_split的固定返回顺序是:训练特征集、测试特征集、训练目标集、测试目标集。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:13:48