将 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)的主要内容,如果未能解决你的问题,请参考以下文章