道歉,如果这可能已在某处得到解答,但我一直在寻找大约一个小时而无法找到一个好的答案。
我有一个在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)
感谢您的帮助!
答案 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。