我调查了Stratified sample in pandas,stratified sampling on ranges等,他们没有具体评估我的问题,因为我想将数据随机分为3组。
我有1万行的不平衡数据框,其中10%是肯定类别,90%是否定类别。我正在尝试找出一种将这个数据框分为3个数据集的方法,考虑到不平衡情况,该数据框分别占数据框的60%,20%,20%。但是,此拆分必须是随机且不可替换,这意味着,如果我将3个数据集放在一起,则它必须等于原始数据帧。
通常,我会使用train_test_split()
,但只有在您希望将其分为两个而不是三个数据集时,它才有效。
有什么建议吗?
可复制的示例:
df = pd.DataFrame({"target" : np.random.choice([0,0,0,0,0,0,0,0,0,1], size=10000)}, index=range(0,10000,1))
答案 0 :(得分:1)
两次使用train_test_split()怎么样?
第一次,使用train_size=0.6
获得60%的训练集和40%(测试+有效)的集。
第二次,使用train_size=0.5
,获得50%* 40%= 20%的验证和20%的测试。
此解决方法对您有效吗?