是否可以在某个地方回答,但是我一直在寻找一个小时,找不到一个好的答案。
我有一个简单的逻辑回归模型,该模型在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-Learn,就像在Java/Scala中一样使用。
的线 "import (filename.pmml) as pm
pm.predict(data)
感谢您的任何帮助!
scikit-learn不提供导入PMML文件的支持,因此您要实现的目标不能做到。
使用诸如Sklearn2pmml之类的库的概念确实是为了扩展Sklearn在支持模型导出到PMML格式时所没有的功能。
通常,使用Sklearn2PMML的人确实希望在其他平台中重新使用PMML模型(例如IBM的SPSS,Apache Spark ML,WEKA,WEKA或数据挖掘小组中列出的任何其他消费者)。
> >您要保存使用Scikit-Learn创建的模型,然后再用Scikit-Learn重新使用它,那么您也应该探索其名为Pickle的本机持久性模型机制,该机制使用了二进制数据格式。p>您可以在此处阅读有关如何以腌制格式保存/加载模型(以及其已知问题)的更多信息。
我创建了一个简单的解决方案,以从我从knime Analytics平台导出的PMML文件中生成Sklearn Kmeans模型。您可以检查一下PMML2SKLEARN
您可以使用pypmml使用Python中的PMML在新数据集上进行预测,例如:
from pypmml import Model
model = Model.fromFile('the/pmml/file/path')
result = model.predict(data)
数据可能是pandas的JSON,串联或数据框架。
我相信您可以使用Python导入/导出PMML文件。加载模型后,您可以通过任何问题再次预测。但是,输出文件格式可能会有所不同,例如1D数组或NXN Panda表等。
from sklearn2pmml import make_pmml_pipeline, sklearn2pmml
from pypmml import Model
#Extract as pmml
yourModelPipeline = make_pmml_pipeline(yourModelObjectGoesHere)
sklearn2pmml(yourModelPipeline, "yourModel.pmml")
#Load from pmml
yourModelLoaded = Model.fromFile('yourModel.pmml')
prediction = yourModelLoaded.predict(yourPredictionDataSet)
最后再现结果需要很长时间,不要让它劝阻您:)。我想分享开发人员对此问题的评论:https://github.com/autodeployai/pypmml/issues/53