导入sklearn2pmml生成.pmml回到ScikitLearn或Python

时间:2017-09-16 14:59:19

标签: python-2.7 scikit-learn pmml

道歉,如果这可能已在某处得到解答,但我一直在寻找大约一个小时而无法找到一个好的答案。

我有一个在Scikit-Learn中训练的简单Logistic回归模型,我正在导出到.pmml文件。

  from sklearn2pmml import PMMLPipeline, sklearn2pmml
  my_pipeline = PMMLPipeline(
  ( classifier", LogisticRegression() )
      )
  my_pipeline.fit(blah blah)
  sklearn2pmml(my_pipeline, "filename.pmml")

等...

所以我想知道是否/如何将此文件重新导入Python(最好是2.7)或Scikit-Learn,以便像在Java / Scala中那样使用。

的内容

"import (filename.pmml) as pm pm.predict(data)

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

Scikit-learn不提供对导入PMML文件的支持,因此我害怕你想要实现的目标。

使用诸如sklearn2pmml之类的库的概念实际上是为了扩展sklearn在支持模型导出为PMML格式时所没有的功能。

通常,那些使用sklearn2pmml的人真的希望在其他平台上重用PMML模型(例如IBM的SPSS,Apache Spark ML,Weka或数据挖掘组中的任何其他消费者as listed网站)。

如果您希望保存使用scikit-learn创建的模型并在之后使用scikit-learn重新使用它,那么您应该探索名为Pickle的本机持久性模型机制,它使用二进制数据格式。

您可以阅读有关如何以Pickle格式保存/加载模型的更多信息(及其已知问题)here

答案 1 :(得分:1)

我创建了一个简单的解决方案,可以从从knime分析平台导出的pmml文件生成sklearn kmeans模型。您可以查看pmml2sklearn

答案 2 :(得分:0)

您可以使用PyPMML在Python中使用PMML对新数据集进行预测,例如:

from pypmml import Model

model = Model.fromFile('the/pmml/file/path')
result = model.predict(data)

数据可以是熊猫的dict,json,Series或DataFrame。