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

如何实现不指定名称的动态目标变量Train-Test数据集拆分?

解决动态指定目标变量的数据集拆分问题

我看到你想要实现一个能动态指定目标变量的数据集拆分函数,避免硬编码Survived,同时你的现有代码存在几个小问题,我来帮你修正并优化:

现有代码的核心问题

  • 函数名train_test_split和sklearn自带的拆分函数重名了,这会导致递归调用错误(你的函数内部又调用了同名函数);
  • 获取目标变量的语法错误:y=d.target是错误的Pandas列引用方式,应该用d[target]或者d.loc[:, target];
  • 目标变量是硬编码的,无法动态传入自定义的列名。

优化后的代码方案

我们可以修改函数名避免冲突,同时添加target参数来支持动态指定目标变量,还可以给它设置默认值保持原有逻辑:

from sklearn.model_selection import train_test_split

def custom_train_test_split(d, target='Survived'):
    # 分离特征矩阵和目标变量
    X = d.drop(target, axis=1)
    y = d[target]  # 正确的DataFrame列引用方式
    # 调用sklearn的拆分函数(函数名不重名,不会触发递归)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
    return X_train, X_test, y_train, y_test

使用示例

  1. 使用默认目标变量Survived:
# 假设df是你的数据集
X_train, X_test, y_train, y_test = custom_train_test_split(df)
  1. 动态指定其他目标变量(比如Fare):
X_train, X_test, y_train, y_test = custom_train_test_split(df, target='Fare')

这样就完美实现了无需硬编码目标变量的动态拆分需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:26:10