Conversión de un cuaderno en un script

Completado

Cuando haya usado cuadernos para la experimentación y el desarrollo, primero deberá convertir un cuaderno en un script. Como alternativa, puede optar por omitir el uso de cuadernos y trabajar solo con scripts. En cualquier caso, hay algunas recomendaciones al crear scripts para tener código listo para producción.

Los scripts son ideales para pruebas y automatización en el entorno de producción. Para crear un script listo para producción, deberá hacer lo siguiente:

  • Quite el código no esencial.
  • Refactorizar el código en funciones.
  • Probar el script en el terminal.

Eliminación de todo el código no esencial

La principal ventaja de usar cuadernos es poder explorar rápidamente los datos. Por ejemplo, puede usar instrucciones print() y df.describe() para explorar los datos y las variables. Al crear un script que se usará para la automatización, quiere evitar incluir código escrito para fines exploratorios.

Por lo tanto, lo primero que debe hacer para convertir el código en código de producción es quitar el código no esencial. Especialmente cuando ejecute el código con regularidad, querrá evitar ejecutar todo lo no esencial para reducir el costo y el tiempo de proceso.

Refactorización del código en funciones

Al usar código en procesos empresariales, quiere que el código sea fácil de leer para que cualquier usuario pueda mantenerlo. Un enfoque común para facilitar la lectura y prueba del código es usar funciones.

Por ejemplo, puede haber usado el código de ejemplo siguiente en un cuaderno para leer y dividir los datos:

# 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 las funciones también le permiten probar partes del código, puede que prefiera crear varias funciones más pequeñas, en lugar de una función grande. Si desea probar una parte del código, puede optar por probar solo una pequeña parte y evitar ejecutar más código del necesario.

Puede refactorizar el código que se muestra en el ejemplo en dos funciones:

  • Lectura de los datos
  • División de los datos

Un ejemplo de código refactorizado puede ser el siguiente:

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

Nota:

Es posible que haya observado que el código no esencial también se omitió en el código refactorizado. Puede optar por usar instrucciones print en el código de producción si va a revisar la salida del script y desea asegurarse de que todo el código se ha ejecutado según lo previsto. Pero cuando sabe que no va a revisar la salida de un script en un terminal, es mejor quitar cualquier código que no tenga ningún propósito.

Prueba del script

Antes de usar scripts en entornos de producción, por ejemplo, mediante la integración con canalizaciones de automatización, querrá probar si los scripts funcionan según lo previsto.

Una manera sencilla de probar el script es ejecutarlo en un terminal. En el área de trabajo de Azure Machine Learning, puede ejecutar rápidamente un script en el terminal de la instancia de proceso.

Al abrir un script en la página Cuadernos del Estudio de Azure Machine Learning, puede elegir save and run the script in the terminal (guardar y ejecutar el script en el terminal).

Como alternativa, puede navegar directamente al terminal de la instancia de proceso. Vaya a la página Proceso y seleccione el Terminal de la instancia de proceso que desea usar. Puede usar el siguiente comando para ejecutar un script de Python denominado train.py:

python train.py

Las salidas de las instrucciones print se mostrarán en el terminal. Los posibles errores también aparecerán en el terminal.