Déploiement de modèle

Concevoir des workflows de Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Un objet de pipeline de modèle incluant la sélection de variables, le choix du modèle, le réglage et l'ajustement est poussé en production, où le pipeline ajusté sert aux prédictions.

Concevoir des workflows de Machine Learning en Python

Sérialiser votre modèle

Enregistrer un classificateur dans un fichier :

import pickle
clf = RandomForestClassifier().fit(X_train, y_train)
with open('model.pkl', 'wb') as file:
    pickle.dump(clf, file=file)

Le recharger depuis le fichier :

with open('model.pkl', 'rb') as file:
    clf2 = pickle.load(file)
Concevoir des workflows de Machine Learning en Python

Sérialiser votre pipeline

Environnement de développement :

vt = SelectKBest(f_classif).fit(
    X_train, y_train)
clf = RandomForestClassifier().fit(
    vt.transform(X_train), y_train)
with open('vt.pkl', 'wb') as file: 
     pickle.dump(vt)
with open('clf.pkl', 'wb') as file: 
     pickle.dump(clf)

Un flux où un sélecteur de variables et un modèle ajusté doivent être poussés séparément en production.

Concevoir des workflows de Machine Learning en Python

Sérialiser votre pipeline

Environnement de production :

with open('vt.pkl', 'rb') as file: 
    vt = pickle.load(vt)
with open('clf.pkl', 'rb') as file: 
    clf = pickle.load(clf)
clf.predict(vt.transform(X_new))

Un flux où un sélecteur de variables et un modèle ajusté doivent être poussés séparément en production.

Concevoir des workflows de Machine Learning en Python

Sérialiser votre pipeline

Environnement de développement :

pipe = Pipeline([
    ('fs', SelectKBest(f_classif)), 
    ('clf', RandomForestClassifier())
])
params = dict(fs__k=[2, 3, 4],
    clf__max_depth=[5, 10, 20])
gs = GridSearchCV(pipe, params)
gs = gs.fit(X_train, y_train)

with open('pipe.pkl', 'wb') as file: pickle.dump(gs, file)

Un flux optimisé où la sélection de variables et l'ajustement du modèle sont réunis dans un seul objet pipeline.

Concevoir des workflows de Machine Learning en Python

Sérialiser votre pipeline

Environnement de production :

with open('pipe.pkl', 'rb') as file:
   gs = pickle.dump(gs, file)
gs.predict(X_test)

Un flux optimisé où la sélection de variables et l'ajustement du modèle sont réunis dans un seul objet pipeline.

Concevoir des workflows de Machine Learning en Python

Transformations personnalisées des variables

   checking_status  duration       ...        own_telephone  foreign_worker
0                1         6       ...                    1               1
1                0        48       ...                    0               1
def negate_second_column(X):
    Z = X.copy()
    Z[:,1] = -Z[:,1]
    return Z
pipe = Pipeline([('ft', FunctionTransformer(negate_second_column)), 
    ('clf', RandomForestClassifier())])
Concevoir des workflows de Machine Learning en Python

Prêt pour la production !

Concevoir des workflows de Machine Learning en Python

Preparing Video For Download...