繁体   English   中英

训练,测试,验证拆分的Python。 三套

[英]Train, Test, Validate split Python. Three sets

有人提出了一种将数据集分成三组的解决方案。 我想知道在这种情况下标签在哪里。 或然后如何设置标签。

train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])

我将根据评论回答问题:

使用此方法进行拆分:

train, validate, test = np.split(df.sample(frac=1), [int(.6*len(df)), int(.8*len(df))])

您将获得3个不同的对象,其中包括来自dftrain的前60%数据,对应于validate 60%和80%之间的间隔的数据,以及对应于test 80%-100%的最后20%的数据。 标签在这些数据框中。

train_test_split您传递了两个对象X和Y,这两个对象以前很可能是从原始数据集中拆分出来的,然后返回4个对象,其中2个对应于train,两个对应于test。 请记住以下几点:首先将数据集拆分为independent variablesexplained/target variable ,然后将这两个对象拆分为训练和测试。

使用np.split进行反之亦然,您首先要将数据集分为3个对象,进行训练,验证和测试,然后将它们分别分成independent variables通常称为X和target variable Y)。进行相同的拆分,只是顺序相反。

但是,请记住,通过传递np.split的索引意味着分割不是随机进行的,而使用train_test_split则会得到随机的训练和测试子集。 另一方面, np.split允许更大的灵活性,例如,如您在示例中所证明的,创建两个以上的子集。

也许这会有所帮助! 在此处输入图片说明

尝试这个。 将train_test_split之一的输出输入第二个

import numpy as np
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4)
X_test, X_validate, y_test, y_validate = train_test_split(X_test, y_test, test_size=0.5)

该函数将2个数组随机拆分为4个数组,而test_size确定分配给测试输出与序列的拆分的大小。 输入y是构建机器学习模型的目标,输入X是模型的特征。 如果要将它们组合在一起,则只需合并等效的X和y输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM