导出Scikit学习随机森林以在Hadoop平台上使用

Axe*_*son 6 python hadoop machine-learning scikit-learn pmml

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

预测模型标记语言(PMML)是我首选的导出格式.它与我们已经使用的Cascading非常匹配.但是,我出乎意料地找不到任何将scikit-learn模型导出到PMML中的python库.

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

小智 9

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

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

希望能帮助到你!

  • 现在可以通过JPMML-SkLearn(https://github.com/jpmml/jpmml-sklearn)库/命令行应用程序将SkLearn模型导出为PMML.它比Py2PMML更强大,更易于使用. (3认同)