将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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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