如何通过scikit-learn保存经过训练的模型?

时间:2019-05-13 07:05:41

标签: scikit-learn

我正在尝试重新创建经过训练的模型的预测,但是我不知道如何保存模型。 例如,我想保存训练后的高斯处理回归模型并在训练模型后重新创建预测。 我用来训练模型的软件包是scikit-learn。

kernel = DotProduct() + WhiteKernel()
gpr = GaussianProcessRegressor(kernel=kernel,random_state=0)
gpr.fit(X,y)

2 个答案:

答案 0 :(得分:0)

您可以使用pickle操作保存和加载模型,以序列化您的机器学习算法,并将序列化的格式保存到文件中。

import pickle
# save the model to disk
filename = 'gpr_model.sav'
pickle.dump(gpr, open(filename, 'wb')) 

# load the model from disk
loaded_model = pickle.load(open(filename, 'rb'))

希望有帮助!

source

答案 1 :(得分:0)

您可以使用:

1。 pickle

from sklearn import svm
from sklearn import datasets

iris = datasets.load_iris()
X, y = iris.data, iris.target

clf = svm.SVC()
clf.fit(X, y)  

##########################
# SAVE-LOAD using pickle #
##########################
import pickle

# save
with open('model.pkl','wb') as f:
    pickle.dump(clf,f)

# load
with open('model.pkl', 'rb') as f:
    clf2 = pickle.load(f)

clf2.predict(X[0:1])

2。 joblib

来自scikit-learn documentation

  

在scikit-learn的特定情况下,最好使用joblib的   更换泡菜(倾卸和装载),在   经常在内部携带大型numpy数组的对象   适用于装有scikit-learn的估算器,但只能将其腌制到磁盘上   而不是字符串:

from sklearn import svm
from sklearn import datasets

iris = datasets.load_iris()
X, y = iris.data, iris.target

clf = svm.SVC()
clf.fit(X, y)  

##########################
# SAVE-LOAD using joblib #
##########################
import joblib

# save
joblib.dump(clf, "model.pkl") 

# load
clf2 = joblib.load("model.pkl")

clf2.predict(X[0:1])