【问题标题】:Use PMML models in Python在 Python 中使用 PMML 模型
【发布时间】:2019-02-22 21:17:23
【问题描述】:

我在互联网上找到了很多与此相关的主题,但我找不到解决方案。

假设我想从this examples list 下载任何 PMML 模型,并在 Python 中运行它们(最好是 Python 3)。有没有办法做到这一点?

我正在寻找一种方法来导入在 Python 外部部署的 PMML,并将其导入以与该语言一起使用。

【问题讨论】:

  • 您最好忽略该示例列表,因为这些 PMML 模型中有一半无效或与相应的数据文件不匹配 - 可能会导致您认为(Python-)工具已损坏,而不是。
  • @user1808924 你知道我在哪里可以找到一些带有他们的数据集的工作示例来试用 Python 中的一些代码吗?
  • 它是重复的,因为它问的是同样的事情:'如何在 Python 中使用 PMML 模型?'。不幸的是,正如您所发现的,目前没有很好的答案,因为似乎没有任何好的原生 Python PMML 导入器。如果有一个,那将是该问题的答案以及该问题的答案,因此它们是重复的。
  • this question 中提到了几个选项,如果您还没有找到它们,但它们看起来并不完整或最新。

标签: python xml python-3.x prediction pmml


【解决方案1】:

经过一番研究,我找到了解决方案:the 'openscoring' library

使用很简单:

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 完成,就像我在上面展示的那样)。

【讨论】:

  • 如果我们使用这个解决方案,我们需要使用最新版本的jar。在这里发帖,以便对每个人都有帮助
【解决方案2】:

您可以使用PyPMML 在 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 库的更多信息,请随意查看: https://github.com/autodeployai

【讨论】:

    猜你喜欢
    • 2018-06-20
    • 2017-11-22
    • 2016-12-23
    • 2019-06-23
    • 2019-03-27
    • 2017-02-24
    • 2016-05-13
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多