Conversión de un cuaderno en un script
Cuando use cuadernos para la experimentación y el desarrollo, primero debe 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 probar y automatizar en el entorno de producción. Para crear un script listo para producción, debe:
- Quite el código no esencial.
- Refactorice el código en funciones.
- Pruebe 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 las instrucciones de print() y df.describe() para explorar sus datos y variables. Al crear un script que se usa para la automatización, quiere evitar incluir código escrito con 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 se ejecuta el código con regularidad, se recomienda evitar la ejecución de cualquier cosa no esencial para reducir el costo y el tiempo de proceso.
Refactoriza tu 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 la prueba del código es usar funciones.
Por ejemplo, imagine que usó 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 funciones también le permiten probar partes del código, es posible 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 de lo necesario.
Puede refactorizar el código que se muestra en el ejemplo en dos funciones:
- Leer los datos
- División de los datos
Un ejemplo de código refactorizado puede 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
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 print instrucciones en el código de producción si revisa la salida del script y desea asegurarse de que todo el código se ejecutó según lo previsto. Sin embargo, cuando sepa 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, quiere probar si los scripts funcionan según lo previsto.
Una manera sencilla de probar el script es ejecutar el script 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 de Azure Machine Learning Studio, puede elegir 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 sentencias print se muestran en el terminal. Los posibles errores también aparecen en el terminal.