機器學習之保存與加載.pickle模型文件

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

#定義一個分類器
svm = SVC()

iris = datasets.load_iris()
X = iris.data
y = iris.target

#訓練模型
svm.fit(X,y)

#1.保存成Python支持的文件格式Pickle
#在當前目錄下能夠看到svm.pickle
with open('svm.pickle','wb') as fw:
   pickle.dump(svm,fw) #加載svm.pickle
with open('svm.pickle','rb') as fr:
    new_svm1 = pickle.load(fr) # print (new_svm1.predict(X[0:1]))

#2.保存成sklearn自帶的文件格式Joblib
joblib.dump(svm,'svm.pkl')
#加載svm.pkl
new_svm2 = joblib.load('svm.pkl')
print (new_svm2.predict(X[0:1]))

總結:函數

1.訓練好一個Model之後須要保存和再次預測
2.有兩個模塊用來保存模型 : pickle和joblib
3.Sklearn的模型導出本質上是利用Python的Pickle機制。對Python的函數進行序列化,也就是把訓練好的Transformer函數序列化並存爲文件。

代碼流程:
  1.保存Model(注:save文件夾要預先創建,不然會報錯)

    joblib.dump(clf, ‘save/clf.pkl’)

  2.讀取Model

    clf2 = joblib.load(‘save/clf.pkl’)

  3.測試讀取後的Model

    print(clf2.predict(X[0:1]))**
相關文章
相關標籤/搜索