Déploiement de modèle

Concevoir des flux de travail Machine Learning en Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Un objet de pipeline de modèle comprenant la sélection de caractéristiques, le choix du modèle, l'ajustement des hyperparamètres et l'entraînement du modèle est poussé en production, qui utilise le pipeline entraîné pour la prédiction.

Concevoir des flux de travail 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 flux de travail 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 caractéristiques et un modèle entraîné doivent être tous deux poussés séparément en production.

Concevoir des flux de travail 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 caractéristiques et un modèle entraîné doivent être tous deux poussés séparément en production.

Concevoir des flux de travail 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 des caractéristiques et l'entraînement du modèle sont regroupés dans un seul objet pipeline.

Concevoir des flux de travail 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 des caractéristiques et l'entraînement du modèle sont regroupés dans un seul objet pipeline.

Concevoir des flux de travail Machine Learning en Python

Transformations de caractéristiques personnalisées

   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 flux de travail Machine Learning en Python

Prêt pour la production !

Concevoir des flux de travail Machine Learning en Python

Preparing Video For Download...