在Python中使用PMML模型

kninwzqo  于 2022-12-01  发布在  Python
关注(0)|答案(3)|浏览(152)

我在网上找到了很多与此相关的主题,但我找不到解决方案。
假设我想从this examples list下载任何PMML模型,并在Python(最好是Python 3)中运行它们。
我正在寻找一种方法来导入一个部署在Python外部的PMML,并将其导入到这种语言中使用。

wr98u20j

wr98u20j1#

您可以使用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

3yhwsihp

3yhwsihp2#

经过一番研究,我找到了解决这个问题的办法: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来完成,就像我上面展示的那样)。

xqkwcwgp

xqkwcwgp3#

这不像是在python应用中托管H2O模型吗?看起来这里也需要一个从python到Java的桥。这样的桥一点也不稳定,我已经测试过了。只是一个一般性的建议:不要在ML算法和应用程序代码之间混合使用语言,在python中进行培训,在python中提供服务,也在python中重新验证。传统R和H2O模型始终可以在python中重新安装。

相关问题