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

使用train_test_split拆分数据报错:样本数量不一致问题排查

问题根源与解决方法

核心错误

你完全用错了train_test_split的用途:这个函数是用来拆分同一个带标签的数据集,生成训练集和验证集的,而不是把独立的训练集(train_df)和测试集(test_df)直接作为参数传入。你传入的train_df和test_df本身样本数量就不一样,所以触发了“输入变量样本数不一致”的报错,删行操作自然解决不了问题。

正确操作步骤

针对泰坦尼克号任务,正确的流程应该是这样:

  1. 拆分特征与标签
    假设你的train_df包含Survived(是否存活)这个标签列,先把特征和标签分开:

    # 特征矩阵:去掉标签列
    X = train_df.drop('Survived', axis=1)
    # 标签向量:提取存活状态列
    y = train_df['Survived']
    
  2. 拆分训练集与验证集
    用train_test_split拆分同一个特征集X和标签集y:

    from sklearn.model_selection import train_test_split
    
    X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.3, random_state=17)
    
  3. 测试集的正确用法
    你手里的test_df是用于模型训练完成后,做最终预测的独立测试集,不需要和train_df一起传入train_test_split。使用前要确保它和训练集做了完全一致的预处理(比如缺失值填充、类别特征编码等),再用训练好的DecisionTreeClassifier做预测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 23:32:09