我已经使用pandas和scikit开发了一个垃圾邮件分类器,它已经准备好集成到基于hadoop的系统中了。为此,我需要将分类器导出为比pickling更常见的格式。
预测模型标记语言(pmml)是我首选的导出格式。它与我们已经使用的级联非常好。然而,令人惊讶的是,我找不到任何将scikit学习模型导出到pmml的python库。
有人有过这个用例的经验吗?有什么替代pmml的方法可以在sciketlearn和hadoop之间提供互操作性吗?一个稳定的pmml导出库怎么样?
我已经使用pandas和scikit开发了一个垃圾邮件分类器,它已经准备好集成到基于hadoop的系统中了。为此,我需要将分类器导出为比pickling更常见的格式。
预测模型标记语言(pmml)是我首选的导出格式。它与我们已经使用的级联非常好。然而,令人惊讶的是,我找不到任何将scikit学习模型导出到pmml的python库。
有人有过这个用例的经验吗?有什么替代pmml的方法可以在sciketlearn和hadoop之间提供互操作性吗?一个稳定的pmml导出库怎么样?
1条答案
按热度按时间jv4diomz1#
您可以使用py2pmml将模型导出为pmml,然后在hadoop上使用jpmml级联对其进行评估。jpmml是开源的,但是zementis的py2pml似乎是一个商业产品。除此之外,没有其他工具可以在java/hadoop上为作为pmml导出的scikit模型评分。核心scikit团队计划实现pmml导出器。但是,如果您不想要任何商业解决方案或等待实现此类工具,您仍然有一些选项,但它们需要一些编码:
调整sklearn编译树项目,使其生成java/mapreduce代码而不是c。
使用
export_graphviz
函数获取每个决策树的点表示,并编写一个小型java解释器。忘记java和hadoop吧,使用ApacheSpark并使用python、scikit和Pypark并行地评估每个决策树。
希望有帮助!