【问题标题】:Dimensional problem in using train test split使用训练测试拆分中的维度问题
【发布时间】:2020-09-22 12:48:45
【问题描述】:
from sklearn.model_selection import train_test_split

predictors=data.drop(['target'],axis=1)
targets=data['target']
train_x,test_x,train_y,test_y=train_test_split(predictors,targets,test_size=0.2,random_state=0) 

train_x 的形状是(242,13)
train_y 的形状是 (242,)
test_x 的形状是 (61,13)
test_y 的形状是 (61,)

数据集有 303 个样本,i/p 有 13 个特征

如果我尝试

np.reshape(train_y,(-1,1))

它说数据必须是一维的

我希望 train_y 形状为 (242,1)

【问题讨论】:

    标签: python jupyter-notebook train-test-split


    【解决方案1】:

    您可以使用np.newaxis 添加新轴:

    train_y = train_y[:, np.newaxis]
    

    它与train_y.reshape(train_y.shape[0], 1) 的作用相同,所以我想这只是您选择哪种方式的个人喜好问题。

    【讨论】:

      【解决方案2】:

      你应该像这样使用 reshape 方法

      train_y = train_y.reshape(train_y.shape[0], 1)
      

      但我建议重塑 targets 以便 train_y 和 test_y 的形状都为 (x, 1)

      targets = data['target']
      targets = targets.reshape(targets.shape[0], 1)
      

      在此之后您可以使用训练测试拆分

      【讨论】:

      • from sklearn.model_selection import train_test_split predictors=data.drop(['target'],axis=1) targets=data['target'] train_x,test_x,train_y,test_y=train_test_split(predictors,目标,test_size=0.2,random_state=0) 打印(targets.shape)
      • 打印(train_x.shape)打印(train_y.shape)打印(test_x.shape)打印(test_y.shape)
      • 检查一次真的很有帮助!
      • 我已进一步编辑我的答案以使其更加清晰。如果您仍有问题,请告诉我
      猜你喜欢
      • 2021-06-28
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-21
      • 2021-01-01
      • 2015-06-08
      • 2019-03-16
      相关资源
      最近更新 更多