Converter um caderno para um script

Concluído

Quando usas cadernos para experimentação e desenvolvimento, primeiro precisas de converter um caderno num script. Alternativamente, podes optar por saltar o uso de cadernos e trabalhar apenas com scripts. De qualquer forma, há algumas recomendações ao criar scripts para ter código pronto para produção.

Os scripts são ideais para testes e automação no seu ambiente de produção. Para criar um guião pronto para produção, precisa de:

  • Remover código não essencial.
  • Refatore o seu código em funções.
  • Teste o teu script no terminal.

Remover todo o código não essencial

O principal benefício de usar cadernos é poder explorar rapidamente os seus dados. Por exemplo, pode usar print() e df.describe() instruções para explorar os seus dados e variáveis. Quando crias um script usado para automação, deves evitar incluir código escrito para fins exploratórios.

A primeira coisa que precisa de fazer para converter o seu código para código de produção é remover o código não essencial. Especialmente quando executas o código regularmente, queres evitar executar qualquer coisa não essencial para reduzir custos e tempo de cálculo.

Refatora o teu código em funções

Ao usar código em processos empresariais, quer-se que o código seja fácil de ler para que qualquer pessoa o possa manter. Uma abordagem comum para tornar o código mais fácil de ler e testar é usar funções.

Por exemplo, imagine que usou o seguinte código de exemplo num caderno para ler e separar os dados:

# read and visualize the data
print("Reading data...")
df = pd.read_csv('diabetes.csv')
df.head()

# split data
print("Splitting data...")
X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness','SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

Como as funções também permitem testar partes do seu código, pode preferir criar múltiplas funções mais pequenas, em vez de uma função grande. Se quiseres testar uma parte do teu código, podes optar por testar apenas uma pequena parte e evitar correr mais código do que o necessário.

Pode refatorar o código mostrado no exemplo em duas funções:

  • Leia os dados
  • Dividir os dados

Um exemplo de código refatorado pode ser:

def main(csv_file):
    # read data
    df = get_data(csv_file)

    # split data
    X_train, X_test, y_train, y_test = split_data(df)

# function that reads the data
def get_data(path):
    df = pd.read_csv(path)
    
    return df

# function that splits the data
def split_data(df):
    X, y = df[['Pregnancies','PlasmaGlucose','DiastolicBloodPressure','TricepsThickness',
    'SerumInsulin','BMI','DiabetesPedigree','Age']].values, df['Diabetic'].values

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=0)

    return X_train, X_test, y_train, y_test

Observação

Pode ter reparado que o código não essencial também foi omitido no código refatorado. Podes escolher usar print instruções em código de produção se reveres a saída do script e quiseres garantir que todo o código corre como esperado. No entanto, quando sabes que não vais rever a saída de um script num terminal, o melhor é remover qualquer código que não tenha propósito.

Teste seu script

Antes de usar scripts em ambientes de produção, por exemplo, integrando-os com pipelines de automação, deves testar se os scripts funcionam como esperado.

Uma forma simples de testar o teu script é executá-lo num terminal. No espaço de trabalho Azure Machine Learning, pode rapidamente executar um script no terminal da instância de computação.

Quando abres um script na página de Cadernos do estúdio Azure Machine Learning, podes escolher guardar e executar o script no terminal.

Em alternativa, pode navegar diretamente para o terminal da instância de computação. Navegue até à página Computar e selecione o Terminal da instância de computação que pretende usar. Pode usar o seguinte comando para executar um script Python chamado train.py:

python train.py

As saídas das print instruções aparecem no terminal. Quaisquer possíveis erros também aparecem no terminal.