将python训练好的模型保存为pmml⽂件供java调⽤
1、PMLL概述python转java代码
⽤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
semble 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参考:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。