Python模型持久化

2016/11/19 Python scikitlearn

模型持久化

模型训练是一个耗时又耗资源的操作,一旦模型训练完成后,可以通过持久化操作将训练好的模型保存为文件,需要时再加载到内存。

模型持久化安装

早期版本的Scikit-learn在扩展子模块externals中提供了joblib包用于模型持久化。现在joblib包已经独立为一个第三方模块,因此最新版本的Scikit-learn已经不再包含joblib包。joblib包的安装命令如下。

pip install joblib

Python内置的序列化模块pickle也可以实现模型的持久化,用起来也很简单。不过,pickle模块更适合持久化Python原生的数据结构,其处理NumPy数据的效率明显低于joblib包。下面的代码演示了如何使用joblib包保存和加载学习模型。

>>> import joblib
>>> from sklearn.datasets import load_wine
>>> from sklearn.svm import SVC
>>> X, y = load_wine(return_X_y=True)
>>> svc = SVC()
>>> svc.fit(X, y)
SVC(C=1.0, break_ties=False, cache_size=200, class_weight=None, coef0=0.0,
    decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',
    max_iter=-1, probability=False, random_state=None, shrinking=True,
    tol=0.001, verbose=False)
>>> joblib.dump(svc, r'D:\NumPyFamily\svc.m') # 持久化模型
['D:\\NumPyFamily\\svc.m']
>>> svc = joblib.load(r'D:\NumPyFamily\svc.m') # 加载模型

Search

    微信好友

    博士的沙漏

    Table of Contents