数据子集的分层拆分

Stratified split of subset of data

我有一个大小为 10,000 的整体数据集。我知道我可以使用分层拆分来创建训练和测试集,然后我可以 运行 两次(第二次在测试集上)以获得验证和测试集。我可以为 10,000 个样本执行此操作。我知道我可以使用 StratifiedShuffleSplit.

对于我的工作,我只需要使用 1,000 个样本。有没有一种很好的方法可以做到这一点,但只能使用一部分数据?我想保留原始 10,000 组的 class 百分比,但将其应用于 1,000 组。

如果您使用 pandas 或 numpy 来存储数据,则有 pandas.DataFrame.sample(1000)numpy.random.choice

只是弄明白了,以防其他人也有同样的疑问。

我可以简单地输入 train_size 和 test_size 参数为整数。然后我 运行 在测试集上再次以 50/50 进行拆分以获得验证集和测试集。