文章目录
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快