You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过HuggingFace Datasets实现数据集80:10:10拆分

实现80%:10%:10%的数据集拆分方案

要得到训练集、验证集、测试集80:10:10的拆分比例,可以分两步完成:

  • 先将原始训练集拆分为80%的训练集和20%的临时集合
  • 再把这20%的临时集合平均拆分为10%的验证集和10%的测试集

对应的代码实现如下:

from datasets import load_dataset

# 加载目标数据集
ds = load_dataset("myusername/mycorpus")
original_train = ds["train"]

# 第一步:拆分出80%训练集和20%临时集
first_split = original_train.train_test_split(test_size=0.2)
train_set = first_split["train"]
temp_set = first_split["test"]

# 第二步:将20%临时集拆分为10%验证集和10%测试集
second_split = temp_set.train_test_split(test_size=0.5)
val_set = second_split["test"]
test_set = second_split["train"]

# 整理为标准的DatasetDict结构
final_dataset = {
    "train": train_set,
    "validation": val_set,
    "test": test_set
}

# 打印拆分结果
print(final_dataset)

执行后会得到类似如下的输出:

DatasetDict({
    train: Dataset({
        features: ['translation'],
        num_rows: 62044
    })
    validation: Dataset({
        features: ['translation'],
        num_rows: 7756
    })
    test: Dataset({
        features: ['translation'],
        num_rows: 7756
    })
})

核心逻辑是通过两次train_test_split实现三级拆分:第一次拆分出占原始数据80%的训练集,第二次把剩下的20%对半分,最终得到符合比例的三个数据集。

内容的提问来源于stack exchange,提问作者Raptor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:07:27