python模型保存与恢复 pmml_将python训练好的模型保存为pmml文件供java调用

1、PMLL概述

用python训练好的机器学习模型如果上线部署,被java调用,可以将模型保存为pmml文件,那么什么是pmml呢?PMML是数据挖掘的一种通用的规范,它用统一的XML格式来描述我们生成的机器学习模型。这样无论你的模型是sklearn,R还是Spark MLlib生成的,都可以将其转化为标准的XML格式来存储。当我们需要将这个PMML的模型用于部署的时候,可以使用目标环境的解析PMML模型的库来加载模型,并做预测。

可以看出,要使用PMML,需要两步的工作,第一块是将离线训练得到的模型转化为PMML模型文件,第二块是将PMML模型文件载入在线预测环境,进行预测。这两块都需要相关的库支持。

2、PMML依赖环境安装

Step1: PMML需要安装python一个第三方库,在ubuntu 16.04下终端命令为

pip3 install sklearn2pmml

Step 2:将模型打包为PMML文件的上述库还依赖于java  jdk ,终端输入如下命令,然后按提示敲入回车:

sudo add-apt-repository ppa:webupd8team/java

Step3:然后依次输入以下命令

sudo apt update #更新库缓存

sudo apt install openjdk-9-jdk #安装jdk

sudo apt -f install #修复依赖与覆盖问题,完成安装

其中第二条指令可能会出错。不要担心,只要执行完第三条后就会成功

3、将机器学习模型打包PMML小例子

完成上述依赖环境后,我们就可以将我们训练的模型打包为PMML文件,一个小例子代码如下

from sklearn.datasets import load_iris

from sklearn.ensemble import RandomForestClassifier

from sklearn2pmml import PMMLPipeline, sklearn2pmml

import pandas as pd

iris = load_iris()

# 创建带有特征名称的 DataFrame

iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)

# 创建模型管道

iris_pipeline = PMMLPipeline([

("classifier", RandomForestClassifier())

])

# 训练模型

iris_pipeline.fit(iris_df, iris.target)

# 导出模型到 RandomForestClassifier_Iris.pmml 文件

sklearn2pmml(iris_pipeline, "RandomForestClassifier_Iris.pmml")

运行后,会在当前文件路径多出一个名为RandomForestClassifier_Iris.pmml的文件,打包成功,可以上线交给工程师调用!

关于PMML参考:https://blog.csdn.net/qq_36421826/article/details/81623928

你可能感兴趣的:(python模型保存与恢复,pmml)