首先 需要 搞明白 一个 问题就是,为什么需要 将模型 保存为 pmml文件,以及 pmml文件是什么 东东。
1. 什么 是pmml文件
predict model markup language 预测模型标记语言,它以xml格式保存,既然是 xml,那就是可以跨平台了啊。更详细的自行 google.
2. 为什么要转换为pmml
我离线 训练了一个 模型,怎么 让 线上的其它系统使用 我的 模型呢。如果 是 python语言间,那这就不是问题了。但是大部分场景是 我用python离线训练模型,然后 让java,c#,c/c++等语言写的系统调用,那问题就来了。怎么调用呢。转换为pmml呀。
怎么转换呢,详见:https://github.com/AlbertBJ/sklearn2pmml
在安装过SkLearn2PMML后,就可以在notebook中使用了。栗子如下:
from sklearn.cluster import KMeans
from sklearn.externals import joblib
from sklearn import cluster
import numpy as np
data = np.random.rand(10,3)
print(data)
estimator=KMeans(n_clusters=2,init='k-means++',n_jobs=1)
from sklearn2pmml import PMMLPipeline, sklearn2pmml
km_pipeline = PMMLPipeline([
("KM", estimator)
])
km_pipeline.fit(data)
sklearn2pmml(km_pipeline, "KM.pmml")
特别是最后 这一步,必须是安装jdk后,重启机器(我这边就遇到 这种情况,)
知乎: https://zhuanlan.zhihu.com/albertwang
微信公众号:AI-Research-Studio
下面是赞赏码