Realizando predicciones con Azure Machine Learning

Las predicciones facilitan la toma de decisiones de negocio. En este artículo explico cómo predecir la rotación de empleados en una organización utilizando un conjunto de datos públicos de Kaggle y Azure Machine Learning. Creamos un modelo de predicción y luego lo llamamos utilizando un endpoint REST desde una aplicación de consola desarrollada en C#. Azure Machine Learning dispone de un interfaz gráfico denominado Machine Learning Studio que facilita la creación de un modelo de predicción que Azure denomina Experimento. En este artículo doy nociones de cómo crear un modelo para predecir la rotación de empleados basados en características del empleado como, por ejemplo, fecha de cumpleaños, fecha de contratación, edad, ciudad, departamento, entre otros.

Utilizando un entorno de trabajo interactivo (denominado Machine Learning Studio) se pueden arrastrar y soltar data sets y módulos de análisis en un lienzo interactivo. Se enlazan todos en un Experiment que se ejecuta en Machine Learning Studio. Se crea un modelo, se entrena el modelo y se comprueba el modelo con datos conocidos.

Se puede iterar el modelo para mejorar su rendimiento hasta conseguir los resultados deseados. Cuando el modelo está listo se puede publicar como un servicio web REST para enviarle peticiones de predicciones y conseguir la predicción realizada por el modelo de Azure Machine Learning. El servicio web REST se puede consumir por una aplicación de consola desarrollada en C# (lo que se hace en este artículo) aunque podría ser consumida por cualquier aplicación capaz de conectarse a una dirección URI (un REST endpoint).

Para abrir Machine Learning Studio ve a https://studio.azureml.net (puedes registrarte gratuitamente). Y para preparar el experimento, crear el modelo a través de los siguientes pasos:

  • Paso 1: Conseguir datos
  • Paso 2: Preparar los datos
  • Paso 3: Definir características. Entrenar el modelo
  • Paso 4: Seleccionar y aplicar un algoritmo de aprendizaje. Puntúa y prueba el modelo
  • Paso 5: Predecir la rotación de empleados.

Después de completar estos pasos se consigue un modelo de predicción con Machine Learning Studio con este aspecto.

Realizando predicciones con Azure Machine Learning

Ahora se puede desplegar el modelo como un servicio web para conseguir predicciones de rotación de empleados con nuevos datos. La página Quickstart de Azure Machine Learning proporciona todo lo que hace falta para desarrollar una aplicación para consumir el servicio web REST. En nuestro caso se desarrolla una aplicación de consola en C# con Microsoft Visual Studio.

Para conseguir el código C# proporcionado por Machine Learning Studio haz clic en el vínculo denominado Request/Response (en la página denominada API Help Page) y avanza página hasta llegar al código C# para llamar el web service desde una aplicación de consola.

Realizando predicciones con Azure Machine Learning 2

Instala los paquetes Nuget según indicado en el código proporcionado. Reemplaza el API Key con el proporcionado en el portal de Azure machine Learning. Copia el código C# proporcionado por Azure Machine Learning y pégalo reemplazando el código de la clase denominada Program.cs del proyecto de consola de Visual Studio.

Agrega los valores que se desean predecir y ejecuta la aplicación.

El web service de Azure Machine Learning web retorna la siguiente respuesta:

Realizando predicciones con Azure Machine Learning 3

Con las siguientes peticiones de predicción:

Realizando predicciones con Azure Machine Learning4.JPG

En azul el valor conocido de la petición de predicción y en amarillo la predicción realizada por el modelo de Azure Machine Learning.

Ambas predicciones son correctas y coinciden con los valores conocidos de la data set de rotación de empleados de Kaggle.

A partir de este punto se podrían realizar más peticiones de rotación de empleados con datos nuevos.

Similarmente se podría extender este ejemplo para conseguir predicciones con data sets de Kaggle para:

1. Disponibilidad de sistemas IT

2. Identificación de transacciones financieras fraudulentas

3. Rotación de clientes de teleoperadoras

Esperamos que os haya sido de interés y os seguiremos contando más sobre Azure Machine Learning. ¡Hasta la próxima!

profileimage

José María Gurría Celiméndiz

Consultor Arquitecto | Soluciones Microsoft | SOGETI España

Autor: ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software y Soluciones Microsoft. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s