3

PMML、Mleap、PFA 目前仅支持基于行的转换。它们都不支持基于框架的转换,例如聚合或 groupby 或 join。导出由这些操作组成的火花管道的推荐方法是什么。

4

2 回答 2

0

我看到 2 个选项 wrt Mleap:

1) 实现基于数据帧的转换器和SQLTransformer等效的 -Mleap。该解决方案在概念上似乎是最好的(因为您始终可以将此类转换封装在管道元素中),但也需要大量工作。见https://github.com/combust/mleap/issues/126

2) 扩展DefaultMleapFrame您想要执行的相应操作,然后将所需的操作实际应用于在修改的MleapServing子项目中传递给 restserver 的数据。

实际上,我选择了 2) 并添加了implode,explodejoin作为 的方法,DefaultMleapFrame并且还HashIndexedMleapFrame允许快速连接。我没有实现groupbyand agg,但在 Scala 中这相对容易实现。

于 2019-02-06T13:17:57.453 回答
-1

PMML 和 PFA 是表示机器学习模型的标准,而不是数据处理管道。机器学习模型接收数据记录,对其执行一些计算,然后发出输出数据记录。因此,根据定义,您使用的是单个孤立的数据记录,而不是数据记录的集合/框架/矩阵。

如果您需要表示完整的数据处理管道(其中 ML 模型只是工作流程的一部分),那么您需要寻找其他/组合标准。或许 SQL 与 PMML 配对将是一个不错的选择。这个想法是您希望在 ML 模型之外而不是在其内部执行数据聚合(例如,SQL 数据库将比任何 PMML 或 PFA 运行时更好)。

于 2018-11-26T10:27:02.810 回答