¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Creación de flujos de SPSS Modeler en IBM Watson Studio

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

Introducción

Este tutorial explica cómo crear y evaluar gráficamente modelos de aprendizaje automático mediante la función de flujo de SPSS Modeler en IBM® Watson™ Studio. Los flujos de IBM Watson SPSS Modeler en Watson Studio proporcionan un entorno interactivo para desarrollar rápidamente canales de aprendizaje automático que fluyen datos desde el ingreso a la transformación así como a el desarrollo y evaluación de modelos, sin necesidad de código. Este tutorial presenta los componentes de SPSS Modeler y explica cómo es posible utilizarlos para crear, probar, evaluar y desplegar modelos.

Al igual que con los otros tutoriales en esta ruta de aprendizaje, usamos un conjunto de datos de rotación de clientes que está disponible en Kaggle.

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 da acceso a IBM Cloud, IBM Watson Studio y Servicio IBM Watson Machine Learning.

Tiempo estimado

Es posible que te lleve aproximadamente 60 minutos para completar este tutorial.

Pasos

La función de flujo de SPSS Modeler también está disponible en IBM Watson Studio Desktop. Los mismos pasos para crear un flujo de SPSS Modeler que se mencionan a continuación para Watson Studio en IBM Cloud también se aplican a Watson Studio Desktop. Para pasar a Watson Studio Desktop, consulta Flujo de SPSS Modeler usando Watson Studio Desktop.

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. Crear 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 un flujo de modelo.

Crea flujo de modelo

Para crear un flujo de aprendizaje automático inicial:

  1. En la página Activos, haz clic en Agregar al proyecto.

  2. En la página Elegir tipo de activo, selecciona Flujo de Modeler.

  3. En la página Modeler, selecciona la pestaña ‘Desde archivo’.

    create-flow

  4. Descarga el flujo de modelo que se denomina ‘customer-churn-flow.str’ desde https://github.com/IBM/watson-studio-learning-path-assets/data.

  5. Arrastra el archivo de flujo del modelador descargado al área de carga. Esto también establece el nombre del flujo.

  6. Cambia el nombre y proporciona una descripción para el flujo de aprendizaje automático (opcional).

  7. Haz clic en Crear. Esto abre el Editor de flujo que se puede usar para crear un flujo de aprendizaje automático.

Ahora has importado un flujo inicial que exploraremos en el resto de este tutorial.

initial-flow

En el menú desplegable Elaboración de modelo, es posible ver las diversas técnicas de modelado compatibles. El primero es Auto Classifier, que prueba varias técnicas y luego presenta los resultados de la mejor.

El flujo principal en sí mismo define un canal que consta de varios pasos:

  • Un nodo Activo de Datos para importar el conjunto de datos
  • Un nodo Tipo para definir metadatos para las características, incluida una selección de los atributos de destino para la clasificación
  • Un nodo Preparación Automática de Datos para preparar los datos para la elaboración de modelo
  • Un nodo Partición para dividir los datos en un conjunto de capacitación y un conjunto de prueba
  • Un nodo Clasificador Automático llamado ‘rotación’ para crear y evaluar el modelo

Se han asociado nodos adicionales con el canal principal para ver la entrada y salida. Estos son:

  • Un nodo de salida de cuadro llamado ‘Cuadro de entrada’ para obtener una vista previa de los datos de entrada
  • Un nodo Auditoría de Datos llamado ’21 campos’ (nombre predeterminado) para auditar la calidad del conjunto de datos de entrada (mínimo, máximo, estándar y desviación)
  • Un nodo Evaluación para evaluar el modelo generado
  • Un nodo de salida de cuadro llamado ‘Cuadro de resultados’ para obtener una vista previa de los resultados de la predicción de la prueba

Se pueden ver otros tipos de entrada y salida seleccionando el menú desplegable Salidas.

Asigna activos de datos y ejecuta el flujo

Para ejecutar el flujo, primero es necesario conectar el flujo con el conjunto apropiado de datos de prueba disponibles en tu proyecto.

  1. Selecciona los tres puntos del nodo Activo de Datos a la izquierda del flujo (el nodo de entrada).

  2. Selecciona el comando Abrir del menú. Esto muestra los atributos del nodo en la parte derecha de la página.

    data-asset-properties

  3. Haz clic en Cambiar activo de datos para cambiar el archivo de entrada.

  4. En la página siguiente, selecciona tu archivo .CSV que contiene la rotación de cliente y haz clic en Aceptar.

  5. Haz clic en Guardar.

  6. Haz clic en Ejecutar (la punta de la flecha) en la barra de herramientas para ejecutar el flujo.

    run-command

La ejecución del flujo crea una serie de salidas o resultados que se pueden inspeccionar con más detalle.

run-and-output

Comprender los datos

Ahora que has ejecutado el flujo, observa más de cerca los datos.

  1. Selecciona el nodo Tabla de entrada en la parte superior del diagrama de flujo.

  2. Selecciona los tres puntos en la esquina superior derecha y recurre al comando Perfil del menú emergente.

    preview-input-data-option

La última interacción puede volver a ejecutar parte del flujo, pero tiene la ventaja de que la página proporciona una pestaña de Perfil para crear perfiles de los datos y una pestaña de Visualización para crear paneles de instrumentos.

preview-data-set

Ahora, veamos más de cerca a cada una de las columnas de datos, como los valores de su desviación mínima, máxima, media y estándar:

  1. Haz clic en un nivel hacia atrás en la lista de bread crumb en la parte superior de la página para volver a su flujo.

    bread-crumb

  2. Selecciona el comando Ver resultados y versiones en la parte superior derecha de la barra de herramientas.

  3. Selecciona la pestaña Salidas.

    outputs-tab

  4. Haz doble clic en la salida del nodo «auditoría de datos» denominado «21 campos». Alternativamente, selecciona los tres puntos asociados con la salida y selecciona Abrir en el menú emergente.

    21-fields-option

Esto te brinda una descripción general como la de la siguiente imagen.

21-fields-output

Para cada función, la descripción general muestra la distribución en forma gráfica y si la característica es categórica o continua. Para las funciones numéricas, también se muestra el cálculo del mínimo, máximo, media, desviación estándar y asimetría. En la columna denominada Válido, es posible ver que hay 3333 valores válidos, lo que significa que no faltan valores para las características enumeradas y no es necesario preocuparse más con este aspecto del preprocesamiento para filtrar o transformar las columnas con valores faltantes.

Preparación de datos

Es posible cambiar la evaluación inicial de las características realizadas por la importación utilizando el nodo Tipo, que es el siguiente nodo del canal. Para lograr esto:

  1. Vuelve al Editor de flujo seleccionando ‘flujo de rotación de cliente’ en la barra de herramientas.

  2. Selecciona el nodo Tipo.

  3. Selecciona el comando Abrir del menú emergente.

Esto proporciona una tabla que muestra las características (como campos), su tipo (por ejemplo, continua o marca) y función, junto con otras.

type-node-output

La medida se puede cambiar si es necesario usando este nodo y también es posible especificar el rol de una característica. En este caso, el rol de la función de rotación (que es un indicador con valores de verdadero y falso) se ha cambiado a Destino. La columna Verificar puede brindarte más información sobre los valores del campo.

Haz clic en Cancelar para cerrar el editor de propiedades del nodo Tipo.

El siguiente nodo del canal es el nodo Preparación Automática de Datos. Este nodo transforma automáticamente los datos, como convertir campos categóricos en numéricos. Para ver sus resultados:

  1. Selecciona el nodo Preparación Automática de Datos en el editor de flujo.

  2. Selecciona Abrir en el menú emergente.

Este nodo ofrece una multitud de configuraciones, por ejemplo, para definir el objetivo de la transformación (optimizar para velocidad o precisión).

auto-data-prep

La imagen anterior muestra que la transformación se ha configurado para excluir campos con demasiados valores perdidos (el límite es 50) y para excluir campos con demasiadas categorías únicas. Piensa que esto último se aplica a los números de teléfono y no te preocupes por ellos.

El siguiente nodo del canal es el nodo Partición, que divide el conjunto de datos en un conjunto de capacitación y un conjunto de prueba. Para el nodo Partición actual, se ha utilizado una división 80-20.

partition-node

Capacitando el modelo

El siguiente nodo del flujo de SPSS Modeler es el nodo Clasificador automático denominado «rotación». Este nodo entrena el modelo en función de varias opciones de desarrollo, entre ellos cómo clasificar y descartar los modelos generados (utilizando el límite de precisión).

auto-classifier-node

En caso de Abrir el nodo y seleccionar la opción OPCIONES DE DESAROLLO del menú desplegable, verás que la propiedad Número de modelos a usar se establece en 3, que es el valor predeterminado. Siéntete libre de cambiarlo a un número más alto y luego haz clic en Guardar para guardar los cambios.

NOTA: Recuerda volver a ejecutar el flujo si cambia alguna configuración de compilación.

Evaluando el modelo

Para obtener más detalles sobre el modelo generado:

  1. Selecciona el ícono del modelo amarillo.

  2. Selecciona Ver modelo en el menú desplegable.

    view-model-option

Esta sección de descripción general te brinda una lista de modelos de clasificadores y su precisión. En este ejemplo, configuré Número de modelos a usar en 10.

model-evaluation

A medida que navegas por esta sección de descripción general, notarás que la cantidad de opciones y vistas asociadas con cada estimador varía. En algunos casos, se proporciona un hipervínculo para profundizar en más detalles.

Por ejemplo, observa el modelo de árbol ‘C&R’ de bajo rendimiento haciendo clic en el nombre en el cuadro.

En la página siguiente, selecciona el enlace Diagrama de árbol a la izquierda para obtener el diagrama de árbol para el estimador.

Ahora es posible pasar el cursor sobre uno de los nodos o una de las ramas del árbol para obtener información más detallada sobre una decisión tomada en un punto determinado.

tree-diagram

Regresa haciendo clic en la flecha izquierda en la parte superior izquierda de la página. Luego, selecciona el enlace MPL Neural Network para obtener los detalles de ese estimador. Ten en cuenta que hay diferentes opciones que el modelo de árbol.

Haz clic en la pestaña Importancia de la función.

feature-importance

Esto representa gráficamente el desempeño relativo de cada predictor al estimar el modelo.

Haz clic en la pestaña Matriz de confusión.

model-eval-confusion-matrix

La tabla compara lo que se predice con lo que se observa. Los números de predicciones correctas se muestran en las celdas de la diagonal principal.

Si deseas obtener la matriz de confusión para el conjunto de datos completo, es posible agregar un nodo Salida de matriz a la tela.

  1. Regresa al flujo.

  2. Agrega un nodo Matriz desde el menú Salidas.

    matrix-output

  3. Adjunta el nodo de matriz al nodo de salida del modelo especificado.

    add-matrix

    NOTA: Para adjuntar el nuevo nodo, haz clic en la burbuja del lado derecho del nodo de salida del modelo de ‘rotación’ existente y arrastra el conector al nuevo nodo de matriz.

  4. Abre el nodo Matriz.

  5. Coloca el atributo de destino ‘rotación’ en las Filas y la predicción binaria ‘$ XF-churn’ en las Columnas.

    matrix-columns

  6. Para el contenido de la celda, selecciona Tabulaciones cruzadas.

  7. Haz clic en Apariencia y selecciona Recuentos, Porcentaje de fila, Porcentaje de columna e Incluir totales de fila y columna.

    matrix-appearance

  8. Haz clic en Guardar.

  9. Ejecuta el nodo Matriz.

  10. Selecciona Ver resultados y versiones en la esquina superior derecha.

  11. Abre la salida para el nodo Matriz (llamado ‘churn x $ XF-churn’) haciendo doble clic en él.

    confisuion-matrix-pct

Los porcentajes de la celda diagonal principal contienen los valores de recuperación como los porcentajes de fila (100 veces la métrica de proporciones que se usa generalmente) y los valores de precisión como los porcentajes de columna. Las estadísticas F1 y las versiones ponderadas de precisión y recuperación de ambas categorías deberían calcularse manualmente. Los resultados que se muestran son los resultados combinados aplicando los tres algoritmos. Si deseas ver los resultados solo para el Random Forest, regresa al nodo Clasificador automático. Ábrelo y desmarca las casillas de todos los modelos que no sean Random Forest. Luego, vuelve a ejecutar el flujo.

Si solo deseas obtener la matriz de confusión, abre el nodo Salida de la matriz y anula la selección de ‘Porcentaje de fila’ y ‘Porcentaje de columna’ en la sección de apariencia. Luego, repite los pasos 7-11 anteriores.

confusion-matrix

Se puede lograr una forma más gráfica de mostrar la matriz de confusión utilizando visualizaciones de SPSS. Para ello, es necesario seleccionar el nodo de salida de la Tabla de resultados y luego seleccionar la opción Perfil en el menú desplegable.

results-profile

Haz clic en la pestaña Visualizaciones. Luego, haz clic en más opciones (el ícono de flecha doble) para ver los tipos de gráficos disponibles. Selecciona el gráfico Mapa de árbol.

treemap-selector

Establece los valores de Columnas en rotación y $ XF-churn, y selecciona Cuenta en el Resumen.

treemap-isualization

Observa que el canal actual realiza una división simple de datos de prueba y capacitación utilizando el nodo Partición. También es posible utilizar la validación cruzada y la validación cruzada estratificada para lograr un rendimiento del modelo ligeramente mejor, pero a costa de complicar el canal. Consulta el artículo Validación cruzada de k-fold en IBM SPSS Modeler para detalles sobre cómo se puede lograr esto.

Hay dos formas más de ver los resultados de la evaluación.

  1. Vuelve al editor de flujo para el flujo de rotación de clientes.

  2. Selecciona Ver resultados y versión en la barra de herramientas superior.

  3. Haz doble clic en la salida llamada Evaluación de [$XF-churn]: Gains para seleccionarla.

    eval-xf-churn-gains

Aparecen las salidas generadas para el modelo.

model-gains

Guardar e desplegar el modelo

Nota: El despliegue de la función de modelo no forma parte de Watson Studio Desktop (Suscripción). Sin embargo, es posible descargar el flujo de flujo del modelo SPSS desde Watson Studio Desktop y luego importarlo a Watson Studio en IBM Cloud. Es posible ejecutarlo nuevamente y crear el modelo que es posible desplegar mediante los siguientes pasos.

Después de crear, capacitar y evaluar un modelo, es posible guardarlo y desplegarlo.

Para guardar el modelo SPSS:

  1. Vuelve al editor de flujo para el flujo del modelo.

  2. Selecciona el nodo Resultado previsto y abre su menú emergente seleccionando los 3 puntos en la esquina superior derecha.

  3. Selecciona Guardar rama como modelo en el menú emergente.

    save-branch-as-model

    Se abre una nueva ventana. save-model

  4. Escribe un nombre de modelo (por ejemplo, ‘customer-churn-spss-model’).

  5. Haz clic en Guardar.

    El modelo se guarda en el proyecto actual.

El modelo debería aparecer ahora en la sección Modelos de la pestaña Activos del proyecto.

model-list

Para desplegar el modelo SPSS:

  1. Haz clic en el modelo guardado en la lista Modelos del proyecto.

  2. Selecciona la pestaña Despliegues.

  3. Haz clic en Agregar despliegue para crear un nuevo despliegue de servicio web llamada ‘customer-churn-spss-model-web-service’.

  4. Establece el tipo de despliegue en Servicio web.

  5. Haz clic en Guardar.

    model-deploy-success

  6. Espera hasta que el estado de despliegue sea DESPLIEGUE_ÉXITO.

Probando el modelo

Ahora, el modelo está desplegado y se puede usar para la predicción. Sin embargo, antes de usarlo en un entorno de producción, podría valer la pena probarlo con datos reales. Es posible hacerlo de forma interactiva o mediante programación utilizando la API para Servicio IBM Machine Learning. Por ahora, lo probamos de forma interactiva.

La interfaz de usuario ofrece dos opciones para probar la predicción: ingresando los valores uno por uno en campos distintos (uno para cada función) o especificando los valores de la función usando un objeto JSON. Usamos la segunda opción porque es la más conveniente cuando las pruebas se realizan más de una vez (que suele ser el caso) y cuando se necesita un gran conjunto de valores de funciones. Para obtener un conjunto de datos de prueba predefinido:

  1. Descarga los datos de prueba de GitHub en el archivo customer-churn-test-data.txt.

  2. Abre el archivo y copia el valor.

Observa que el objeto JSON define primero los nombres de los campos, seguidos de una secuencia de observaciones a predecir, cada una en forma de secuencia:

{"input_data":[{"fields": ["state", "account length", "area code", "phone number", "international plan", "voice mail plan", "number vmail messages", "total day minutes", "total day calls", "total day charge", "total eve minutes", "total eve calls", "total eve charge", "total night minutes", "total night calls", "total night charge", "total intl minutes", "total intl calls", "total intl charge", "customer service calls"], "values": [["NY",161,415,"351-7269","no","no",0,332.9,67,56.59,317.8,97,27.01,160.6,128,7.23,5.4,9,1.46,4]]}]}

Ten en cuenta que se espera que algunas de las funciones, como el estado y el número de teléfono, estén en forma de cadenas (lo que no debería sorprender), mientras que las funciones numéricas verdaderas se pueden proporcionar como números enteros o flotantes según corresponda para la función dada.

Para probar el modelo en tiempo de ejecución:

  1. Selecciona el despliegue que acaba de crear haciendo clic en el nombre del despliegue (por ejemplo, ‘customer-churn-spss-model-web-service’).

  2. Esto abre una nueva página que muestra una descripción general de las propiedades del despliegue (por ejemplo, nombre, fecha de creación o estado).

  3. Selecciona la pestaña Prueba.

  4. Selecciona el ícono del archivo, que luego permite ingresar los valores usando JSON.

  5. Pega el objeto JSON en el archivo descargado Customer Churn Test Data.txt en el campo Ingresar datos de entrada.

  6. Haz clic en Predecir para ver los resultados.

deploy-test-result

El resultado de la predicción se da en términos de la probabilidad de que el cliente cambie (Verdadero) o no (Falso). Es posible probarlo con otros valores, por ejemplo, sustituyendo los valores con valores tomados del archivo customer-churn-kaggle.csv. Otra prueba es cambiar el número de teléfono a algo como ‘XYZ’ y luego ejecutar la predicción nuevamente. El resultado de la predicción debe ser el mismo, lo que indica que la función no es un factor en la predicción.

Si quieres ver otros ejemplos sobre el uso de SPSS Modeler para predecir la rotación de clientes, consulta el tutorial Predecir la rotación de clientes mediante la creación y despliegue de modelos mediante Watson Studio Flows.

Puntuación de modelos de aprendizaje automático mediante la API

Como se mencionó anteriormente, también es posible acceder al modelo utilizando la API de IBM Watson Machine Learning. Una forma de hacerlo es con un Jupyter Notebook, que se describe en nuestro siguiente tutorial: Ejecución de Jupyter Notebooks en IBM Watson Studio.

Una vez que hayas completado ese tutorial y te sientas cómodo ejecutando Jupyter Notebooks, es posible probar un notebook de muestra que puntuará el modelo SPSS que acabas de crear.

Al crear el cuaderno, usa la opción Desde URL e ingresa:

https://github.com/IBM/watson-studio-learning-path-assets/blob/master/notebooks/spss-customer-churn.ipynb

Para ejecutar el notebook, deberás actualizarlo con:

  • Tus credenciales de Watson Machine Learning, que se encuentran en la pestaña Credenciales de servicio de tu servicio en IBM Cloud.

    ml-creds

  • La URL de Punto final de puntuación para tu modelo desplegado, que se encuentra en la pestaña Implementación para tu modelo desplegado.

    deploy-python-code

Flujo de SPSS Modeler con Watson Studio Desktop

La función de flujo de SPSS Modeler también está disponible en Watson Studio Desktop. Watson Studio Desktop trae el poder de las mejores herramientas de inteligencia artificial y ciencia de datos de IBM a Windows y MacOS, facultando a los líderes empresariales y científicos de datos por igual. Para obtener más información, observa IBM Watson Studio Desktop.

Pasos

  1. Descarga e instala Watson Studio Desktop. Obtén una prueba gratuita de 30 días de Watson Studio Desktop, que también incluye una prueba de SPSS Modeler.
  2. Inicia sesión con tus credenciales de IBM Cloud. Si no tienes una cuenta de IBM Cloud, es posible registrarse para obtener una.
  3. Crea un proyecto.
  4. Para crear un modelo, utiliza los mismos pasos descritos anteriormente para Watson Studio. Consulta Crear flujo de modelo.

Conclusión

Este tutorial cubrió los conceptos básicos del uso de la función de flujo de SPSS Modeler en Watson Studio, que incluía:

  • Crear un proyecto
  • Suministrar y asignar servicios al proyecto.
  • Agregar activos al proyecto, como conjuntos de datos
  • Crear un flujo de Modeler
  • Usar el editor de flujo de Modeler para ejecutar y examinar el modelo
  • Capacitar y evaluar el modelo
  • Desplegar el modelo como servicio web
  • Puntuar el modelo de aprendizaje automático con datos de prueba

El uso de la función de flujo de SPSS Modeler de Watson Studio proporciona un enfoque sin programación para crear un modelo para predecir la rotación de clientes. Proporciona una alternativa al estilo totalmente programado de utilizar un Jupyter Notebook, como se describe en el siguiente tutorial de la ruta de aprendizaje, Ejecución de Jupyter Notebooks en IBM Watson Studio.