Implantação de modelos

Projetando Workflows de Machine Learning em Python

Dr. Chris Anagnostopoulos

Honorary Associate Professor

Um objeto de pipeline de modelo contendo seleção de atributos, seleção de modelo, ajuste de hiperparâmetros e treinamento do modelo é enviado para produção, que usa o pipeline treinado para prever.

Projetando Workflows de Machine Learning em Python

Serializar seu modelo

Salvar um classificador em arquivo:

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

Carregar novamente do arquivo:

with open('model.pkl', 'rb') as file:
    clf2 = pickle.load(file)
Projetando Workflows de Machine Learning em Python

Serializar seu pipeline

Ambiente de desenvolvimento:

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)

Um fluxo em que um objeto seletor de atributos e um modelo treinado precisam ser enviados separadamente para produção.

Projetando Workflows de Machine Learning em Python

Serializar seu pipeline

Ambiente de produção:

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))

Um fluxo em que um objeto seletor de atributos e um modelo treinado precisam ser enviados separadamente para produção.

Projetando Workflows de Machine Learning em Python

Serializar seu pipeline

Ambiente de desenvolvimento:

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)

Um fluxo otimizado em que seleção de atributos e treinamento do modelo estão em um único objeto de pipeline.

Projetando Workflows de Machine Learning em Python

Serializar seu pipeline

Ambiente de produção:

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

Um fluxo otimizado em que seleção de atributos e treinamento do modelo estão em um único objeto de pipeline.

Projetando Workflows de Machine Learning em Python

Transformações de atributos personalizadas

   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())])
Projetando Workflows de Machine Learning em Python

Pronto para produção!

Projetando Workflows de Machine Learning em Python

Preparing Video For Download...