机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
在训练了一个scikit-learn模型后,如果想持久化这个模型以便将来使用怎么办呢?下面以一个例子介绍怎样使用pickle
持久化一个模型。
持久化例子
使用Python内置的持久化模型pickle
, 能够在scikit里保存一个模型。
在特定的情况下,可以使用pickle的joblib替代(joblib.dump & joblib.load),它对于加载大numpy数组的对象的执行效率更高。
from sklearn.externals import joblib
joblib.dump(clf, 'filename.pkl')
以后,你可以在另一个Python进程加载回这个pickle模型
clf = joblib.load('filename.pkl')
安全性与可维护限制
pickle在安全性与可维护性方面有一些问题。
-
不要unpickle不可信的数据,因为这可能导致加载恶意代码。
-
当使用某个版本的scikit-learn保存模型,而使用另一个版本的scikit-learn加载模型&