Python 3.x Sklearn';s列车测试分割不适用于多个输入
我有两个输入X1、X2和相应的标签Y。我想使用SkLearn的train_test_split将数据分为训练和验证。我的X1是形状(1920,12),X2是形状(1920,51,5)。我使用的代码是:Python 3.x Sklearn';s列车测试分割不适用于多个输入,python-3.x,machine-learning,scikit-learn,Python 3.x,Machine Learning,Scikit Learn,我有两个输入X1、X2和相应的标签Y。我想使用SkLearn的train_test_split将数据分为训练和验证。我的X1是形状(1920,12),X2是形状(1920,51,5)。我使用的代码是: from sklearn.model_selection import train_test_split X1 = np.load('x_train.npy') X2 = np.load('oneHot.npy') y_train = np.load('y_train.npy') X = np
from sklearn.model_selection import train_test_split
X1 = np.load('x_train.npy')
X2 = np.load('oneHot.npy')
y_train = np.load('y_train.npy')
X = np.array(list(zip(X1, X2))) ### To zip the two inputs.
X_train, X_valid, y_train, y_valid = train_test_split(X, y_train,test_size=0.2)
X1_train, oneHot_train = X_train[:, 0], X_train[:, 1]
但是,当我检查形状X1_列和一个hot_列时,它是(1536),而X1_列应该是(1536,12),一个hot_列应该是(1536,51,5)。我做错了什么?如有任何见解,将不胜感激。
train\u test\u split
可以占用任意数量的迭代器进行拆分。因此,您可以直接输入x1
和x2
,如下所示:
x1=np.random.rand(1920,12)
x2=np.随机随机随机数(1920,51,5)
y=np.随机选择([0,1],1920)
x1_系列,x1_测试,x2_系列,x2_测试,y_系列,y_测试=系列测试(\
x1,x2,y,试验尺寸=0.2)
x1_系列形状,x1_测试形状
# ((1536, 12), (384, 12))
x2_系列形状,x2_测试形状
# ((1536, 51, 5), (384, 51, 5))
y_train.shape,y_test.shape
# ((1536,), (384,))
谢谢@Venkatchalam。