La unión de dos grandes: Azure Machine Learning y PowerBI

Escrito por Javier Menéndez Pallo - 13/05/2015

​A finales del año pasado, en el número 22 de CompartiMOSS (http://www.compartimoss.com/revistas/numero-22) os hacía una pequeña introducción a Machine Learning y toda su potencia aplicada en Office 365 de la que disponen miles de usuarios desde hace meses. Esta vez, y continuando en la línea de Machine Learning os expongo el potencial de otros dos grandes: Azure Machine Learning y PowerBI.

Como es Azure Machine Learning?

El Machine Learning que nos ofrece Azure es accesible como un servicio más de los disponibles en nuestro panel de control de Azure y todo su potencial es accesible desde ahí o desde azureml.net. Una de las principales ventajas que nos ofrecerá Azure ML es la potencia de procesamiento que implica Azure en sí mismo, ya que montar una infraestructura de estas características en entornos on-premise tendría unos costes muy elevados como punto de partida.

Imagen 1.- Galería de Machine Learning en Microsoft Azure. 

Otra de las ventajas ofrecidas es que todas las herramientas necesarias están accesibles a través del portal, el cual os invito a visitar desde ya mismo. Allí encontraremos todo lo que necesitamos para empezar a trabajar con Azure ML, desde un buen repositorio de ejemplos hasta la herramienta de implementación que necesitamos para implementar nuestros proyectos, o como los llamamos en ML: experimentos.

 

Se nota el esfuerzo realizado por parte de Microsoft para que podamos utilizar ML desde el primer momento ya que podemos acceder a un sinnúmero de tutoriales y experimentos ya creados en la galería. También se agradece la forma de trabajar en los experimentos, muy al estilo de los diseñadores de ETL's que nos ofrecen las Data Tools de SQL Server o mejor dicho, Visual Studio configurado con las plantillas para Integration Services.  

Nuestro primer experimento ML

Una vez que hemos iniciado el Studio del panel encontraremos que la forma de implementar un experimento se compone de ir agregando los pasos mediante los cuales vamos a leer, procesar, trabajar y volcar la información.

Imagen 2.- ML Studio. 

Aunque la mejor forma de empezar a trabajar es con uno de los ejemplos que nos podemos encontrar en la galería, debemos tener en cuenta que el proceso es más simple de lo que parece. En realidad se trata de 3 pasos bien diferenciados:

  • Extraer la información: la capacidad de leer información de múltiples orígenes de datos es enorme, incluso de aquellos no estructurados.
  • Procesarla y tratarla: aquí está el trabajo principal ya que la cantidad que necesitemos hacer con la información es infinita pero siempre debemos tener en cuenta el paso a paso y una regla importante a tener en cuenta en este paso es siempre: preparar la información (quitar información que no queremos), normalizarla y evaluarla según los algoritmos que consideremos y que trataré más adelante.
  • Salida: una vez que tenemos los resultados procesados tendremos gran cantidad de posibilidades donde volcar la información aunque si nuestro objetivo es explotarla más adelante deberíamos almacenarla en un sitio igual de accesible en el futuro (Azure Databases, Blobs, etc.)

Un punto radical en cualquier experimento de ML es elegir bien el algoritmo de previsión que vamos a aplicar. Y con esto recalco lo de "previsión" ya que recordemos que el objetivo final de ML no es analizar grandes cantidades de información, para eso ya tenemos Big Data, sino buscar los patrones de comportamiento en un conjunto finito de información. En otras palabras, para ML "analizar la información es un medio y no un destino. Su objetivo es buscar el patrón de lo que va a suceder y no centrarse tanto en lo que está sucediendo, aunque obviamente hay que mirar el presente obligatoriamente para intentar averiguar el futuro.

Como comentaba antes la elección de un correcto modelo de predicción, nos llevará al éxito o al fracaso en nuestro experimento, pero desde ya os adelanto que no hay una fórmula mágica para decidir cuál es el mejor modelo ya que aplican distintos dependiendo del caso. Con lo que si contamos es con la posibilidad de evaluar los modelos en todo momento y eso es lo que nos dará pistas sobre los mejores algoritmos a aplicar según la información de la que partimos, y estos métodos son la evaluación y la validación cruzada.

Hacer la información accesible

Una vez que tengamos nuestros juegos de datos finales procesados nos interesará volcar la información para que esta sea accedida desde otros sitios, como por ejemplo PowerBI. Debemos tener en cuenta que es posible acceder a información en tiempo real desde PowerBI utilizando EventHubs y ASAs (Azure Stream Analytics) los cuales serán seguramente motivo de otro artículo.

Cuando optamos por dar salida a la información desde nuestro experimento, tenemos varias opciones como podemos ver aquí:

Imagen 3.- Opciones de salida de información para el experimento. 

Dependiendo de nuestras necesidades deberemos optar por una u otra opción, y lo mejor es que en todo momento podríamos hacer que esta información esté accesible a través de un web service.

Para que veáis la potencia y la simplicidad de conexión para este artículo he cogido uno de los ejemplos que ofrece el portal de Machine Learning y he agregado un paso de escritura a un base de datos de Azure, a la cual voy a acceder inmediatamente desde Power BI. Para que lo podáis reproducir el paso a paso resumido es bastante simple:

  1. Lo primero que necesitamos es Azure SQL Database que podemos crear con una suscripción de prueba y en cuanto esté creada debemos darle permisos para que sea accesible a través de Azure.
  2. Ahora, en el panel de control de Machine Learning cogemos uno de los ejemplos que os ofrecen, en mi caso el "Sample 4: Cross Validation for Regression: Auto Imports Dataset" y al final de todo el proceso adjuntamos un paso de escritura a la base de datos que hemos creado en el paso anterior.
  3. Le damos a ejecutar y nuestra base de datos estará cargada.

Este es un pantallazo de cómo queda dibujado el final del proceso:

Imagen 4.- Aspecto final del experimento. 

Explotando los datos con PowerBI

Ahora que ya contamos con la información disponible a través de nuestro Azure SQL Database el proceso de explotación de esa información es relativamente sencillo.  Dado que Power BI puede acceder directamente a múltiples orígenes de datos y uno de ellos es Azure SQL Database, no tenemos que hacer nada más que darle los parámetros de conexión para que pueda acceder a la información.

Imagen 5.- Configuración de conexión en Power BI. 

Vuelvo a insistir en la necesidad de que en el panel de control de la base de datos en Azure, y especialmente en las reglas de firewall hayamos marcado la opción de permitir acceder desde Azure a esta base de datos, ya que sin esta opción no hay conectividad posible.  

Imagen 6.- Configuración del acceso a la base de datos desde Azure. 

Una vez que tengamos nuestra base de datos conectada, la veremos en el panel de navegación de PowerBI y en este punto solo nos queda construir el informe.  Al hacer clic en la base de datos se abrirá el diseñador de informes de PowerBI, donde una vez más podemos ver que la conexión es correcta viendo los campos que en su momento exportamos desde nuestro experimento de Machine Learning.

Imagen 7.- Diseñador de informes de Power BI. 

A partir de este punto podemos crear el informe arrastrando campos hacia el diseñador de informes y aplicando los filtros que consideremos necesarios.

Imagen 8.- Informe final generado. 

Conclusión

Desde mi humilde punto de vista, Machine Learning tiene un potencial increíble que todavía no está siendo explotado del todo por el mercado, y está en nosotros, los expertos técnicos y de negocio, en hacer que llegue de una forma rápida y sencilla al público en general. Ya en el día de hoy explotar los datos con PowerBI es posible, tal como hemos visto en el ejemplo, y como os comentaba, contamos con piezas que nos permiten hacer esa interconexión en tiempo real de forma relativamente sencilla. Como frase final decir que no cabe duda que oiremos mucho de Machine Learning en el futuro cercano y más aún cuando se amplíen sus capacidades de volcado e interconexión de forma directa.  

 

Javier Menéndez Pallo

Director Oficina Centro – España y Portugal

ENCAMINA

jmenendez@encamina.com

***