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

Cur*_*ous 3 python numpy machine-learning pandas

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

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

Run Code Online (Sandbox Code Playgroud)

Iva*_*sky 5

我将根据评论回答问题:

使用此方法进行拆分:

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

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

train_test_split您传递两个对象 X 和 Y 时,它们很可能先前已从原始数据集中拆分并返回 4 个对象,其中 2 个对应于训练,两个对应于测试。请记住这一点:您首先将数据集拆分为independent variablesexplained/target variable,然后将这两个对象拆分为训练和测试。

随着np.split你要去的otherway身边,你是第一个分裂数据集中到3个对象,培训,验证和测试将在以后需要分割成单独independent variables通常被称为X和target variable被称为Y.你做同样的分裂,只是相反的顺序。

但是,请记住,通过为其传递索引np.split意味着拆分不是随机执行的,而train_test_split您将获得随机训练和测试子集。np.split另一方面,允许更大的灵活性,例如,正如您在示例中证明的那样,创建超过 2 个子集。

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