我一直在研究Google Dataprep作为ETL解决方案,以执行一些基本的数据转换,然后再将其提供给机器学习平台。我想知道是否有可能使用Dataprep / Dataflow工具将数据集拆分为训练集,测试集和验证集。理想情况下,我希望在目标列上进行分层拆分,但是对于初学者来说,我希望按整体百分比(例如50%训练,30%验证,20%测试)进行简单的统一随机拆分。
到目前为止,我还无法找到有关Dataprep是否可能实现的任何信息,所以我想知道是否有人确切地知道这是否可行以及如何实现。
编辑1
感谢@jakub-janoštík让我朝正确的方向前进!我对您的答案做了一些修改,并提出了以下建议(以纠缠形式):
case condition: customConditions cases: [false,0] default: rand() as: 'split_condition'
case condition: customConditions cases: [split_condition < 0.6,'train'],[split_condition >= 0.8,'test'] default: 'validation' as: 'dataset_type'
drop col: split_condition action: Drop
通过在一个单独的步骤中分配随机值,我得到了想要的保证百分比分割。流程最终看起来像这样:
Image: final flow diagram with dataset splitting
编辑2
我也刚刚弄清楚了如何进行分层拆分,因此我认为我会添加它,以防其他人尝试这样做。大致步骤如下:
我希望这对某人有帮助!