我想使用Pickle导出和导入我用Sklearn训练的模型。如何进行操作?
我想使用Pickle导出和导入我用Sklearn训练的模型。如何进行操作?
保存:
import pickle
with open("model.pkl", "wb") as f:
pickle.dump(model, f)
加载:
with open("model.pkl", "rb") as f:
model = pickle.load(f)
对于scikit-learn这个特定情况,使用joblib替换pickle(dump和load)可能更好,因为对于内部携带大型numpy数组的对象,这通常是适合已安装的scikit-learn估计器的情况:
保存:
import joblib
joblib.dump(model, "model.joblib")
加载:
model = joblib.load("model.joblib")
使用pickle在所有机器学习模型中都是相同的,无论是聚类、回归等等。
用于保存模型的方法是dump,其中'wb'表示写入二进制。
pickle.dump(model, open(filename, 'wb')) #Saving the model
在任何需要加载已保存模型的地方,使用load,其中'rb'表示读取二进制文件。
model = pickle.load(open(filename, 'rb')) #To load saved model from local directory
这里的模型是kmeans,文件名可以是本地文件,所以根据需要使用。
一个人也可以使用joblib
from joblib import dump, load
dump(model, model_save_path)