python中模型的保存和调用
目录
- 使用pickle进行保存和调用(需要配合open函数来使用)
- 使用joblib进行保存和调用(用法更简单)
使用pickle保存和调用模型
我们可以使用pickle和open函数连用,来将我们的模型保存到本地
#要保存的模型
from sklearn.datasets import load_boston
from sklearn.ensemble import RandomForestRegressor
boston = load_boston()
X = boston.data
y = boston.target
reg = RandomForestRegressor(n_estimators=180)
reg.fit(X,y)
RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=None,
max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, n_estimators=180,
n_jobs=None, oob_score=False, random_state=None,
verbose=0, warm_start=False)
#保存模型
import pickle
pickle.dump(reg,open("randommodel.dat","wb"))
注意采用二进制进行读入
#导入模型
load_model = pickle.load(open("randommodel.dat","rb"))
#使用新导入的模型
load_model.score(X,y)
0.9839061481873418
使用joblib保存和调用
joblib是scipy生态系统中的一部分,它为python提供保存和调用管道和对象的功能,处理numpy结果的数据尤其高效,对于很大的数据集和巨大的模型非常有用
#保存模型
import joblib
joblib.dump(reg,"saveagain.dat")
['saveagain.dat']
#导入模型
load_model = joblib.load("saveagain.dat")
#使用新导入的模型
load_model.score(X,y)
0.9839061481873418
在这两种保存方法下,我们都可以找到保存下来的dat文件,将这些文件移动到任意计算机上去使用。