将PMML模型导入Python(Scikit-learn)
问题内容:
从scikit-
learn导出PMML模型似乎有一些选择,例如sklearn2pmml,但是从其他方向获得的信息却少得多。我的案例是一个以前在R中内置的XGboost模型,并使用r2pmml保存到了PMML,我想在Python中使用它。Scikit通常使用pickle来保存/加载模型,但是是否也可以使用PMML将模型导入scikit-
learn?
问题答案:
您不能在通用表示(例如PMML)上连接不同的专用表示(例如R和Scikit-Learn本机数据结构)。尝试将R数据结构直接转换为Scikit-
Learn数据结构可能会更好。
XGBoost实际上是上述规则的一个例外,因为它的R和Scikit-Learn实现只是本地XGBoost库的精简包装。在训练有素的R
XGBoost对象内部有一个blob
raw
,它是其本机XGBoost表示形式的模型。将其保存到文件,然后使用xgb.Booster.load_model(fname)
方法加载到Python中。
如果您知道需要在Scikit-Learn中部署XGBoost模型,那么为什么要在R中对其进行训练?