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]))**