Vous êtes sur la page 1sur 3

TUTO : SAUVEGARDE D’UN MODÈLE

Trouver un modèle d'apprentissage automatique précis n'est pas la fin du projet.

Dans ce tuto, vous découvrirez comment enregistrer et charger votre modèle d'apprentissage
automatique en Python à l'aide de scikit-learn.

Cela vous permet de sauvegarder votre modèle dans un fichier et de le charger plus tard afin de faire
des prédictions.

Ce tutoriel est divisé en 3 parties, ce sont :

1. Enregistrez votre modèle avec pickle


2. Enregistrez votre modèle avec joblib
3. Conseils pour enregistrer votre modèle

ENREGISTREZ VOTRE MODÈLE AVEC PICKLE


Pickle est le moyen standard de sérialiser des objets en Python.

Vous pouvez utiliser l'opération pickle pour sérialiser vos algorithmes d'apprentissage automatique
et enregistrer le format sérialisé dans un fichier.

Plus tard, vous pourrez charger ce fichier pour désérialiser votre modèle et l'utiliser pour faire de
nouvelles prédictions.

L'exemple ci-dessous montre comment former un modèle de classification pour le data set iris,
enregistrer le modèle dans un fichier à l’aide de pickle et le charger pour faire des prédictions sur des
données autres que les données d’apprentissage.
# Save Model Using Pickle
import pickle
from sklearn import datasets
iris = datasets.load_iris()
target = iris.target
data = iris.data
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(
data, target, random_state=42, train_size=0.5)
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X_train, Y_train)

# save the model to disk


filename = 'IrisPredictor_model.sav'
pickle.dump(clf, open(filename, 'wb'))

# some time later...

# load the model from disk


loaded_model = pickle.load(open(filename, 'rb'))
precision = loaded_model.score(X_test, Y_test)
print(precision)

ENREGISTREZ VOTRE MODÈLE AVEC JOBLIB


Joblib fait partie de l'écosystème SciPy et fournit des utilitaires pour le pipelining de jobs Python.

Il fournit des utilitaires pour enregistrer et charger des objets Python qui utilisent efficacement les
structures de données NumPy.
Cela peut être utile pour certains algorithmes d'apprentissage automatique qui nécessitent beaucoup
de paramètres ou stockent l'intégralité de l'ensemble de données (comme les K-Nearest
Neighbours).

L'exemple ci-dessous montre comment former un modèle de classification pour le data set iris,
enregistrer le modèle dans un fichier à l’aide de joblib et le charger pour faire des prédictions sur des
données autres que les données d’apprentissage.
# Save Model Using joblib
import joblib
from sklearn import datasets
iris = datasets.load_iris()
target = iris.target
data = iris.data
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(
data, target, random_state=42, train_size=0.5)
from sklearn.naive_bayes import GaussianNB
clf = GaussianNB()
clf.fit(X_train, Y_train)

# save the model to disk


filename = 'IrisPredictor_Model2.sav'
joblib.dump(clf, filename)

# some time later...

# load the model from disk


loaded_model = joblib.load(filename)
precision = loaded_model.score(X_test, Y_test)
print(precision)

CONSEILS POUR ENREGISTRER VOTRE MODÈLE


Cette section répertorie quelques considérations importantes lors de la finalisation de vos modèles
d'apprentissage automatique.

▪ Version Python. Prenez note de la version python. Vous aurez presque certainement besoin
de la même version majeure (et peut-être mineure) de Python utilisée pour sérialiser le
modèle lorsque vous le chargerez et le désérialiserez ultérieurement.
▪ Versions de la bibliothèque. La version de toutes les principales bibliothèques utilisées dans
votre projet d'apprentissage automatique doit presque certainement être la même lors de la
désérialisation d'un modèle enregistré. Cela ne se limite pas à la version de NumPy et à la
version de scikit-learn.
▪ Sérialisation manuelle. Vous souhaiterez peut-être afficher manuellement les paramètres de
votre modèle appris afin de pouvoir les utiliser directement dans scikit-learn ou sur une autre
plate-forme à l'avenir. Souvent, les algorithmes utilisés en ML pour effectuer des prédictions
sont beaucoup plus simples que ceux utilisés pour apprendre les paramètres et peuvent être
faciles à implémenter dans un code personnalisé sur lequel vous avez le contrôle.

Prenez note de la version afin de pouvoir recréer l'environnement si pour une raison quelconque
vous ne pouvez pas recharger votre modèle sur une autre machine ou une autre plateforme
ultérieurement.

RÉSUMÉ
Dans ce tuto, vous avez découvert comment sauvegarder vos modèles appris par des algorithmes de
ML en Python avec scikit-learn.

Vous avez appris deux techniques que vous pouvez utiliser :

1. L'API pickle pour sérialiser les objets Python standard.


2. L'API joblib pour sérialiser efficacement les objets Python avec des tableaux NumPy.

Vous aimerez peut-être aussi