在Python中使用PMML模型
我在互联网上找到了许多与此相关的话题,但我找不到解决方案 假设我想从下载任何PMML模型,并在Python中运行它们(最好是Python 3)。有没有办法做到这一点在Python中使用PMML模型,python,xml,python-3.x,prediction,pmml,Python,Xml,Python 3.x,Prediction,Pmml,我在互联网上找到了许多与此相关的话题,但我找不到解决方案 假设我想从下载任何PMML模型,并在Python中运行它们(最好是Python 3)。有没有办法做到这一点 我正在寻找一种方法来导入部署在Python之外的PMML,并将其导入到该语言中使用。经过一些研究,我找到了解决方案: 使用它非常简单: import subprocess from openscoring import Openscoring import numpy as np p = subprocess.Popen('jav
我正在寻找一种方法来导入部署在Python之外的PMML,并将其导入到该语言中使用。经过一些研究,我找到了解决方案: 使用它非常简单:
import subprocess
from openscoring import Openscoring
import numpy as np
p = subprocess.Popen('java -jar openscoring-server-executable-1.4.3.jar',
shell=True)
os = Openscoring("http://localhost:8080/openscoring")
# Deploying a PMML document DecisionTreeIris.pmml as an Iris model:
os.deployFile("Iris", "DecisionTreeIris.pmml")
# Evaluating the Iris model with a data record:
arguments = {
"Sepal_Length" : 5.1,
"Sepal_Width" : 3.5,
"Petal_Length" : 1.4,
"Petal_Width" : 0.2
}
result = os.evaluate("Iris", arguments)
print(result)
这将返回字典中目标变量的值。不再需要跳出Python使用PMML模型(您只需使用Java运行服务器,正如我在上面所展示的那样,可以使用Python来运行服务器)。您可以在Python中应用PMML,例如:
from pypmml import Model
model = Model.fromFile('DecisionTreeIris.pmml')
result = model.predict({
"Sepal_Length" : 5.1,
"Sepal_Width" : 3.5,
"Petal_Length" : 1.4,
"Petal_Width" : 0.2
})
有关其他PMML库的更多信息,请参见:
您最好忽略该示例列表,因为这些PMML模型中有一半无效或与相应的数据文件不匹配-可能会让您认为(Python)工具坏了,但事实并非如此。@user1808924您知道我在哪里可以找到一些使用其数据集的工作示例,以试用Python中的一些代码吗?它的可能重复是重复的,因为它问了同样的问题:“如何在Python中使用PMML模型?”。不幸的是,正如您所发现的,目前没有很好的答案,因为似乎没有任何好的本机Python PMML导入器。如果有,它将是这个问题和这个问题的答案,因此它们是重复的。中提到了几个选项,如果您还没有找到它,但看起来它们并不完整或是最新的。如果使用此解决方案,我们需要使用最新版本的jar。在这里发布,以便帮助所有人