将 PMML 模型导入 Python (Scikit-learn)

Posted

技术标签:

【中文标题】将 PMML 模型导入 Python (Scikit-learn)【英文标题】:Importing PMML models into Python (Scikit-learn) 【发布时间】:2017-02-24 05:30:42 【问题描述】:

似乎有一些从 scikit-learn 中导出 PMML 模型的选项,例如 sklearn2pmml,但在另一个方向上的信息要少得多。我的案例是以前在 R 中构建的 XGboost 模型,并使用 r2pmml 保存到 PMML,我想在 Python 中使用它。 Scikit 通常使用 pickle 来保存/加载模型,但是否也可以使用 PMML 将模型导入 scikit-learn 中?

【问题讨论】:

【参考方案1】:

您无法将不同的专门表示(例如 R 和 Scikit-Learn 原生数据结构)连接到通用表示(例如 PMML)上。尝试将 R 数据结构直接转换为 Scikit-Learn 数据结构可能会更好。

XGBoost 确实是上述规则的一个例外,因为它的 R 和 Scikit-Learn 实现只是原生 XGBoost 库的薄包装。在经过训练的 R XGBoost 对象中,有一个 blob raw,它是其原生 XGBoost 表示中的模型。将其保存到文件中,然后使用xgb.Booster.load_model(fname) 方法在 Python 中加载。

如果您知道需要在 Scikit-Learn 中部署 XGBoost 模型,那么为什么要在 R 中对其进行训练?

【讨论】:

如果你知道你需要在 Scikit-Learn 中部署 XGBoost 模型,那你为什么要在 R 中训练它呢?长话短说 - 我没有! 能否请您告诉我如何将 XGboost blob 原始对象保存到文件中。感谢您的帮助

以上是关于将 PMML 模型导入 Python (Scikit-learn)的主要内容,如果未能解决你的问题,请参考以下文章

如何将逻辑回归和kmeans pmml文件导入r

将 python scikit 学习模型导出到 pmml

Apache Spark MLlib:如何从 PMML 导入模型

使用java调用python训练出的pmml模型

pmml(模型标准化)

将 sklearn 随机森林 Python 模型导出到 Android