Crea, ejecuta y gestiona aplicaciones con Red Hat OpenShift en IBM Cloud. | 22 al 24 de Junio Inscríbete ya

Crea modelos utilizando Jupyter Notebooks en IBM Watson Studio

Este tutorial forma parte de la ruta de aprendizaje de Introducción a Watson Studio.

Introducción

Este tutorial explica cómo configurar y ejecutar Jupyter Notebooks desde IBM® Watson™ Studio. Comenzamos con un conjunto de datos para la rotación de clientes que está disponible en Kaggle. El conjunto de datos tiene una Jupyter Notebook de análisis de rotación de clientes correspondiente (desarrollado originalmente por Sandip Datta), que muestra los pasos arquetípicos para desarrollar un modelo de aprendizaje automático siguiendo los siguientes pasos esenciales:

  1. Importa el conjunto de datos.

  2. Analiza los datos creando visualizaciones e inspeccionando parámetros estadísticos básicos (por ejemplo, variación media o estándar).

  3. Prepara los datos para el desarrollo del modelo de máquina (por ejemplo, transformando características categóricas en características numéricas y normalizando los datos).

  4. Divide los datos en datos de prueba y capacitación para usarlos en la capacitación y validación del modelo.

  5. Capacita el modelo mediante el uso de varios algoritmos de aprendizaje automático para la clasificación binaria.

  6. Evalúa la exactitud y precisión de los distintos modelos utilizando una matriz de confusión.

  7. Selecciona el modelo que mejor se ajuste al conjunto de datos dado y analiza qué características tienen un impacto bajo y significativo en el resultado de la predicción.

  8. Utiliza Watson Machine Learning para guardar y desplegar el modelo de forma que se pueda acceder a él fuera del notebook.

El notebook se define en términos de 35 celdas de Python y requiere familiaridad con las principales bibliotecas utilizadas: Python scikit-learn para aprendizaje automático, Python numpy para computación científica, Python pandas para administrar y analizar estructuras de datos, y matplotlib y seaborn para la visualización de datos.

Requisitos previos

Para completar los tutoriales en esta ruta de aprendizaje, es necesario una cuenta de IBM Cloud. Es posible obtener una cuenta de prueba gratuita, que te brinde acceso a IBM Cloud, IBM Watson Studio y Servicio IBM Watson Machine Learning.

Tiempo estimado

Te tomará aproximadamente 30 minutos completar este tutorial.

Pasos

Los pasos para configurar tu entorno para la ruta de aprendizaje se explican en el tutorial Visualización, preparación y transformación de datos utilizando IBM Watson Studio. Estos pasos muestran cómo:

  1. Crear un servicio IBM Cloud Object Storage.
  2. Crea un proyecto de IBM Watson Studio.
  3. Suministrar servicios de IBM Cloud.
  4. Cargar el conjunto de datos.

Es necesario completar estos pasos antes de continuar con la ruta de aprendizaje. Si has terminado de configurar tu entorno, continúa con el siguiente paso, creando el notebook.

NOTA: El servicio Watson Machine Learning es necesario para ejecutar el notebook.

Crea el notebook

Crea un Jupyter Notebook para predecir la rotación de clientes y cámbialo para usar el conjunto de datos que has subido al proyecto.

  1. En la pestaña Activo, haz clic en Agregar al proyecto.

    add-to-project

  2. Selecciona el tipo de activo Notebook.

  3. En la página Nuevo notebook, configura el portátil de la siguiente manera:

    1. Selecciona la pestaña Desde URL:

      create-notebook

    2. Ingresa el nombre del notebook (por ejemplo, ‘customer-churn-kaggle’).

    3. Selecciona el sistema de tiempo de ejecución Python 3.6

    4. Ingresa la siguiente URL para el notebook:

      https://github.com/IBM/watson-studio-learning-path-assets/blob/master/notebooks/customer-churn-kaggle.ipynb
      
    5. Haz clic en Crear notebook. Esto inicia la carga y ejecución del portátil dentro de IBM Watson Studio.

Ejecuta el notebook

Debe mostrarse la página del notebook.

Si el notebook no está abierto actualmente, es posible iniciarlo haciendo clic en el ícono Editar que se muestra junto a el notebook en la página de Activos del proyecto:

start-notebook

NOTA: Si tienes algún problema al completar los pasos para ejecutar el notebook, hay un notebook completo con salida disponible para referencia en la siguiente URL: https://github.com/IBM/watson-studio-learning-path-assets/blob/master/examples/example-customer-churn.ipynb.

Desde la página del notebook, realiza los siguientes cambios:

  1. Desplázate hacia abajo hasta la tercera celda y selecciona la línea vacía en el medio de la celda. Si aún no está abierto, haz clic en el ícono de datos 1001 en la parte superior de la página para abrir el subpanel Archivos.

    insert-pandas-dataframe

  2. En la parte derecha de la página, selecciona el conjunto de datos Rotación de Clientes. Haz clic en insertar en el código y selecciona Insertar DataFrame de pandas. Esto agrega código a la celda de datos para leer el conjunto de datos en un DataFrame de pandas.

    notebook-with-dataframe

  3. Cambia el nombre de la variable generada df_data_1 para el marco de datos a df, que se usa en el resto del notebook. Cuando se muestra en el notebook, el marco de datos aparece de la siguiente manera:

    data-set

  4. Selecciona Archivo > Guardar para guardar el notebook.

Ejecuta las celdas del notebook una por una y observa el efecto y cómo se define el notebook.

Antecedentes sobre la ejecución de notebooks

Cuando se ejecuta un notebook, cada celda de código del notebook se ejecuta, en orden, de arriba a abajo.

Cada célula de código es seleccionable y está precedida por una etiqueta en el margen izquierdo. El formato de la etiqueta es In [x]:. Dependiendo del estado del notebook, la x puede ser:

  • Un espacio en blanco, lo que indica que la celda no se ha ejecutado nunca
  • Un número, que representa el orden relativo en el que se ejecutó este paso de código
  • Un *, que indica que la celda se está ejecutando

Hay varias formas de ejecutar las celdas de código en tu notebook:

  • Una celda a la vez. Selecciona la celda y a continuación oprime el botón Play en la barra de herramientas.

  • Modo de lote, en orden secuencial. Desde la barra de menú Celda hay varias opciones disponibles. Por ejemplo, es posible ejecutar Run All en tu notebook, o es posible ejecutar Run All Below, que comenzará a ejecutar desde la primera celda bajo la celda actualmente seleccionada y posteriormente continuar ejecutando todas las celdas que siguen.

  • A un horario programado. Oprima el botón Programar que se encuentra en la sección superior derecha de la página de tu notebook. Aquí es posible programar tu notebook para ser ejecutado una vez en algún momento en el futuro, o varias veces en el intervalo especificado.

Comprensión y visualización de datos

Durante la fase de comprensión de datos, se recopila el conjunto inicial de datos. Luego, la fase continúa con actividades que te permiten familiarizarte con los datos, identificar problemas de calidad de los datos y descubrir los primeros conocimientos sobre los datos. En el Jupyter Notebook, estas actividades se realizan utilizando pandas y las funciones matplotlib incorporadas de pandas. La función describe de pandas se usa para generar estadísticas descriptivas de las características, y la función plot se usa para generar diagramas que muestran la distribución de los datos.

data-understanding

Preparación de datos

La fase de preparación de datos cubre todas las actividades que se necesitan para construir el conjunto de datos final que se incorporará al servicio de aprendizaje automático. Es probable que las tareas de preparación de datos se realicen varias veces y no en ningún orden prescrito. Las tareas incluyen la selección de tablas, registros y atributos, así como la transformación y limpieza de datos para las herramientas de elaboración de modelos. En el Jupyter Notebook, esto implica convertir características categóricas en numéricas, normalizar las características y eliminar columnas que no son relevantes para la predicción (como el número de teléfono del cliente). La siguiente imagen muestra un subconjunto de las operaciones.

data-preparation

Elaboración de modelo y evaluación

En la fase de elaboración de modelo, se seleccionan y aplican diversas técnicas de modelo y se calibran sus parámetros para lograr una predicción óptima. Por lo general, existen varias técnicas que se pueden aplicar y algunas técnicas tienen requisitos específicos con respecto a la forma de los datos. Por lo tanto, a menudo es necesario volver a la fase de preparación de datos. Sin embargo, en la fase de evaluación del modelo, el objetivo es desarrollar un modelo que tenga alta calidad desde la perspectiva del análisis de datos. Antes de proceder al despliegue final del modelo, es importante evaluarlo a fondo y revisar los pasos que se ejecutan para crearlo para asegurarse de que el modelo logre adecuadamente los objetivos comerciales.

En el Jupyter Notebook, esto implicó dividir el conjunto de datos en conjuntos de datos de entrenamiento y prueba (usando validación cruzada estratificada) y luego capacitar varios modelos usando algoritmos de clasificación distintos como GradientBoostingClassifier, máquinas de vectores de soporte, random forest y K-Nearest Neighbors.

model-training

Siguiendo este paso, continuamos imprimiendo la matriz de confusión para cada algoritmo para tener una visión más profunda de la exactitud y precisión que ofrecen los modelos.

model-evaluation

Despliegue de tu modelo en Watson Machine Learning

En la última sección del notebook, guardamos y desplegamos el modelo en el servicio Watson Machine Learning. Para acceder al servicio, necesitamos cortar y pegar las credenciales de aprendizaje automático en esta celda del notebook:

wml-creds

Una vez que el modelo se guarda y se despliega en Watson Machine Learning, podemos acceder a él de varias formas.

En el Jupyter Notebook, podemos pasar datos al punto final de puntuación del modelo para probarlo.

score-model

Si volvemos a la consola de Watson Studio, podemos ver en la pestaña Activos que el nuevo modelo está listado en la sección Modelos.

assets-model

Si hacemos clic en la pestaña Despliegues, podemos ver que el modelo se ha desplegado correctamente.

deploy-list

Haz clic en el despliegue para obtener más detalles. Si haces clic en la pestaña Implementación, verás el punto final de puntuación. En la sección Fragmentos de código, es posible ver ejemplos de cómo acceder al extremo de puntuación mediante programación.

deploy-implementation

En la pestaña Prueba, podemos pasar un objeto JSON de carga útil de puntuación para puntuar el modelo (similar a lo que hicimos en el notebook). Después de proporcionar los datos, presiona Predecir para calificar el modelo.

deploy-test

Notebook de modelo de SPSS

Ahora que has aprendido a crear y ejecutar un Jupyter Notebook en Watson Studio, es posible volver a visitar la sección Scoring machine learning models using the API ‘Puntuación de modelos de aprendizaje automático utilizando la API’ en el tutorial flujos de SPSS Modeler. Tiene instrucciones para ejecutar un notebook que accede y puntúa tu modelo de SPSS que desplegaste en Watson Studio.

Conclusión

Este tutorial cubrió los conceptos básicos para ejecutar un Jupyter Notebook en Watson Studio, que incluye:

  • Crear un proyecto
  • Suministrar y asignar servicios al proyecto.
  • Agregar activos como conjuntos de datos al proyecto
  • Importar Jupyter Notebooks al proyecto
  • Cargar y ejecutar el notebook

El propósito del notebook es crear un modelo de aprendizaje automático para predecir la rotación de clientes utilizando un Jupyter Notebook. Otros tutoriales en esta ruta de aprendizaje tratan formas alternativas no programáticas de lograr el mismo objetivo, utilizando herramientas y funciones integradas en Watson Studio.