簡體   English   中英

如何通過scikit-learn保存經過訓練的模型?

[英]How to save a trained model by scikit-learn?

我正在嘗試重新創建訓練有素的模型的預測,但是我不知道如何保存模型。 例如,我想保存訓練后的高斯處理回歸模型並在訓練模型后重新創建預測。 我用來訓練模型的軟件包是scikit-learn。

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

您可以使用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'))

希望能幫助到你!

資源

您可以使用:

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文檔中

在scikit-learn的特定情況下,最好使用joblib代替pickle(轉儲和加載),這對內部裝有大型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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM