正如您所提到的,Keras只需要获取数据集的最后x个样本,因此如果您想继续使用它,则需要提前对数据集进行洗牌。
或者,你可以简单地使用 的 sklearn train_test_split()方法 强> :
x_train, x_valid, y_train, y_valid = sklearn.model_selection.train_test_split(x, y, test_size=0.2)
此方法有一个名为“shuffle”的参数,用于确定是否在拆分之前对数据进行洗牌(默认设置为True)。
的 然而 强> ,通过使用“分层”参数可以更好地分割数据,这将在验证和训练集之间提供类似的标签分布:
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0, stratify=y)