- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究 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
我刚刚弄清楚如何进行分层分割,所以我想我应该添加它,以防其他人尝试这样做。大致步骤如下:
我希望这对某人有帮助!
最佳答案
我正在考虑同样的问题,并且我能够使用“自定义条件下的情况”和“随机”函数部分解决这个问题。我所做的是创建名为 target 的新列并应用以下逻辑:
应用此功能后,您将拥有带有这 3 个新标签的新列,并且您可以通过应用基于这些值的行过滤规则来生成 3 个新数据集。需要记住的是,每次运行作业时,您都会获得不同的验证集。因此,如果您想保持它固定,您需要使用第一次运行中创建的数据集作为 future 运行的输入(并且仅随机化训练和测试集)。
如果您需要对数据集中标签的分布进行更多控制,则可以使用 ROWNUMBER 窗口函数。但我还没能让它发挥作用。
关于machine-learning - 是否可以在 Google Dataprep 中拆分数据集?如果是这样,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52433952/
我是一名优秀的程序员,十分优秀!