Novedades en la PowerPlatform reveladas en Microsoft Ignite 2019
16 diciembre, 2019
Blockchain. Aprende sobre esta tecnología de manera sencilla.
30 diciembre, 2019

Cada día más empresas utilizan la inteligencia artificial para la toma de decisiones corporativas. Los algoritmos de Machine Learning y redes neuronales ayudan a optimizar recursos, ajustar los precios de los artículos o a predecir el consumo eléctrico de una ciudad. Estos son algunos de los ejemplos más comunes.

Para las empresas, estos modelos son como una caja negra donde se meten unos datos y se recibe un número que utiliza el experto para tomar una decisión. Esto supone dejar el futuro de tu empresa en manos de lo que el modelo dice, pero muchas veces es difícil confiar en que un algoritmo pueda llegar a tomar las decisiones correctas sin saber muy bien que operaciones hace el modelo internamente para dar un resultado.

En ocasiones, es bueno no confiar, ya que un modelo podría estar teniendo en cuenta ciertas variables que realmente no deberían influir en la salida, o a lo mejor la distribución de los pesos de las variables no es la correcta. Si una salida del modelo está basada al 90% por lo que dice una sola variable probablemente no sea un buen modelo, a pesar de que la precisión sea alta.

Si hubiera una herramienta con la que fuera posible conocer el comportamiento interno de un algoritmo, se podrían mejorar muchos los modelos de machine learning y evitar estos tipos de problemas. Pues bien, estamos de suerte, Microsoft Azure ha desarrollado una herramienta que permite explicar el comportamiento de un modelo para que los científicos de datos puedan tener una visión más global de lo que está pasando.

 

Creación de un modelo

En el siguiente ejemplo se ha utilizado la herramienta de Azure Machine Learning Services para la creación de un modelo para luego poder obtener su explicación. Esta herramienta permite probar diferentes hiperparámetros para ajustar al máximo el modelo y poder seleccionar el mejor para las predicciones.

En este ejemplo se trabajará la clasificación binaria con la información tomada por un banco a partir de una campaña de marketing en la que se contactó a personas para que contrataran un depósito a plazo fijo, el objetivo de un modelo es predecir si un nuevo cliente contratará este producto; para la creación del modelo, se tienen en cuenta diferentes variables personales como la edad o el nivel educativo, diferentes indicadores sociales y económicos, información histórica del cliente como por ejemplo si ya ha sido contactado anteriormente y cuál fue el resultado en ese momento.

Una vez se ha obtenido un buen modelo, Azure Machine Learning Services permite obtener una explicación sobre dichos modelos, esta explicación es creado por un “explainer”. Este “explainer” es otro algoritmo que utiliza la técnica de ingeniería inversa para conocer el comportamiento del modelo y permite entender la importancia de cada una de las variables, la relación entre ellas o poder analizar exactamente en que se ha basado para dar la predicción de un solo individuo.

Ilustración 1. Ejemplo Global ImportanceIlustración 1. Ejemplo Global Importance

Ilustración 2 Ejemplo Summary Importance.Ilustración 2 Ejemplo Summary Importance.

Para nuestro ejemplo, en la Ilustración 1 podemos ver como se reparte el peso de las variables. Vemos como las variables “nr.employed” (empleados del banco) y “cons.conf.idx” (ratio de confianza del cliente) son las más importantes, seguidas por “job” (tipo de trabajo), “marital” (estado civil), “pdays” (última vez contactado en días) y “housing” (si el cliente tiene hipoteca o no).

En la Ilustración 2, vemos la importancia que tiene cada una de las variables para dar una salida positiva o negativa para cada muestra. Se puede ver que valores altos para la variable “nr.employed” afectan de forma positiva a que el cliente no contrate el producto, es decir, cuando el banco tiene muchos trabajadores (color azul valor bajo, colo rojo valor alto) es probable que el cliente no contrate este producto, Por otro lado podemos ver como el día de la semana en el que se contactó al cliente (“day_of_week”) no aporta mucho a la hora de predecir una clase, ya que los valores bajos y altos están mezclado y no hay una diferenciación clara entre los dos colores.

Ilustración 3 Ejemplo Local Importance.

Ilustración 3 Ejemplo Local Importance.

Ilustración 4 Ejemplo Exploration Perturbation.

Ilustración 4 Ejemplo Exploration Perturbation.

 

Como se ha comentado antes, la herramienta te permite hacer un estudio profundo para una sola muestra, por ejemplo, seleccionando un punto en la gráfica anterior que correspondo a un cliente, en la Ilustración 3 se muestra las variables más importantes para ese cliente; a diferencia de la Ilustración 1, se puede ver que las variables más importantes no son las mismas y además te permite ver si una variable afecta de forma positiva o negativa.

Para un estudio más profundo, en la Ilustración 4, tenemos los datos para el cliente y la predicción base obtenida por el modelo, en este caso tenemos una probabilidad de 0,60 de que el cliente contrate el producto. En este punto, podemos modificar los valores de cada variable para conocer cómo afectaría un valor a la predicción final. En este caso si modificamos el valor de los días desde la última vez que se contactó a 999, vemos como la probabilidad cambia a 0,693 de que el cliente no contrate el producto. Esto tiene sentido porque si hay un segundo contacto con el cliente, es porque este cliente muestra cierto interés para la contratación del producto. Por otro lado, si un cliente no ha contactado nunca, seguramente no tenga nada de interés en contratar algo nuevo.

Ilustración 5 Ejemplo ICE.

Ilustración 5 Ejemplo ICE.

Por último, se puede ver en la Ilustración 5 una gráfica con la probabilidad de cada clase modificando el valor de la variable “pdays” y ver cómo afecta al modelo; es interesante ver en qué punto se cruzan ambas líneas, ya que indica, para clientes similares, en qué momento deja de ser interesante contactar con él.

Series temporales

La herramienta también está disponible para la predicción de series temporales, vamos a ver un pequeño ejemplo con un conjunto de datos sobre gasto energético en EE.UU. Los datos contienen información sobre el consumo para cada hora.

Ilustración 6 Global Importance Time Series.

Ilustración 6 Global Importance Time Series.

Ilustración 7 Exploration-Explanation Time Series.

Ilustración 7 Exploration-Explanation Time Series.

Ilustración 8 Summary Importance Time Series.

Ilustración 8 Summary Importance Time Series.

Durante la creación del modelo se crean variables nuevas en función de la fecha que ayuda al modelo a obtener mejores predicciones. La Ilustración 6 muestra qué peso tienen las variables obtenidas mediante el procesamiento.

En la Ilustración 7 se muestra una gráfica sobre la importancia de la variable “hour” en la predicción. De esta gráfica se pueden obtener dos conclusiones:

  • Valores bajos para la variable “hour” (durante la madrugada) afectan negativamente a la predicción (los negocios no están abierto y la gente duerme) y a partir de las 8-9 afecta positivamente a la predicción.
  • Fijándonos en valores altos de los puntos, que representan días de la semana, se puede ver que para valores altos (puntos rojos,fin de semana), la predicción es más alta por la noche/madrugada que durante la semana (puntos azules y morados) y por el día son más bajos que entre semana.

Por último, en la Ilustración 8 se muestra lo mismo que la anterior, pero para todas las variables. Por ejemplo, valores altos para la variable “wday” hacen que la predicción sea más baja que para valores medios o bajos. También tiene sentido, ya que los valores altos corresponden con fines de semana, en los cuales las empresas cierran y el consumo energético se centra solamente en las casas y algún comercio.

 

Conclusiones

Con esta nueva forma de poder analizar el comportamiento de los modelos los científicos de datos seremos capaces de obtener mejores modelos con mayor facilidad.

Para una empresa que consuma estos tipos de modelos, el poder explicarlos genera un aporte de valor de gran tamaño, ya que la confianza en los modelos de machine learning crecerá y no habrá tanto miedo en apoyarse en la Inteligencia Artificial para llevar a cabo la toma de decisiones importantes para tu empresa.

En Kabel confiamos en la Inteligencia Artificial y estamos luchando para que todos nuestros clientes confíen de la misma manera para que todos podemos beneficiarnos del avance de la tecnología.

Autores

Alberto Armijo

José Alberto González

 

 

También podéis seguirnos en Twitter, LinkedIn y Facebook.


Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

Compártelo: Share on FacebookTweet about this on TwitterShare on LinkedInPin on Pinterest

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

NEWSLETTER