Sklearn——保存模型参数(pickle&joblib)

1.前言

我们训练好了一个Model 以后总需要保存和再次预测, 所以保存和读取我们的sklearn model也是同样重要的一步。今天主要介绍两种保存Model的模块pickle与joblib。

2.pickle 保存

首先简单建立与训练一个SVC的Model。

from sklearn import svm
from sklearn import datasets

iris = datasets.load_iris()
X, y = iris.data, iris.target
model = svm.SVC()

model.fit(X,y)

使用pickle来保存与读取训练好的Model。

import pickle

with open('model.pickle','wb') as f:
    pickle.dump(model,f)

with open('model.pickle','rb') as f:
    model_get = pickle.load(f)
    print(model_get.predict(X[0:100]))

#输出
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

3.pickle 保存

joblib是sklearn的外部模块。

from sklearn.externals import joblib

joblib.dump(model, 'model_.pkl')
model_ = joblib.load('model_.pkl')
print(model_.predict(X[0:100]))

#输出
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

最后可以知道joblib在使用上比较容易,读取速度也相对pickle快

发布了195 篇原创文章 · 获赞 566 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_37763870/article/details/105187275