使用python的機器學習包sklearn的時候,如果訓練集是固定的,我們往往想要將一次訓練的模型結果保存起來,以便下一次使用,這樣能夠避免每次運行時都要重新訓練模型時的麻煩。
在python里面,有一個joblib可以實現將模型保存,並將保存后的模型取出用於不同的測試集:
1 from sklearn import svm 2 from sklearn.externals import joblib 3 4 #訓練模型 5 clf = svc = svm.SVC(kernel='linear') 6 rf=clf.fit(array(trainMat), array(listClasses)) 7 8 #保存模型 9 joblib.dump(rf,'rf.model') 10 11 #加載模型 12 RF=joblib.load('rf.model') 13 14 #應用模型進行預測 15 result=RF.predict(thsDoc)
需要注意的是,這里執行joblib.dump()之后,有可能還會生成若干個以rf.model_XX.npy為命名格式的文件,這有可能是用於保存模型中的系數等的二進制文件。其具體生成的文件的個數還會隨調用到的分類器的不同,以及分類器中迭代次數的參數的不同而變,有時候會生成幾個,有時候會生成幾百個。