为什么我们在将数据拆分为测试和训练之前删除 target/label?
why do we drop target/label before splitting data into test and train?
为什么我们在将数据拆分为测试和训练之前删除 target/label?
例如在下面的代码中
X = df.drop('Scaled sound pressure level',axis=1)
y = df['Scaled sound pressure level']
拆分数据
from sklearn.model_selection import train_test_split
80/20 通过修复种子来重现结果
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state = 2021)
其实,这不是必须的。您可以为整个数据框提供目标值,该函数将 return 训练 df 并测试 df。然后您可以检索独立列和从属列。这将适用于回归数据集。
对于分类任务,这也可以工作。但是我们希望目标 类 在训练集和测试集中均等分布。因此,我们需要为 train_test_split() 方法的 'stratify' 参数提供目标值。
为什么我们在将数据拆分为测试和训练之前删除 target/label? 例如在下面的代码中
X = df.drop('Scaled sound pressure level',axis=1)
y = df['Scaled sound pressure level']
拆分数据
from sklearn.model_selection import train_test_split
80/20 通过修复种子来重现结果
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state = 2021)
其实,这不是必须的。您可以为整个数据框提供目标值,该函数将 return 训练 df 并测试 df。然后您可以检索独立列和从属列。这将适用于回归数据集。
对于分类任务,这也可以工作。但是我们希望目标 类 在训练集和测试集中均等分布。因此,我们需要为 train_test_split() 方法的 'stratify' 参数提供目标值。