006-sklearn模型的保存加载

这次主要介绍两种保存Model的模块pickle与joblib。

使用 pickle 保存 

首先简单建立与训练一个SVCModel。

1
2
3
4
5
6
7
from sklearn import svm
from sklearn import datasets

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import pickle #pickle模块

#保存Model(注:save文件夹要预先建立,否则会报错)
with open('save/clf.pickle', 'wb') as f:
    pickle.dump(clf, f)

#读取Model
with open('save/clf.pickle', 'rb') as f:
    clf2 = pickle.load(f)
    #测试读取后的Model
    print(clf2.predict(X[0:1]))

执行结果:

1
# [0]

使用 joblib 保存 

joblibsklearn的外部模块。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from sklearn.externals import joblib #jbolib模块

#保存Model(注:save文件夹要预先建立,否则会报错)
joblib.dump(clf, 'save/clf.pkl')

#读取Model
clf3 = joblib.load('save/clf.pkl')

#测试读取后的Model
print(clf3.predict(X[0:1]))

# [0]

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