Skip to content

Watson Studio Hands-On using features of data wrangling, AutoML, and Jupyter Notebooks.

Notifications You must be signed in to change notification settings

libardolara/watson-studio

 
 

Repository files navigation

Machine Learning con Watson Studio

Presentación Introducción a Machine Learning

Componentes Incluidos

  • Watson Studio: Watson Studio es una herramienta end-to-end que permite desarrollar modelos de machine learning y deep learning combinando los principales proyectos Open Source y herramientas propias de IBM en la nube.
  • Jupyter Notebook: Es una aplicación web Open Source que le permite crear y compartir documentos que contienen código en vivo, ecuaciones, visualizaciones y texto narrativo.

Prerequisitos

Ver los videos

Este repositorio cubre los videos del siguiente listado

Paso a Paso

1. Clonar el repo

Descarga o clona el repositorio watson-studio localmente. En una terminal, puedes ejecutar:

$ git clone https://github.com/libardolara/watson-studio

2. Crear los servicios en IBM Cloud

3. Crear un Proyecto en Watson Studio

Abre tu servicio de Watson Studio ya sea en dashboard de IBM Cloud o en el site de Watson Studio haciendo click en Sign in

  • En la pagina principal de Watson Studio haz click en New Project y crea un proyecto estándard con todos los recursos (Complete)
  • Dale un nombre a tu proyecto
  • Asegurate que en Storage este escogido el servicio de Object Storage que creaste en el numeral anterior. Si no esta seleccionado debes hacer click en Add > Existing y selecciona de la lista desplegable el servicio.
  • Haz click en Create

Vamos a agregar al proyecto servicios adicionales como Watson Machine Learning

  • Haz click en la pestaña Settings
  • Navega hacia abajo hasta la sección Associated Services
  • Haz click en Add Service y selecciona Watson

  • En la lista de servicios de Watson haz click Add para el servicio de Machine Learning

  • En la pestaña Existing selecciona tu servicio de Machine Learning

  • La herramienta te redirige al proyecto en la sección Associated Services

4. Trabajar con un Data Set

  • En la pestaña de Assests en la sección Load arrastra el archivo Churn_ds.csv

  • Al cargar un archivo se crea automaticamnte un Data Asset. Haz click en el Data Asset con el nombre Churn_ds.csv.
  • Analiza los datos, si necesitas entender el contexto de las columnas encuentra la metadata en Churn_metadata.txt
  • Haz click en Refine

En este punto vamos a usar el servicio Data Refinery para crear un flujo de modificación de los datos.

  • Haz click en el menú de los 3 puntos para la Columna RowNumber y selecciona la opción Remove

  • Repite el punto anterior para las columnas CustomerID y Surname
  • En el campo Operation pega el siguiente codigo para cambiar los campos que deberian ser enteros
mutate_at(vars('CreditScore','Age','Tenure','NumOfProducts','HasCrCard','IsActiveMember','Exited'),funs(as.integer))

Data Refinery permite usar codigo R para modificar las columnas del data set.

  • En el campo Operation pega el siguiente codigo para cambiar los campos que deberian ser decimales
mutate_at(vars('Balance','EstimatedSalary'),funs(as.numeric))
  • Ahora ve a la pestaña Profile y observa la distribución de cada columna.

  • Ahora ve a la pestaña Visualization y crea un Histograma con variable x CreditScore particionado por Gender
  • Descarga la grafica haciendo click en el icono de descargar.

  • Activa el flujo de datos haciendo click en el botón de ejecución (Un triangulo) en la el menú superior.
  • Selecciona la opción Save and create Job
  • En la configuración de la ejecución del flujo de datos, configura el ambiente de ejecución con el ambiente Default Spark R 3.4 o superior.

  • Haz click en el botón Create and Run
  • Espera a que el flujo termine su ejecución.
  • Vuelve a tu proyecto haciendo click en el nombre del proyecto en el menú de navegación

5. Trabajar con AutoAI Experiment

AutoAI Experiments permite de forma automatica preparar, modelar y sintonizar los parametros para el mejor modelo de machinie learning.

  • Haz click en el botón Add to project
  • En el panel emergente selecciona la opción AutoAI Experiment

  • Ingresa un nombre al Asset
  • Asegurate que el servicio de Watson Machine Learning este escogido. Si no esta seleccionado debes hacer click en link Associate a Machine Learning service instance y selecciona de la lista desplegable el servicio. Finalmente haz click en el botón Reload

  • En la pagina de configuracion del experimento, haz click en el boton Select from project para seleccionar el data set que creamos en el numeral anterior.
  • Selecciona el data set creado en el numeral anterior.
  • Selecciona la columna objetivo de nuestro modelo, es decir Exited que indica si una persona se quedó o se fue del banco.

  • Haz click en Run Experiment
  • Cuando termine de ejecutarse el experimento, observa los diferentes resultados que obtuvo en la sección Pipeline Leaderboard

  • Selecciona el flujo con el mejor resultado (ROC AUC)
  • Detalla las diferentes medidas de evaluación del modelo.

  • Haz click en el botón Save as model
  • Puedes cambiar el nombre. Haz click en el botón Save

  • Ve a la pagina de Assets de tu proyecto, en la sección modelos Watson Machine Learning, encontraras el modelo que acabamos de guardar. Haz click en el modelo.
  • Ve al tab Deployments y haz click en Add Deployment
  • Dale un nombre al Despliegue
  • Selecciona el metodo de despliege Web Service
  • Haz click en Save

  • Espera hasta que el estado del despliegue diga DEPLOY_SUCCESS y haz click sobre el nombre del despliegue.

  • Navega en la pestaña Implementation para entender como hacer los llamados a través de REST APIs
  • Navega en la pestaña Test y haz un llamado al modelo.

6. Trabajar con Notebooks

  • Vuelve a tu proyecto, a la pestaña Assets y navega a la sección Notebooks
  • Haz click en New notebook

  • Selecciona la pestaña From URL
  • Dale un nombre al Notebook
  • En el campo Notebook URL copia la dirección https://github.com/libardolara/watson-studio/blob/master/Churn_notebook_py37.ipynb
  • Selecciona como Runtime el servicio ambiente por defecto con python 3.7: Default Python 3.7 XS
  • Haz click en Create Notebook

  • Asegurate que el Kernel diga Python 3.7.
  • Sigue las instrucciones que estan en el Notebook.

7. Usar el modelo desde Node-RED

  • En el catalogo de IBM Cloud, crea el servicio de Node-RED
  • Dale un nombre único a la aplicación, este nombre será usado para crear un subdominio web.
  • Haz click en Crear
  • Espera a que la aplicación inicialice
  • De la pestaña “input” arrastre el bloque “inject”
  • De doble click sobr este bloque y en la celda de “Payload” seleccione “JSON”
  • Bajo la pestaña “Function” arrastre el bloque “function” y conéctelo después del bloque “inject”
  • De doble click sobre este bloque que acaba de agregar y en la celda “Name” coloque “Token Header”. Luego en la casilla “Function” copie el siguiente código y péguelo reemplazando todo el campo:
msg.fields=msg.payload;
msg.headers={"Content-type":"application/x-www-form-urlencoded",
"Accept":"application/json"};

//TODO Agregar el apikey de las credeciales de Watson Machine Learning
apikey = "";

msg.payload = "apikey=" + apikey + "&grant_type=urn:ibm:params:oauth:grant-type:apikey";
return msg;
  • No te olvides de copiar tu apikey en el codigó anterior, recuerda que esta información esta en las credenciales de tu servicio Watson Machine Learning

  • En la pestaña “Function” arrastre el bloque “http request” y conéctelo después del bloque del punto anterior.
  • De doble click sobre el bloque de “http request” y realice la siguiente configuración en las siguientes celdas:

“Method” -> POST “URL” -> https://iam.bluemix.net/identity/token “Name” -> Token request

Si deseas mayor información en la forma de autenticacion para el servicio Watson Machine Learning, revisa la Documentación

  • Bajo la pestaña “Function” agregue el bloque llamado “function”. Arrástrelo y conéctelo después del bloque del punto anterior.
  • De doble click sobre este bloque que acaba de arrastrar y en la celda “Name” escriba Grab Token. Luego en la celda “Function” agregue la siguiente línea de código en la primera línea:
msg.token = JSON.parse(msg.payload).access_token;
return msg;
  • Arrastre otro bloque de “function” bajo la pestaña “Function” y conéctelo con el bloque anterior.
  • De doble click sobre el bloque que acabas de arrastrar y nómbrelo “Scoring Header”. Luego, en la celda “Function” copie el siguiente código y péguelo en la primera línea:
//TODO Agregar el instance id de las credenciales de Watson Machine Learning
instance_id = "" ;

msg.headers={"Content-type": "application/json",
"Authorization":"Bearer " + msg.token,
"ML-Instance-ID": instance_id
};
msg.payload=msg.fields;
return msg;
  • No te olvides de copiar tu instance_id en el codigó anterior, recuerda que esta información esta en las credenciales de tu servicio Watson Machine Learning
  • Arrastre otro bloque “http request” de la pestaña “Functions” y conéctelo al bloque del punto anterior.

De doble click a este bloque recién agregado y en la celda “Name” escriba “Scoring request”, en “Method” seleccione “POST” y en la celda de “URL” pegue la URL de su modelo que se puede obtener entrando a Watson Studio -> Entra a su proyecto -> Models -> Click sobre su modelo -> Click a pestaña “Deployments” -> Entre al deployment -> Click a la pestaña “Implementation”. En esta parte deberá ver de primero “Scoring End-point”.

Esta es la URL del modelo que pegaremos en la celda de “URL” de este bloque de “Http Request”

  • Para terminar el flujo de bloques ir a la pestaña “Outputs” y arrastre el bloque “debug” y conéctelo después del bloque del punto anterior. De doble click al bloque de debug y cambie el nombre a “Prediction”.
  • Para usar el flujo de doble click a al bloque de inject y en la celda de “Payload” pegue lo siguiente:
{"fields":["CreditScore","Geography","Gender","Age","Tenure","Balance","NumOfProducts","HasCrCard","IsActiveMember","EstimatedSalary"],"values":[[500,"Spain","Male",50,2,10000,2,1,0,40000]]}

  • Luego despliegue dando click en el botón “Deploy” que se encuentra en la equina superior derecho de la página
  • Una vez desplegado vaya al bloque “inject” y presione el botón.
  • En el panel de la derecha en la pestaña “Debug” deberá ver la respuesta del modelo.

About

Watson Studio Hands-On using features of data wrangling, AutoML, and Jupyter Notebooks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%