将Scikit Learn随机森林导出用于Hadoop平台

我使用pandas和scikit learn开发了一个垃圾邮件分类器,现在已经准备好集成到我们的基于Hadoop的系统中。为此,我需要将我的分类器导出到比pickling更常见的格式中。

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

有没有人有这方面的经验?是否有PMML之外的其他替代方案,可以在scikit-learn和Hadoop之间实现互操作性?有没有可靠的PMML导出库?


回答:

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

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

希望这对您有帮助!

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注