如何通过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
相关产品推荐
相关产品推荐

