Logotipo de Zephyrnet

¡Salvando el Titanic usando Azure AutoML!

Fecha:

Este artículo fue publicado como parte del Blogatón de ciencia de datos.

AutoML de Azure
Fuente: pixabay.com

Introducción

Los modelos de aprendizaje automático de última generación y las máquinas con inteligencia artificial están hechos de procesos complejos como el ajuste de hiperparámetros y la elección de modelos que brinden una mayor precisión y las métricas que gobiernan este comportamiento.

Para lograr este resultado manualmente, muchos

Hay muchos tipos de algoritmos de aprendizaje automático que puede usar para entrenar un modelo y, la mayoría de las veces, se vuelve cada vez más difícil y complejo elegir el algoritmo más efectivo para sus datos y requisitos de predicción. Además, realizamos muchos pasos de preprocesamiento que nos ayudan a limpiar los datos y prepararlos para los modelos de ML, como la imputación de características faltantes, la eliminación de los valores de Nan y otros.

En la búsqueda por encontrar el mejor modelo para nuestros requisitos, jugamos con combinaciones de algoritmos y transformaciones de preprocesamiento, que requieren mucho tiempo.

Arquitectura de soluciones

Tratemos de implementar esto.

Arquitectura AutoML
No te preocupes, incluso yo no tengo idea de qué significan la mitad de estos términos en el diagrama 😛
Fuente: Microsoft Learn

Solución AutoML

¿Qué estamos esperando? Empecemos. 

Ahora, pasé mucho tiempo descubriendo el modelo perfecto para mi proyecto, ajustando los hiperparámetros para obtener una mayor precisión y créanme, se vuelve agotador. Con la ayuda de Azure Machine Learning, automatizamos la comparación de modelos entrenados con diferentes algoritmos y opciones de preprocesamiento.

Ahora aquí está la sorpresa impactante! Podemos usar la interfaz visual para interactuar con el estudio en línea o los SDK disponibles para crear personalizaciones personalizadas, y viene en su lenguaje favorito, Python. La única diferencia entre estos dos métodos es que SDK le brinda un mayor control sobre la configuración del experimento de aprendizaje automático automatizado. Aún así, la interfaz visual es más fácil de usar.

azur

Fuente: Securecloudaas

Exploraremos el conjunto de datos titánico y comprenderemos cómo se automatiza todo el proceso de aprendizaje automático. Antes de continuar, veamos qué es AutoML. Este ejercicio de AutoML lo guiará sobre cómo usar su suscripción de Azure y Azure Machine Learning Studio para probar varias técnicas de preprocesamiento y algoritmos de entrenamiento de modelos en paralelo automáticamente.

Aquí exploramos el poder de la computación en la nube para encontrar el modelo ML de mejor rendimiento para nuestros datos. El ML automatizado nos ayuda a entrenar modelos sin conocimientos profundos de ciencia de datos o programación. Para las personas que tienen algo de experiencia en ciencia de datos y programación, proporciona una forma de ahorrar tiempo y recursos al automatizar de manera eficiente el proceso de selección de algoritmos y ajuste de hiperparámetros.

Comencemos por crear un recurso de aprendizaje automático en nuestra nube de Azure. He nombrado mi espacio de blog de recursos porque esto es para el blog, pero siéntete libre de nombrarlo como quieras. He mantenido los valores predeterminados y no he realizado ningún cambio.

AutoML

Después de crear el grupo de recursos, debe obtener una página como la que se muestra arriba, haga clic en la URL web de Studio que lo llevará a Machine Learning Studio o puede visitar esta página e inicie sesión con sus credenciales.

AutoML

Así es como se ve el estudio y, como podemos ver, los desarrolladores de todo el mundo pueden usar y están usando muchas características sorprendentes. En la columna de la izquierda, desplácese hacia abajo y haga clic en calcular. Aquí crearemos nuestra instancia de cómputo y clúster de cómputo. Mantenemos los valores predeterminados, pero puede seleccionar la máquina virtual de acuerdo con su suscripción. He seleccionado Standard_DS11_v2 (2 núcleos, 14 GB de RAM, 28 GB de disco), pero puede elegir libremente de la lista.

AutoML

Fragmentos de código

¡Que comience la codificación! 

En Compute Instance, haga clic en la opción Jupyter, que abre Jupyter Notebook (asegúrese de hacer clic en Jupyter y no en Jupyter Lab). A continuación, crearemos un nuevo bloc de notas, y he llamado a mi bloc de notas Automated ML. Repasemos el cuaderno una celda de código a la vez. Además de la versión más reciente de los paquetes azureml-sdk y azureml-widgets, necesitamos el paquete azureml-train-automl para ejecutar el código en este cuaderno.

!pip mostrar azureml-tren-automl

Con el SDK requerido instalado, podemos conectarnos a nuestro espacio de trabajo.

import azureml.core from azureml.core import Workspace ws = Workspace.from_config() print("Listo para usar Azure ML {} para trabajar con {}".format(azureml.core.VERSION, ws.name))

Necesitamos cargar los datos de entrenamiento en nuestro cuaderno. El siguiente código parece complicado, pero busca en el almacén de datos un conjunto de datos del Titanic. Si no está presente, cargue los datos y guárdelos en el almacén de datos.

Recopilación de datos de AutoML

from azureml.core import Dataset default_ds = ws.get_default_datastore() si 'Titanic dataset' no está en ws.datasets: default_ds.upload_files(files=['./Titanic.csv'], # Cargue el archivo csv de Titanic target_path='Titanic -data/', # Colóquelo en la ruta de una carpeta en el almacén de datos overwrite=True, # Reemplace los archivos existentes del mismo nombre show_progress=True) #Cree un conjunto de datos tabular desde la ruta en el almacén de datos tab_data_set = Dataset.Tabular.from_delimited_files( path=(default_ds, 'Titanic-data/*.csv')) # Registrar el conjunto de datos tabulares try: tab_data_set = tab_data_set.register(workspace=ws, name='Titanic dataset', description='Titanic data', tags = { 'format':'CSV'}, create_new_version=True) print('Conjunto de datos registrado.') excepto Excepción como ex: print(ex) else: print('Conjunto de datos ya registrado.') # Dividir el conjunto de datos en subconjuntos de entrenamiento y validación diabetes_ds = ws.datasets.get("Conjunto de datos Titanic") train_ds, test_ds = diabetes_ds.random_split(porcentaje=0.7, seed=123) print("¡Datos listos!")

¿Recuerdas el clúster que creamos antes? Bueno, conectémonos aquí.

from azureml.core.compute import ComputeTarget training_cluster = ComputeTarget(workspace=ws, name="blog-cluster")

Uno de los ajustes de configuración más importantes es la métrica con la que se debe evaluar el rendimiento del modelo. Puede recuperar una lista de las métricas que se calculan mediante el aprendizaje automático automatizado para un tipo particular de tarea de modelo (clasificación o regresión) como esta:

importar azureml.train.automl.utilities como automl_utils para la métrica en automl_utils.get_primary_metrics('clasificación'): print(metric)

Configuración de AutoML

Una vez que haya decidido la métrica que desea optimizar (en este ejemplo, AUC_weighted), puede configurar la ejecución de aprendizaje automático automatizado. Dado que este es un conjunto de datos simple, mantuve el número de iteraciones en 4. Dado que este es un conjunto de datos simple, mantuve el número de iteraciones en 4.

from azureml.train.automl import AutoMLConfig automl_config = AutoMLConfig(name='Experimento de ML automatizado', task='classification', compute_target=training_cluster, training_data = train_ds, validation_data = test_ds, label_column_name='Sobrevivido', iteraciones=4, métrica_primaria = 'AUC_weighted', max_concurrent_iterations=2, featurization='auto' ) print("Listo para la ejecución de Auto ML")

Con todas las configuraciones establecidas, ahora estamos listos para ejecutar nuestro experimento. Configuré show_output = False, pero puede configurarlo en True para ver el modelo que se ejecuta en tiempo real.

from azureml.core.experiment import Experimento de azureml.widgets import RunDetails print('Enviando experimento de Auto ML...') automl_experiment = Experiment(ws, 'Titanic-automl-sdk') automl_run = automl_experiment.submit(automl_config) RunDetails( automl_run).show() automl_run.wait_for_completion(show_output=False)

Salida

Podemos recuperar el mejor desempeño como se hace a continuación, y también podemos ver la transformación de mejor ejecución y las métricas de mejor ejecución. El código no está disponible en el cuaderno, pero puede probarlo. Compartiré el código aquí.

print('Transformaciones nBest Run:') para paso en modelo_equipado.pasos_nombrados: print(paso) print('Métricas nBest Run:') best_run_metrics = best_run.get_metrics() for metric_name in best_run_metrics: metric = best_run_metrics[metric_name] print(metric_name , métrico)

Finalmente, una vez que haya encontrado el modelo con mejor rendimiento, puede registrarlo.

Dificultades enfrentadas

No fue un juego de niños en absoluto

azure automático
Fuente: https://www.sage.com/en-us/blog/business-growth-challenges/

Inicialmente, cuando probé AutoML en mi sistema local, tuve algunos problemas para conectar mi suscripción de Azure con Visual Studio Code. No pude encontrar una solución, así que pasé a Azure Cloud para crear mi cuaderno de Python. Resultó ser perfecto ya que eliminó la necesidad de crear un archivo JSON que necesitaba los puntos finales y la clave de suscripción.

Los resultados de algunas de las celdas de código eran un poco difíciles de entender. El resultado puede parecer un galimatías para alguien con poco o ningún conocimiento sobre este dominio. Por ejemplo, cuando enviamos el experimento de AutoML y se ejecuta, obtenemos una extensa lista de valores, incluidos los modelos utilizados y las dependencias y sus versiones. Tuve que pasar un tiempo averiguando y entendiendo la salida.

Conclusión

¿Cómo te beneficia esto?

Todo lo que Azure AutoML hace es ayudar a los científicos y desarrolladores de datos a crear, implementar y administrar modelos de alta calidad más rápido y con 100 % de confianza. Con operaciones tan grandes y complejas, las industrias necesitan una solución que pueda entrar en producción lo antes posible y de manera confiable al mismo tiempo.

  1. Interoperabilidad de código abierto
  2. rápido entrenamiento e implementación de modelos
  3. herramientas integradas
Fuente: https://www.creative.onl/payrollindex/employee-benefits-management-platforms/

Todas estas características hacen posible cumplir con los estándares de la industria. Esta herramienta ayuda a aumentar la productividad con la capacidad de estudio, una experiencia de desarrollo que admite todo el proceso de aprendizaje automático, desde la creación hasta la capacitación y la implementación de modelos.

Diferentes modelos requieren diferentes formatos de datos de entrada; eliminamos este problema mediante el desarrollo de modelos precisos con aprendizaje automático automatizado para modelos de imágenes, textuales o tabulares mediante el uso de ingeniería de características y el ajuste de los hiperparámetros. ¿No prefiere los cuadernos Jupyter? No te preocupes. Podemos usar Visual Studio Code para pasar sin problemas del entrenamiento local a la nube y escalar hacia arriba o hacia abajo con potentes clústeres de CPU y GPU basados ​​en la nube.

Para resumir, aquí hay algunos puntos clave por los que podría preferir AutoML al flujo de trabajo tradicional:

Podemos evaluar modelos de aprendizaje automático con flujos de trabajo reproducibles y automatizados para verificar la

  1. equidad del modelo,
  2. explicabilidad,
  3. análisis de errores,
  4. análisis causal,
  5. rendimiento del modelo,
  6. análisis exploratorio de datos,
  7. Contextualice métricas de IA responsables para audiencias técnicas y no técnicas para involucrar a las partes interesadas y agilizar la revisión de cumplimiento.

Confía en mí, algunas de las líneas en el tomó algún tiempo y esfuerzo para entender. No bajes el ánimo; tienes que empujarlo.

Así que eso es todo por mi parte. ¡Feliz codificación!
-Manav Mandal (embajador estudiantil de Microsoft Learn)
Etiqueta LinkedIn
Instagram

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img