2017-09-16 41 views
2

道歉,如果这可能已被回答某处,但我一直在寻找大约一个小时,并找不到一个好的答案。将sklearn2pmml生成的.pmml导入ScikitLearn或Python

我有一个简单的Logistic回归模型在Scikit-Learn培训,我正在导出到.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,了解如何使用,因为我一点在Java /斯卡拉。沿

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

感谢您的帮助线的东西!

+0

你打算导出它,改变它,然后你想重新载入python?或者你只是想在某些时候重新打开原件? – Tony

+0

嗨,托尼。没有变化,只需重新加载到Python,然后执行简单的预测。所以如果有人构建了一个简单的回归函数,并通过电子邮件发送给我一个.pmml文件,我可以在我自己的Jupyter笔记本或Python REPL中打开该.pmml文件,并将其传递给一些数据,然后进行预测。你可以像Spark那样做,但我还没有看到它在Python中完成(还)。 – muninn

+0

我对pmml并不熟悉,但是你尝试过[pickle](https://wiki.python.org/moin/UsingPickle)还是另一个[sklearn + pickle]的例子(http:// scikit-learn。 org/stable/modules/model_persistence.html) – Tony

回答

3

Scikit-learn不支持导入PMML文件,所以你试图实现的功能恐怕不能完成。

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

通常,那些使用sklearn2pmml的人确实希望在其他平台(例如IBM的SPSS,Apache Spark ML,Weka或Data Mining Group网站中的任何其他消费者as listed)中重新使用PMML模型。

如果您希望保存一个使用scikit-learn创建的模型,然后使用scikit-learn重新使用它,那么您应该研究一下名为Pickle的本地持久化模型机制,该机制使用二进制数据格式。

您可以阅读更多关于如何以Pickle格式保存/加载模型(连同其已知问题)here

+0

非常感谢。我知道Pickle,并且我们一直在使用针对Apache Spark的PMML,并且很好奇这是否可以在Python中实现。再次感谢! – muninn