machine-learning - 是否可以在 Google Dataprep 中拆分数据集?如果是这样,怎么办?

标签 machine-learning google-cloud-platform etl data-science google-cloud-dataprep

我一直在研究 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

我刚刚弄清楚如何进行分层分割,所以我想我应该添加它,以防其他人尝试这样做。大致步骤如下:

  1. 根据您所定位的子群体(例如 target0、target1)拆分数据集
  2. 对于每个子群体,进行上述均匀随机分割(例如,现在您有 target0-train、target0-test、target0-validation、target1-train 等)
  3. 对于每种集合类型(即训练、测试、验证):
    • 从其中一组创建新食谱
    • 编辑配方,并使用联合转换将其与相同类型的其他数据集合并(例如 target0-train 与 target1-train 并集)。联合按钮位于“编辑配方”页面上工具栏的中间。

我希望这对某人有帮助!

最佳答案

我正在考虑同样的问题,并且我能够使用“自定义条件下的情况”和“随机”函数部分解决这个问题。我所做的是创建名为 target 的新列并应用以下逻辑:

enter image description here

应用此功能后,您将拥有带有这 3 个新标签的新列,并且您可以通过应用基于这些值的行过滤规则来生成 3 个新数据集。需要记住的是,每次运行作业时,您都会获得不同的验证集。因此,如果您想保持它固定,您需要使用第一次运行中创建的数据集作为 future 运行的输入(并且仅随机化训练和测试集)。

如果您需要对数据集中标签的分布进行更多控制,则可以使用 ROWNUMBER 窗口函数。但我还没能让它发挥作用。

关于machine-learning - 是否可以在 Google Dataprep 中拆分数据集?如果是这样,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433952/

相关文章:

docker - 挂载 gcePersistentDisk kubernetes 卷非常慢

database - 如何在 Cloud Firestore 中使用逻辑 OR 执行复合查询?

sql-server - 事实表分区: how to handle updates in ETL?

matlab - LibSVM 成本权重对于不平衡数据不起作用

machine-learning - 使用 Keras 进行层串联

mysql - 无法删除谷歌云sql复制主实例

sql-server - SSIS For Loop容器成功运行,但循环内的数据流任务和脚本间歇运行

sql - OLEDB 源任务是否将所有行传递给 OLE DB 命令任务,并且 OLE DB 命令任务一次处理一条记录?

opencv - OpenCV 中神经网络的层大小不起作用

tensorflow - 寻求有关 "running"Tensorflow 模型的说明