Comment sauvegarder et réutiliser un modèle développé avec scikit learn en utilisant joblib ?

Active 14 juillet 2020    /    Viewed 2645    /    Comments 0    /    Edit


Exemple de comment sauvegarder et réutiliser un modèle développé avec scikit learn en python:

Générer des données

from sklearn import linear_model
from pylab import figure

import matplotlib.pyplot as plt
import numpy as np

x = np.random.uniform(0,8,100)

sigma = np.random.randn(100) * 4.1

y = 4.0 * x + 2.0 + sigma

fig = figure(num=None, figsize=(12, 10), dpi=80, facecolor='w', edgecolor='k')

plt.scatter(x,y)

plt.title(r'Linear regression with scikit learn in python')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,8)

plt.savefig("linear_regression_01.png", bbox_inches='tight')

Comment sauvegarder et réutiliser un modèle développé avec scikit learn en python ?

Entrainer un modèle linéaire

reg = linear_model.LinearRegression()

x = x[:, np.newaxis]
y = y[:, np.newaxis]

reg.fit(x,y)

xp = np.arange(0,8,0.2)
xp = xp[:, np.newaxis]
yp = reg.predict(xp)

plt.plot(xp,yp, color='coral')

plt.title(r'Linear regression with scikit learn in python')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,8)

plt.savefig("linear_regression_02.png", bbox_inches='tight')

plt.show()

Comment sauvegarder et réutiliser un modèle développé avec scikit learn en python ?

Sauvegarder le modèle dans un fichier

from joblib import dump, load

dump(reg, 'regression_model_saved.joblib')

Télécharger le modèle depuis le fichier

reg_loaded = load('regression_model_saved.joblib')

xp = np.arange(0,8,0.2)
xp = xp[:, np.newaxis]

yp = reg_loaded.predict(xp)

plt.scatter(x,y)
plt.plot(xp,yp, color='coral')

plt.title(r'Linear regression with scikit learn in python')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,8)

plt.show()

Comment sauvegarder et réutiliser un modèle développé avec scikit learn en python ?

Sauvegarder et réutiliser plusieurs modèles dans un même fichier

Créer deux modèles

fig = figure(num=None, figsize=(12, 10), dpi=80, facecolor='w', edgecolor='k')

x = np.random.uniform(0,8,100)

sigma = np.random.randn(100) * 4.1

y = 4.0 * x + 2.0 + sigma

plt.scatter(x,y, color='coral')

reg = linear_model.LinearRegression()

x = x[:, np.newaxis]
y = y[:, np.newaxis]

reg1 = reg.fit(x,y)

x = np.random.uniform(0,8,100)

sigma = np.random.randn(100) * 4.1


plt.plot(xp,reg1.predict(xp), color='coral')

y = 6.0 * x - 2.0 + sigma

x = x[:, np.newaxis]
y = y[:, np.newaxis]

reg = linear_model.LinearRegression()

reg2 = reg.fit(x,y)

xp = np.arange(0,8,0.2)
xp = xp[:, np.newaxis]

plt.scatter(x,y, color='lightblue')
plt.plot(xp,reg2.predict(xp), color='lightblue')

plt.title(r'Linear regression with scikit learn in python')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,8)

plt.savefig("linear_regression_03.png", bbox_inches='tight')

plt.show()

Comment sauvegarder et réutiliser un modèle développé avec scikit learn en python ?

Sauvegarder les deux modèles

dump([reg1, reg2], 'regression_model_saved.joblib', compress=1)

Réutiliser les deux modèles

reg1_loaded, reg2_loaded = load('regression_model_saved.joblib')

xp = np.arange(0,8,0.2)
xp = xp[:, np.newaxis]

plt.plot(xp,reg1_loaded.predict(xp), color='coral')
plt.plot(xp,reg2_loaded.predict(xp), color='lightblue')

plt.title(r'Linear regression with scikit learn in python')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(0,8)

plt.show()

Comment sauvegarder et réutiliser un modèle développé avec scikit learn en python ?

Références


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!