Git Product home page Git Product logo

watson-studio's Introduction

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

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 play (Un triangulo).
  • Haz click en el botón Save and Run
  • En el dialogo emergente haz click en View y espera a que el flujo termine.
  • Vuelve a tu proyecto haciendo click en el nombre del proyecto en el menú de navegación

5. Trabajar con Watson Machine Learning

  • En el panel de Assets navega hacia abajo a la sección de Watson Machine Learning
  • Haz click en New Watson Machine Learning model

  • Dale un nombre a modelo
  • Selecciona en Runtime el ambiente Default Spark Scala 2.11
  • Selecciona la opción Manual para poder seleccionar los modelos que se probaran.
  • Haz click en Create para crear el modelo

  • En el paso Data Assets, selecciona el set que se creo apartir del Data Flow del numeral anterior.
  • Haz click en Next
  • En el paso Technique selecciona como Column value to predict la columna objetivo Exited
  • Asegurate que la tecnica sugerida sea Binary Classification

  • Haz click en Add Estimators para seleccionar los modelos que evaluaremos.
  • Selecciona todos los estimadores y haz click en Add

  • Haz click en Next para que comience el entrenamiento de los modelos.
  • Espera a que los modelos terminen de entrenar.
  • Analiza los resultados de los modelos
  • Selecciona el mejor model, tipicamente es el RandomForestClassifier y haz click en el botón Save

  • 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.ipynb
  • Selecciona como Runtime el servicio ambiente por defecto con pytho 3.5 y Spark: Default Spark Python 3.5 XS
  • Haz click en Create Notebook

  • Asegurate que el Kernel diga Python 3.5 y Spark 2.1 o mayor.
  • 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/json"};
return msg;

  • 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” -> GET “URL” -> https://us-south.ml.cloud.ibm.com/v3/identity/token Marque la casilla “Use basic authentication”. Esto habilitará las celdas “username” y “password”. Estas celdas deben ser llenadas con el usuario y contraseña de su servicio de Watson Machine Learning. “Name” -> Token request

La base url https://us-south.ml.cloud.ibm.com depende de la región en que se desplegó el servicio (Dallas, Londres, Frankfurt o Tokio) Si tienes dudas del endpoint correcto, puedes revisar en las credenciales del servicio Watson Machine Learning

  • 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).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 acaba d arrastrar y nómbrelo “Scoring Header”. Luego, en la celda “Function” copie el siguiente código y péguelo en la primera línea:
msg.headers={"Content-type": "application/json","Authorization":"Bearer " + msg.token}; 
msg.payload=msg.fields;
return msg;
  • 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.

watson-studio's People

Contributors

libardolara avatar samirchar avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.