需求:
一直寫的代碼都是從加載數據,模型訓練,模型預測,模型評估走出來的,但是實際業務線上咱們肯定不能每次都來訓練模型,而是應該將訓練好的模型保存下來
,如果有新數據直接套用模型就行了吧?現在問題就是怎么在實際業務中保存模型,不至於每次都來訓練,在預測。
解決方案:
機器學習-訓練模型的保存與恢復(sklearn)
python /模型持久化 /模型保存 /joblib /模型恢復
在做模型訓練的時候,尤其是在訓練集上做交叉驗證,通常想要將模型保存下來,
然后放到獨立的測試集上測試,下面介紹的是Python的sklearn中訓練模型的保存和再使用。
scikit-learn已經有了模型持久化的操作,導入joblib即可
from sklearn.externals import joblib
模型保存
>>> os.chdir("D://model_save")
>>> from sklearn import svm
>>> X = [[0, 0], [1, 1]]
>>> y = [0, 1]
>>> clf = svm.SVC()
>>> clf.fit(X, y)
>>> clf.fit(train_X,train_y)
>>> joblib.dump(clf, "train_model.m")
通過joblib的dump可以將模型保存到本地,clf是訓練的分類器
模型從本地調回
>>> clf = joblib.load("train_model.m")
通過joblib的load方法,加載保存的模型。
然后就可以在測試集上測試了
clf.predit(test_X) #此處test_X為特征集