web-dev-qa-db-fra.com

Comment économiser un modèle formé par Scikit-Apprendre?

J'essaie de recréer la prévision d'un modèle formé, mais je ne sais pas comment enregistrer un modèle. Par exemple, je souhaite sauvegarder le modèle de régresseur de traitement gaussien formé et recréer la prédiction après avoir formé le modèle. Le package que j'ai utilisé pour former le modèle est Scikit-apprendre.

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

Vous pouvez utiliser:

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

De scikit-learn Documentation :

Dans le cas spécifique de SCIKIT-HORS, il peut être préférable d'utiliser le remplacement du cornichon de JOBLIB (DUMP & CHARGE), qui est plus efficace sur des objets qui portent des matières numpopieuses importantes en interne, tout comme le cas pour les estimateurs SCIKIT-apprencent, mais ne peut que corner sur le disque et non à une chaîne:

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])
1
sentence

Vous pouvez enregistrer et charger le modèle à l'aide de l'opération de cornichon pour sérialiser vos algorithmes d'apprentissage de la machine et enregistrer le format sérialisé dans un fichier.

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'))

J'espère que ça aide!

source

1
Eric