En esta entrada continuaremos con la saga “en dos clicks”, en la entrada anterior explicamos como hacer análisis de sentimiento en dos clicks con Power BI dataflows y ahora es el turno de mostrar cómo crear modelos de machine learning de forma automática utilizando la nueva funcionalidad abierta a través de los Power BI Dataflows.
Primero que todo, vamos a conocer un poco el conjunto de datos con el cual vamos a trabajar:
El conjunto de datos contiene información sobre distintos clientes: nombre , puntuación crediticia, país de origen, sexo, edad y lo más importante, tiene una columna que nos dice si este cliente ha dejado nuestra compañía.
Dicho esto: ¿Qué vamos a intentar predecir? Como imaginarán intentaremos predecir si un usuario va a dejar nuestra compañía o no 🙂
Sin más preámbulos, vamos cargar estos datos dentro del servicio de Power BI utilizando DataFlows:
Creamos una nueva entidad que va a leer los datos desde un Azure SQL database y seleccionamos la tabla que contiene nuestro conjunto de datos:
si tienen dudas y quieren mas detalles sobre dataflows y como crearlos , pueden entrar en este artículo.
Bueno una vez creado nuestro Dataflow, vamos a limpiar el conjunto de datos para tener disponible las columnas que creemos que van a ser mas relevantes para nuestra predicción.
Básicamente voy a quitar las columnas RowNumer, el identificador de clientes y el nombre, ¿Por qué?: los identificadores son auto-numéricos que no nos aportan contexto sobre el valor a predecir, y el nombre: ¿Hay relación entre que el cliente se llame Julio y que se vaya?, podría pero no debería. 🙂
Otra operación que voy a aplicar es para todos los valores numéricos interesantes edad, rango salarial, ranking crediticio, etc… intentar crear rangos y asignarle una etiqueta para cada rango. ¿Por qué? de esta manera ayudaremos a los algoritmos a hacer su trabajo dándoles unas entradas (features) más amigables , obteniendo una tabla de casos que va a ser mas fácil de comprender y hacer evolucionar.
Si quieres aprender más en detalle las bases teóricas, desarrollar y optimizar desde un enfoque práctico procesos de ML & AI , te dejo este enlace donde un auténtico crack, te lo explica en profundidad.
Despúes de aplicar estas operaciones de labeling con unas columnas condicionales, el dataset estará listo para la MAGIA.
Cerramos, aplicamos y refrescamos el dataflow. Una vez creado en la parte superior, tenemos habilitado el menú de Machine Learning models. Aquí comienza la magia 🙂
seleccionamos y nos muestra las distintas operaciones disponibles, vamos a seguir el menú paso a paso que nos ofrece el servicio de Power BI.
Vamos a utilizar el menú que nos ofrece el servicio por defecto , al hacer click en “get started”, nos lleva a un menú en donde tenemos que seleccionar la entidad que vamos a utilizar como origen para el modelo y el campo que queremos predecir.
Hacemos click en siguiente y el servicio de Power BI internamente hace una llamada al servicio de Auto-Ml, este devuelve una recomendación del tipo de modelo a utilizar, en este caso nos recomienda utilizar un modelo binario porque el campo que queremos predecir tiene dos valores un cero o un uno, seleccionamos que queremos predecir el valor “1” (queremos saber la probabilidad que un cliente salga de nuestra compañía), vamos a dejar tipo de modelo recomendado por defecto y hacemos click en siguiente.
A continuación, seleccionamos las features (campos) que servirán como entrada a nuestro modelo, para intentar hacer la predicción de “Exited=1”. Internamente el servicio de Power BI hace llamadas a la API de Auto-ML para saber que campos tienen mas correlación (campos que influyen en que la variable a predecir tome un valor u otro) y nos hace una recomendación de campos a utilizar.
Dejamos los valores por defecto que nos recomiendan, y hacemos click en siguiente.
Finalmente solo tenemos que darle nombre a nuestro modelo y refrescar, el servicio de Power BI entrena ,prueba distintos modelos binarios y dependiendo de los resultados obtenidos, nos hace una recomendación de algoritmo a utilizar con este dataset para predecir si un cliente sale o no de nuestra compañía .