Power BI Exchange

Please login or click SIGN UP FOR FREE to create your PowerBIUG account to join this user group.

Machine Learning con Power BI usando Azure ML Studio

By Pablo Moreno posted Mar 01, 2019 01:02 PM

  

 En este blog mostrare como usar Azure ML Studio -web service- en Power BI, usando Power Query.

Efectivamente, cuando se desarrolla un modelo de Machine Learning o Analisis Predictivo con Azure ML Studio, ademas de poner el modelo en produccion, Podemos usar las capacidades de Power BI para visualizar y analizar los datos de resultado que se producen despues de que el algoritmo procesa los input.

Azure ML Studio

Debe crear un modelo en Azure ML Studio y crear un servicio web para él.

¿El ejemplo tradicional en Predecir un pasajero en un barco Titanic va a sobrevivir o no?

Tenemos un conjunto de datos sobre pasajeros como su edad, género y clase de pasajeros, luego vamos a predecir si van a sobrevivir o no.

Abra Azure ML Studio y siga los pasos para crear un modelo para predecir esto. Navegue a Azure ML Studio.

A continuación, descargue el conjunto de datos para Titanic desde aquí

haga clic en la base de datos en Azure ML y cargue el conjunto de datos Titanic de su máquina local en Azure ML.

Luego importa desde tu PC local

Una vez cargados los datos, puede ver como se ha importado en la seccion de ‘DATASETS’ de Azure ML Studio

Una vez cargados los datos, debe crear un experiment, y para ello haga click en la seccion ‘EXPERIMENTS’ de Azure ML Studio

Azure ML Studio es un entorno grafico de bajo codigo, que funciona con ‘drag-and-drop’; es decir, debe seleccionar los modulos del menu de la izquierda y arrastrarlo a la zona de canvas, y conectar dichos modulos entre si, hasta crear un modelo predictivo.

 Vamos a seguir con nuestro modelo ‘Titanic’.

Ahora que temenos el conjunto de datos en el experiment se puede crear un modelo predictivo. Puede explorar el conjunto de datos haciendo clic en el nodo de salida y elegir la opción de visualización.

A continuación, vamos a seleccionar algunas de las columnas, no todas, no necesitamos el precio, la distancia, la cabina y algunos datos descriptivos. solo necesitamos la clase Sobrevivido, Edad, Sexo y Pasajero de las 11 columnas. Hay un módulo debajo de la pestaña de transformación en el lado izquierdo. 

haga clic en las Columnas seleccionadas en Conjunto de datos y en el lado derecho de la ventana, hay un panel de propiedades. Elija las cuatro columnas requeridas. 

Luego, necesitamos poner un modelo para el aprendizaje automático, en este experimento elijo un bosque de decisión de dos clases, que es un algoritmo que me ayuda a predecir si un pasajero sobrevivirá o no.

Una vez seleccionado el modelo, y en función del proceso de aprendizaje automático, debemos dividir los datos en datos de conjunto de prueba y entrenamiento.

Una vez dividios los datos en estos dos grupos, se debe entrenar el modo utilizando el modulo de Train Model. Arrastre y suelte este módulo en el área de prueba de Azure ML, luego conéctelo como se muestra en la siguiente imagen.

Por último, haga clic en el modulo Train Model en el lado derecho y elija la columna de la variable objetivo ‘Survived’.

Una vez entrenado el modelo, temenos que verificar la precision del mismo usando el modulo ‘Score Model’, tal como se muestra

Una vez creado el modelo, debemos ponerlo en marcha, y lo hacemos seleccionando ‘Run’

Y una vez que el modelo se ha puesto en marcha, es momento de ponerlo en produccion creando un ‘Web Service’ que posteriormente podemos llamar desde Power Query.

Al crear un Web Service, Azure automaticamente genera un API y un Key que podemos usar para llamar el servicio y pasar datos a traves del modelo desde cualquier ubicacion.

Creando un Web Service en Azure ML Studio

Una vez creado el modelo, lo ponemos en produccion seleccionando ‘SET UP WEB SERVICE’

Cuando el modelo se pone en produccion en Web Service, Azure genera un nodo de entrada y un nodo de salida, y respeta la arquitectura del flujo de modelizacion de los datos y la seleccion del modelo; tal como se muestra a continuacion

luego haga clic en la opción Deploy Webservice para implementar el servicio web que se usará para la predicción. Sin embargo, antes de hacer eso, necesitamos ajustar la configuracion los nodos de entrada y salida de datos.

La entrada debe ser unicamente por estas variables:

Age, Sex and PClass

El resultado debe ser: Score y Probability (Puntuación y Probabilidad)

Para hacer eso necesitamos cambiar un poco el experimento agregando la columna de selección para el nodo de entrada y salida. Para este objetivo, el diagrama final para el aprendizaje automático se ve como la imagen de abajo:

Una vez ajustado el modelo y diagrama, temenos que Volver a ejecutarlo -para que se implementen los ajustes- y Volver a ejecutar la opcion de ‘DEPLOY WEB SERVICE’

Pues ya temenos un web service para nuestro modelo de Titanic. Vaya hasta la seccion ‘WEB’ en el menu izquierdo, que le muestra los detalles de dicho WEB SERVICE

Ahora que es que se genero el API, y toda su identificacion en el entorno Azure ML Studio.

El primer parametron de nuestro interes es Workspace ID, que se encuentra en la seccion SETTINGS, dentro de ‘NAME’

Si nos movemos a ‘AUTHORIZATION TOKENS’, encontraremos el otro parametron que necesitamos: Primary Authentication Token

Por ultimo, el Service Name

En Power BI

Ahora que temenos el modelo creado en Azure ML Studio, importamos los mismos datos en Power BI, una vez importados, vamos al Query Editor, y abrimo el R Script, tal como se muetra a continuacion

Vamos a usar R para llamar el servicio web de Azure ML y aplicar los resultados sobre los datos cargados.

Tenemos que insertar en el codigo de R los 3 datos que identificamos en Azure ML Web service: Workspace ID, Primary Authentication Token, y Service Name.

Estos 3 datos, lo insertamos en el codigo siguiente:

wsid = "<Workspace ID from Azure environment >"

auth = "<Authentication from Azure environment>"

serviceName = "Titanic Video API [Predictive Exp.]"

 

library("AzureML")

 

ws <- workspace(wsid,auth)

 ds <- consume(services(ws, name = serviceName),dataset)

ds<-data.frame(ds,dataset)

#output<-data.frame(ds$Sentiment,ds$Score)

Y este codigo, lo pegamos en la Ventana de ‘Run R script’ del Query Editor, y presionamos OK.

Una vez ejecutado el codigo, podemos visualizar los resultados:

En nuestro caso, hemos usado un set de datos en un fichero CSV, pero estos mismo datos pueden estar en una base de datos, y lo interesante de este ejercicio es que cuando nuevos datos entran en el set de datos -por ende en Power BI-, este llama el web service de Azure ML Studio y ejecuta el modelo de manera automatica, por lo que podemos ver las predicciones de nuevos datos que van entrando al modelo.

Este blog ha sido desarrollado gracias a un articulo hecho por ‘Leila Etaati’, Microsoft MVP y miembro de RADACAD

0 comments
8 views

Permalink