如何从两部分验证集中各抽取200条数据并入训练集?
解决方案:从验证集两部分各抽取样本加入训练集
我来帮你搞定这个需求!我们需要先把已保存的验证集拆分成你提到的两个指定大小的子集,再从每个子集里抽200条合并到训练集,同时更新剩余的验证集数据。下面是具体步骤和代码:
步骤说明
- 读取你之前拆分好的训练集、验证集和测试集
- 将验证集拆分为1821条和1913条的两个子集合
- 从每个验证子集里随机抽取200条数据
- 把抽取的样本合并到训练集,剩下的验证子集合并成新的验证集
- 保存更新后的数据集(测试集无需改动)
完整代码实现
import pandas as pd import numpy as np # 1. 读取已生成的数据集 train = pd.read_csv('trainNegatif.csv', index_col=0) validate = pd.read_csv('validateNegatif.csv', index_col=0) test = pd.read_csv('testNegatif.csv', index_col=0) # 2. 拆分验证集为指定大小的两部分 val_part1, val_part2 = np.split(validate, [1821]) # 可选:验证拆分结果是否符合预期 print(f"验证集第一部分条数:{len(val_part1)}") print(f"验证集第二部分条数:{len(val_part2)}") # 3. 从每个子集随机抽取200条,random_state保证抽取结果可复现 sample_val1 = val_part1.sample(n=200, random_state=42) sample_val2 = val_part2.sample(n=200, random_state=42) # 4. 更新训练集和验证集 new_train = pd.concat([train, sample_val1, sample_val2], axis=0) new_validate = pd.concat([val_part1.drop(sample_val1.index), val_part2.drop(sample_val2.index)], axis=0) # 5. 保存更新后的数据集 new_train.to_csv("updated_trainNegatif.csv", sep=',') new_validate.to_csv("updated_validateNegatif.csv", sep=',') # 测试集没有变动,直接使用原文件即可 # 可选:验证更新后的数据集大小 print(f"更新后训练集条数:{len(new_train)}") print(f"更新后验证集条数:{len(new_validate)}")
额外提醒
- 如果你后续需要重新运行特征选择的代码(就是你写的
CODE TRAINING DATA FOR NAIVE BAYES部分),记得用**更新后的训练集updated_trainNegatif.csv**来运行,这样特征才会基于最新的训练数据生成。 - 代码里的
random_state=42是为了让每次抽取的样本完全一致,要是不需要固定样本,可以去掉这个参数。
内容的提问来源于stack exchange,提问作者Trya Sovi Kartikasari
相关产品推荐
相关产品推荐

