天天看點

scikit-learn儲存和加載模型

1.利用pickle

import pickle
#模型儲存
#這裡的model已經是生成好的模型了,注意一定要用"wb+",否則會報錯
model.fit(train_X, train_y)
s=pickle.dumps(model)
f=open('svm.model', "wb+")
f.write(s)
f.close()
print ("Done\n")

#模型調用,注意讀取方式'rb',否則會報錯
f2=open('svm.model','rb')
s2=f2.read()
model1=pickle.loads(s2)
expected = test_y
predicted = model1.predict(test_X)
           

2.利用joblib

from sklearn.externals import joblib
# 模型儲存
model.fit(train_X, train_y)
joblib.dump(model, "train1_model.m")
print ("Done\n")

# 模型調用
model1 = joblib.load("train1_model.m")
expected = test_y 
predicted = model1.predict(test_X)
           

這裡的調用僅限在同一個py檔案中,如果在另外一個py檔案中調用,預測結果會出錯,考慮到如果預測資料又需要跑一遍模型,樓主的建議是,把儲存模型的過程寫進函數裡面,下次不再調用該函數即可