【模型選擇與評估04】模型持久化

1.參考文獻
sklearn文獻

可以通過使用 Python 的內置持久化模型將訓練好的模型保存在 scikit 中,它名爲 pickle

>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
    decision_function_shape='ovr', degree=3, gamma='auto', kernel='rbf',
    max_iter=-1, probability=False, random_state=None, shrinking=True,
    tol=0.001, verbose=False)
    
使用方面直接import即可,它有dumps和loads兩種方法,分別進行模型的存儲和讀取
>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0
要注意的地方:
爲了用以後版本的 scikit-learn 來重構類似的模型, 額外的元數據應該隨着 pickled model 一起被保存:
【1】訓練數據,例如:引用不可變的快照
【2】用於生成模型的 python 源代碼
【3】scikit-learn 的各版本以及各版本對應的依賴包
【4】在訓練數據的基礎上獲得的交叉驗證得分
這樣可以檢查交叉驗證得分是否與以前相同。
由於模型內部表示可能在兩種不同架構上不一樣,因此不支持在一個架構上轉儲模型並將其加載到另一個體系架構上。
(本質上強調完整保存模型的產生場景,這樣可以儘可能便於後期對於模型的檢查以及復原場景)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章