【Sklearn】3种模型保存的文件格式及调用方法

Sklearn保存和调用模型的三种方式

方式一:保存为python支持的pickle格式

import pickle
from sklearn.svm import SVC
from sklearn import datasets

# 定义分类器
svm = SVC()

# 加载iris数据集
iris = datasets.load_iris()
# 读取特征
X = iris.data
# 读取分类标签
y = iris.target

# 训练模型
svm.fit(X, y)

# 保存成python支持的文件格式pickle, 在当前目录下可以看到svm.pickle
with open('D:/Model/svm.pickle', 'wb') as fw:
    pickle.dump(svm, fw)

# 调用svm.pickle
with open('D:/Model/svm.pickle', 'rb') as fr:
    new_svm = pickle.load(fr)
    print (new_svm.predict(X[0:1]))   # 预测新的数据

方式二:保存为sklearn自带的文件pkl格式

from sklearn.externals import joblib
from sklearn.svm import SVC
from sklearn import datasets

# 定义分类器
svm = SVC()

# 加载iris数据集
iris = datasets.load_iris()
# 读取特征
X = iris.data
# 读取分类标签
y = iris.target

# 训练模型
svm.fit(X, y)

# 保存成sklearn自带的文件格式
joblib.dump(svm, 'D:/Model/svm.pkl')

# 调用svm.pkl
new_svm = joblib.load('D:/Model/svm.pkl')
print(new_svm.predict(X[0:1]))  # 预测新的数据

方式三:保存为java支持的pmml格式

pip install sklearn2pmml

# 保存为java支持的格式
from sklearn2pmml import PMMLPipeline, sklearn2pmml
from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets

# 加载iris数据集
iris = datasets.load_iris()
# 读取特征
X = iris.data
# 读取分类标签
y = iris.target

rf = PMMLPipeline([
    ("classifier", RandomForestClassifier())
])

# 训练模型
rf.fit(X, y)

# 保存成java支持的文件格式pmml, 在当前目录下可以看到svm.pmml
sklearn2pmml(rf, 'D:/Model/rf.pmml')
  • java调用:

可参考https://blog.csdn.net/hellozhxy/article/details/82142700

  • python调用:
    pip install pypmml
from pypmml import Model

model = Model.fromFile(path)
y_predict = model.predict(X_test)

你可能感兴趣的:(算法篇,sklearn,模型保存,pmml,调用)