6

我已经使用 pandas 和 scikit learn 开发了一个垃圾邮件分类器,可以将它集成到我们基于 hadoop 的系统中。为此,我需要将我的分类器导出为比酸洗更常见的格式。

预测模型标记语言 (PMML) 是我首选的导出格式。它与我们已经使用的 Cascading 配合得非常好。但是,令人惊讶的是,我找不到任何将 scikit-learn 模型导出到 PMML 的 python 库。

有没有人有过这个用例的经验?是否有任何替代 PMML 的方法可以在 scikit-learn 和 hadoop 之间提供互操作性?一个可靠的 PMML 导出库怎么样?

4

1 回答 1

9

您可以使用Py2PMML将模型导出到 PMML,然后使用JPMML-Cascading在 Hadoop 上对其进行评估。JPMML 是开源的,但 Zementis 的 Py2PMML 似乎是一个商业产品。除了这个替代方案之外,没有其他工具可以对在 Java/Hadoop 上导出为 PMML 的 Scikit 模型进行评分。不过,核心 scikit 团队正计划实施一个 PMML 导出器。但是,如果您不想要任何商业解决方案或等待此类工具的实施,您仍然有一些选择,但它们需要一些编码:

  • 调整SKLearn 编译树项目,使其生成 Java/MapReduce 代码而不是 C。
  • 使用该export_graphviz函数获取每个决策树的 DOT 表示并编写一个小型 Java 解释器。
  • 忘记 Java 和 Hadoop,使用 Apache Spark 并使用 Python、Scikit 和 PySpark 并行评估每个决策树。

希望能帮助到你!

于 2014-06-13T22:54:05.767 回答