如何使用train_test_split拆分元组


X = (569,30)
y = (569,)
X_train, X_test, y_train, y_test = train_test_split(np.asarray(X),np.asarray(y),test_size = 0.25, random_state=0)

我期望输出如下:

  • X_train具有形状(426,30(
  • X_test具有形状(143,30(
  • y_train具有形状(426,(
  • y_test具有形状(143,(

但我收到以下警告

ValueError: Found input variables with inconsistent numbers of samples: [2, 1]

我知道,我可以用另一种方式获得所需的输出,网上发现的所有问题都表明X和y的长度不一样,但在我的情况下,这不是问题所在。

您似乎误解了train_test_split的作用。它并不期望输入数组的形状,而是将输入数组拆分为训练集和测试集。所以你必须给它提供实际的数组,例如:

X = np.random.rand(569,30)
y =  np.random.randint(0,2,(569))
X_train, X_test, y_train, y_test = train_test_split(np.asarray(X),np.asarray(y),test_size = 0.25, random_state=0)

print(X_train.shape)
print(X_test.shape)
print(y_train.shape)
print(y_test.shape)
(426, 30)
(143, 30)
(426,)
(143,)

最新更新