Come salvare il modello creato con Scikit-Learn

Dopo l'apprendimento posso utilizzare la funzione dump() del modulo joblib per salvare il modello in un file.

joblib.dump(model, 'filename.sav')

La funzione serializza il modello e lo salva in un file fisico sul PC, rendendolo persistente.

In questo modo posso caricare il modello in altri programmi o macchine, senza dover addestrare nuovamente la macchina.

Come caricare il modello su un'altra macchina?

Per caricare il modello dal file uso la funzione load() di joblib.

modello = load('filename.sav')

Python carica il modello dal file e lo salva nella variabile modello.

Un esempio pratico

In questo script addestro la macchina a classificare i dati di training del dataset Iris.

  1. import pandas as pd
  2. from sklearn.linear_model import Perceptron
  3. from sklearn import datasets
  4. from sklearn.model_selection import train_test_split
  5. df = datasets.load_iris()
  6. x = df.data
  7. y = df.target
  8. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)
  9. # addestramento modello
  10. model = Perceptron()
  11. model.fit(x_train, y_train)
  12. #salvataggio
  13. from joblib import dump, load
  14. dump(model, 'prova.sav')
  15. #caricamento
  16. model2 = load('prova.sav')

Nella riga 10 carico l'algoritmo di classificazione Perceptron e lo utilizzo nella riga seguente per addestrare la macchina.

Al termine dell'addestramento, nella riga 14 salvo il modello con la funzione dump() di joblib nel file prova.sav.

dump(model, 'prova.sav')

Infine, nella riga 16 ricarico il file 'prova.sav' tramite la funzione load() di joblib e lo salvo nella variabile model2.

model2 = load('prova.sav')

Al termine dello script model e model2 contengono lo stesso modello decisionale.

Un metodo alternativo

In alternativa posso usare le funzioni dumps() e load() del modulo pickle

import pickle
s = pickle.dumps(model)
model2 = pickle.loads(s)

La funzione dumps() serializza il modello e lo salva nella variabile s.

La funzione loads() invece recupera il modello dalla variabile s e lo assegna alla variabile model2

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Scikit-learn

  1. Cos'è sklearn
  2. Come installare sklearn
  3. Un esempio di machine learning
  4. Come usare i datasets didattici di scikit-learn
  5. Come creare un dataset con Excel
  6. Come rappresentare le regioni decisionali
  7. La vettorizzazione delle categorie
  8. StandardScaler ( riduzione di scala )
  9. L'analisi degli errori del classificatore
  10. L'analisi degli errori del regressore
  11. Perceptron
  12. La regressione lineare
  13. La regressione logistica
  14. Decision Tree Classifier
  15. k-NN (k Nearest Neighbors)
  16. MLPClassifier