Guía para iniciarse en Microsoft Azure Machine Learning Studio

Azure Machine Learning Studio

Guía para iniciarse en Microsoft Azure Machine Learning Studio

La Inteligencia Artificial está en boca de todos. Ya son muchas personas las que apuestan por esta tecnología como clave para el futuro. Las compañías son conscientes y están empezando a invertir en ello. MVP CLUSTER se ha sumado a esta tendencia y nos ha dado la oportunidad de formarnos en Machine Learning. En este artículo quiero tratar a muy alto nivel que es Machine Learning y cómo empezar a trabajar dentro de un entorno Microsoft  con Azure Machine Learning Studio. Para ello, no voy a tratar el detalle de cada aspecto, sin embargo, durante el artículo se incluirán enlaces que podrán ser de gran ayuda para comprender y profundizar cada punto.

 

¿Qué es Machine Learning?

Es una rama dentro de la Inteligencia Artificial que permite desarrollar sistemas que aprendan automáticamente en base a datos ya existentes, pudiendo predecir nuevos resultados, comportamientos y tendencias futuras para nuevos escenarios.

Para que nos hagamos una idea más clara de que es y para qué sirve, podemos pensar en el correo electrónico. Hoy día ya aplican estas técnicas sobre el correo en función de su contenido o de nuestras propias acciones con otros correos similares, de forma que se clasifica su importancia o si debe ir a Spam. A día de hoy el alcance de esta tecnología va mucho más allá de la clasificación de correo, haciendo predicciones en escenarios mucho más complejos.

En Microsoft disponemos de Machine Learning Studio, que es un entorno de Azure que permite crear aplicaciones arrastrando y moviendo de forma muy visual. Se usa directamente desde el explorador de forma sencilla, pero conservando toda la potencia de Machine Learning (https://studio.azureml.net).

 

Empezar a trabajar con Machine Learning Studio

Antes de empezar con el Machine Learning Studio, es importante realizar labores de análisis y recopilación de los datos.

Una vez tengamos claro que queremos predecir, tendremos que analizar y recabar los datos que pueden influir o afectar a la predicción, por ejemplo, si queremos predecir el tráfico de una carretera, algunos datos que pueden influir es el tiempo que haga en ese momento, eventos cercanos, etc. Cuando hayamos recopilado los datos, podremos comenzar con Machine Learning Studio.

 

Organización en Machine Learning Studio

Una vez entramos en el Studio veremos un menú vertical con las opciones que indico a continuación:
1

 

 

 

 

PROJECTS: Sirve para agrupar en un mismo lugar experimentos, conjuntos de datos, modelos entrenados y otros recursos de la plataforma.

EXPERIMENTS: Es la aplicación que realiza el análisis predictivo.

WEB SERVICES: Es la publicación del experimento para ser consumido por otras aplicaciones.

NOTEBOOKS: Cuadernos de Jupyter que se quieran subir.

DATASETS: Conjuntos de datos que se cargan en la aplicación para ser usados en los experimentos.

TRAINED MODELS: Es un modelo que se genera a partir de los experimentos que entrenamos.

SETTINGS: Ajustes sobre la cuenta y los recursos.

 

Trabajando con Azure Machine Learning Studio

 

Para conseguir que nuestro modelo funcione deberemos seguir los siguientes pasos:

 

1. Subiremos los datos recopilados

Podremos subir los datos a través del explorador de archivos, pulsando en “NEW > DATASET > FROM LOCAL FILE”.

23

 

 

 

 

El archivo debe tener una extensión soportada por la herramienta. En la imagen se pueden ver desplegadas las admitidas.

4

 

Una vez cargado el archivo lo podremos visualizar en la sección DATASETS, además de que estará disponible para usar en un experimento.

 

2. Crearemos el experimento

 

Podemos crear un experimento usando plantillas que luego podemos adaptar o una plantilla en blanco para comenzar desde cero. En este caso usaremos una plantilla en blanco.

5

6

 

3. Trabajamos sobre el experimento

 

Una vez creado el experimento, se nos abrirá una ventana que nos permitirá arrastrar múltiples opciones desde el menú lateral izquierdo para trabajar.

a. Añadimos el conjunto de datos:

Podremos seleccionar el DataSet que hemos cargado en el punto anterior, desde el menú lateral izquierdo.
7

b. Identificamos y categorizamos los campos más importantes:

 

Con la acción “Select Columns in Dataset” seleccionaremos los campos que queremos usar en el modelo.

Con la acción “Edit Metadata” podremos editar campos seleccionados y marcarlos como categorías. Esta acción se realizará sobre aquellos campos que contengan datos tipo que se usen para categorizar.

8

c. Limpiamos y transformamos los datos:

El DataSet sobre el que trabajemos puede contener errores, por lo que debemos de limpiarlo y/o corregir dichos errores.

Con la acción “Clear Missing Data” podremos limpiar los datos, por ejemplo, asignando un valor por defecto cuando un campo está vacío o eliminando directamente los registros que tengan un determinado campo vacío.

 

9

 

d. Seleccionamos el campo que se va a predecir:

Este paso es necesario para algunos módulos que requieren identificar dicho campo, lo podremos hacer mediante la acción “Edit Metadata”.

10

 

e. Realizamos un Split:

Lo hacemos mediante la acción “Split Data”, la cual nos permitirá separar los datos en dos bloques, uno servirá para entrenar el modelo con el algoritmo y otro para comparar el resultado del entrenamiento.

 

f. Seleccionamos el algoritmo con el que entrenaremos nuestro experimento:

Dependiendo del experimento o la predicción que queramos realizar utilizaremos un algoritmo u otro.

12

 

Los algoritmos disponibles se pueden agrupar en cuatro grupos:

  • Detección de anomalías
  • Clasificación
  • Agrupación
  • Regresión

 

El siguiente enlace explica como elegir un algoritmo u otro, además de ofrecer la descarga una guía que los clasifica: https://docs.microsoft.com/es-es/azure/machine-learning/studio/algorithm-choice

 

g. Añadimos al experimento el modelo de entrenamiento, el modelo de puntuación y el modelo de evaluación:

13

 

La acción “Train Model” se encarga de entrenar los datos devueltos por el Split y entrenarlos aplicando el algoritmo seleccionado.

La acción “Score Model” se encarga de generar valores basándose en el modelo de entrenamiento.

La acción “Evaluate Model” se encarga de evaluar la precisión de las predicciones del entrenamiento.

 

14

 

Las necesidades en cada modelo predictivo pueden ser muchas y muy diferentes, para ello deberemos utilizar las acciones que mas se ajusten a cada necesidad. En el siguiente enlace podemos ver el detalle de cada una: https://docs.microsoft.com/en-us/azure/machine-learning/studio-module-reference/machine-learning-module-descriptions

 

4. Entrenamos el modelo y lo evaluamos

 

Una vez hayamos construido nuestro modelo, podremos entrenarlo y comprobar la precisión que estamos consiguiendo para evaluar si es suficiente o realizar modificaciones para mayor precisión.

Para ello pulsaremos sobre el botón “RUN” y se comenzará a entrenar. Sabremos que se ha ejecutado correctamente porque las acciones mostrarán un check verde.

15

16

 

 

 

Una vez finalizada la ejecución del modelo, podremos visualizar el detalle de la salida de cada acción. Por ejemplo, para comprobar si los datos se van limpiando correctamente.

 

17

 

Si queremos visualizar la precisión, lo haremos visualizando el resultado de la acción “Evaluate Model”.

 

Machine Learning Studio

 

Dependiendo del tipo de modelo las métricas que se podrán evaluar pueden ser diferentes. En el siguiente enlace se muestran y explican las métricas disponibles por cada modelo: https://docs.microsoft.com/es-es/azure/machine-learning/studio-module-reference/evaluate-model

Del mismo modo que las métricas cambian según el modelo, también cambia la interpretación de sus resultados. En el siguiente enlace se explica como interpretar de forma correcta cada modelo: https://docs.microsoft.com/en-us/azure/machine-learning/studio/interpret-model-results

 

La siguiente imagen se corresponde a los resultados de un modelo de clasificación.

 

19

 

5. Publicaremos el servicio web

 

Publicar el servicio posibilitará que el modelo que hemos creado lo podamos consumir desde fuera de la herramienta.

Antes de publicar el servicio, hay que crearlo, para ello accederemos a la siguiente opción “SET UP WEB SERVICE > PREDICTIVE WEB SERVICE

 

20

 

 

Esta acción generará automáticamente una replica del modelo, añadiendo una entrada de datos y la salida del resultado.

21

 

 

Una vez creado el servicio, primero lo lanzamos con la opción “RUN” y luego lo publicamos desde la siguiente opción “DEPLOY WEB SERVICE”:

 

22

23

 

 

 

 

Finalmente obtendremos una pantalla con datos y acceso a la información del servicio.

 

Consumiendo el servicio de Azure Machine Learning Studio

 

En el último punto fuimos redirigidos a una página con la información del servicio, en este revisaremos la información más importante.

Uno de los datos más importantes que se muestra en la página es la “API Key” la cual usaremos para autenticarnos y consumir el servicio.

 

24

 

Si pulsamos en “REQUEST/RESPONSE” seremos redirigidos a una página con toda la información para hacer la

llamada al servicio, que respuesta recibiremos, cuáles son los parámetros de entrada con sus tipos, los parámetros de salida con sus tipos y un ejemplo de código en C#, Python y R.

 

Información para la petición (URI, Header, Body):

26

 

Información del formato de la respuesta (Status Code, Header, Body):

 

27

 

Parámetros de entrada:

 

27 28

 

Parámetros de salida:

 

29

 

Ejemplo de código:

 

30

 

Si pulsamos el enlace “Test” se abrirá una página desde la que podremos probar el servicio. La página mostrará los campos seleccionados en el modelo para que los rellenemos, una vez rellenos pulsamos en “Test Request-Response”.

 

31

 

 

La página enviará al servicio la información introducida, el modelo la procesará y devolverá las métricas obtenidas a través del servicio.

 

32

 

 

En el siguiente enlace ofrece mayor detalle sobre la publicación del servicio web: https://docs.microsoft.com/en-us/azure/machine-learning/studio/publish-a-machine-learning-web-service