python - 导出 Scikit Learn 随机森林以在 Hadoop 平台上使用

标签 python hadoop machine-learning scikit-learn pmml

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

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

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

最佳答案

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

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

希望对您有所帮助!

关于python - 导出 Scikit Learn 随机森林以在 Hadoop 平台上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212612/

相关文章:

python - tensorflow RNN模型路径

java - 在 hbase 中插入数据时运行 hadoop 作业

java - Hadoop ClassNotFoundException 与已导入的类

tensorflow - 网格的一部分作为 cnn 的输入

sql - 在 SQL 中计算精度/召回率曲线

python - 推荐系统 - 基于 Softmax 的深度神经网络模型中的用户嵌入

php - 将 Corel Paradox 4.0 表批量转换为 CSV/SQL——通过 PHP 或其他脚本

python多重继承与父类有不同的__init__()

python - 如何在单个查询+ Facebook 营销 api 中获取所有事件的见解

java - map task 卡在 50%