如何使用 train_test_split 拆分元组?

How to split a tuple using 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)

我期望输出如下:

但我收到以下警告

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,)