机器学习模型部署,常因开发语言或环境的不同,导致系统或应用无法直接使用离线模型,如在模型训练使用Python,而应用使用Java等其他语言开发。而在此状况下,模型部署上线,通常采用Falsk API服务、PMML、MLflow和Mleap等方法。以下将分别介绍Flask API 和PMML模型上线的方法。
1 Flask API服务
Flask 安装:pip install flask
Flask是一个使用 Python 编写的轻量级 Web 应用框架,通过Flask将Sklearn机器学习模型上线,是将Sklarn的模型保存为pkl文件,并在Flask 服务中加载,从而以接口的形式接收数据预测结果。以iris鸢尾花数据集训练模型,并上线部署为例:
(1)Sklearn模型训练并生成pkl文件,脚本如下:
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import MinMaxScaler
from sklearn.externals import joblib
#加载iris数据
iris = load_iris()
x = iris.data
y = iris.target
scaler = MinMaxScaler()
x_sc = scaler.fit_transform(x)
clf = LogisticRegression()
clf.fit(x_sc,y)
# 模型保存
joblib.dump(scaler,'MinMaxScalerModel.pkl')
joblib.dump(clf, 'LogisticRegressionModel.pkl')
(2)在Flask中加载pkl文件,脚本如下:
from flask import Fl