TypeError:单例数组array(0.2)不能被视为有效集合。
X = df.iloc[:, [1,7]].values
y= df.iloc[:,-1].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, 0.2)
尝试train_test_split时出现此错误。我能够使用X和y值训练我的模型。但是,我想拆分数据框,然后对其进行训练和测试。
感谢您的帮助。
答案 0 :(得分:1)
一个鲜为人知的事实是train_test_split
可以拆分任意数量的数组,而不仅仅是两个数组(“ train”和“ test”)。有关更多信息,请参见链接的文档和source code。
例如
np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
y = df1.pop('C')
z = df1.pop('D')
X = df1
splits = train_test_split(X, y, z, test_size=0.2)
len(splits)
# 6
IOW,指定测试大小的唯一方法是通过指定关键字参数test_size
。假定所有位置参数都是要拆分的集合,在这种情况下,因为您这样做
train_test_split(X, y, 0.2)
该函数尝试拆分0.2
,但是由于float不是集合,因此会引发错误。解决方案是(如前所述)指定关键字参数:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)