LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
Paloma Recuero de los Santos Drones e IA para detectar síntomas de COVID19 La Universidad de Australia de Sur, UniSA ha diseñado una tecnología pionera en el mundo que combina ingeniería, drones, cámaras e inteligencia artificial para monitorizar a distancia constantes vitales....
Sergio Sancho Azcoitia Plataformas y librerías para comenzar en el mundo del Machine Learning Desde los comienzos de la IA las principales empresas tecnológicas han empleado sus técnicas de aprendizaje con juegos clásicos como el ajedrez o el Go (juego tradicional chino) para...
María Cascajo Sastre ¿Qué es Internet de las Cosas Médicas y qué beneficios tiene? La mayoría de vosotros ya sabréis lo que es IoT y cómo la analítica de los datos que se extraen nos ayuda a hacer nuestro día más fácil. Este...
LUCA Planificando la ubicación de un site de retail con los datos Una de las decisiones de negocio clave para cualquier marca es decidir dónde “establecer su tienda”. Esto implica la necesidad de conocer muy bien a los consumidores y su...
Alicia Martín Domingos El futuro de la telelectura de contadores de agua más allá del COVID19. A estas alturas del año y después de que la tercera ola del COVID19 esté en boca de todos, ya no es ninguna sorpresa decir que la pandemia ha...
Ana Zamora LUCA Tourism en el Festival del Globo en México El Festival Internacional del Globo (FIG) reúne cada año más de 200 globos que recorren el cielo del Parque Metropolitano de León, Guanajuato, en un espectáculo maravilloso. El evento es...
LUCA LUCA Fleet, ¿qué datos se esconden tras los vehículos de una flota? Contenido creado por Raquel Crespo Crisenti, Pedro A. Baigorri, María Luisa Rivero y Marta García Moreno, miembros del equipo de producto de LUCA. Son muchos los datos que se generan cada...
Paloma Recuero de los Santos Video Post #23: ¿Cómo son tus datos? Estructurados, semi-estructurados, no estructurados… ¿Cómo son tus datos? En este videopost vamos a explicar la diferencia entre los distintos tipos de datos con los que trabajamos en Aprendizaje Automático...
LUCA LUCA Talk: Open Data para entender la transformación de los barrios. Cada vez es más común leer noticias y oir hablar sobre gentrificación de los barrios de las ciudades modernas. En este webinar tratamos este tema de actualidad que afecta...
LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
LUCA LUCA Talk: Comunicación inteligente y Big Data en el punto de venta: Loterías y Apuestas del Estado FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 10 de febrero, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: El conocimiento de los clientes y su comportamiento de...
Cómo interpretar la matriz de confusión: ejemplo prácticoPaloma Recuero de los Santos 9 septiembre, 2020 La matriz de confusión es una herramienta muy útil para valorar cómo de bueno es un modelo clasificación basado en aprendizaje automático. En particular, sirve para mostrar de forma explícita cuándo una clase es confundida con otra, lo cual nos, permite trabajar de forma separada con distintos tipos de error. En un post anterior de nuestro blog, explicamos detalladamente el concepto de matriz de confusión y sus métricas asociadas. Hoy planteamos un sencillo ejemplo de apliación. Machine Learning a tu alcance: La matriz de confusión Recordando nuestro “experimento” de predicción de infidelidad Rescatamos para este post uno de nuestros experimentos anteriores. En concreto el de hicimos para explicar el algoritmo de regresión logística. Especial San Valentin: ¿Podemos predecir la infidelidad con Inteligencia Artificial? Si recordamos, trabajamos con el dataset “affairs”, basado en en una encuesta realizada por la revista Redbook en 1974, en la que se preguntaba a mujeres casadas por sus aventuras extramaritales. Este dataset, que cargamos desde la librería Staatsmodel, constaba de 6366 observaciones con 9 variables, de tipo “valoración de su matrimonio”, “años de casada”, “número de hijos”, “nivel de estudios” etc. Figura 1: Descripción del dataset affairs Objetivo del modelo El objetivo era crear un modelo que predijera si un individuo (en este caso, mujer) iba a ser “fiel” o “infiel”, basándose en el valor de esas 9 variables para el nuevo caso y en lo “aprendido” por el modelo a partir de los datos de entrenamiento (los datos de la encuesta). Regresión logística En este ejemplo, aplicamos el modelo de regresión logística de scikit-learn. Se trata de un modelo de probabilidad lineal, en el que la probabilidad condicionada es función lineal de los valores de las variables de entrada. Por tanto, obtenemos la probabilidad de que la variable dependiente tenga un valor categórico u otro (en nuestro ejemplo o “infidelity”= 0, o “infidelity”= 1), en función de los valores de las variables de entrada. Evaluación del modelo Llegado el momento de evaluar el modelo, es cuando vamos a echar mano de la matriz de confusión. Para ello, dividimos el dataset en dos partes. Dejamos un 75% de los datos como datos de entrenamiento (train), y reservamos el 25% restando como datos de prueba (test). A continuación, entrenamos el modelo de nuevo, pero ahora sólo con los datos de entrenamiento. Datos de entrenamiento vs datos de test En el siguiente paso, lo aplicamos a los datos reservados como “test”, y ya evaluamos su rendimiento, calculando la matriz de confusión y las métricas exactitud (Accurary) y precisión (Precision). Figura 2: Cálculo de la matriz de confusión y métricas Para mayor claridad, visualizamos la matriz de confusión en forma de mapa de calor. Figura 3: Matriz de confusión en forma de mapa de calor (ampliar) Matriz de confusión Merece la pena pararnos un momento a recordar el significado de la matriz de confusión y sus métricas asociadas, antes de pasar a interpretarla en nuestro ejemplo. Figura 4: Matriz de confusión y métricas asociadas (ampliar) Los valores de la diagonal principal a=993 y d=176 se corresponden con los valores estimados de forma correcta por el modelo, tanto los verdaderos positivos_ TP(d), como los verdaderos negativos_TN (a). La otra diagonal, por tanto, representa los casos en los que el modelo “se ha equivocado (c=316 falsos negativos_FN, b=107 falsos positivos_FP). Exactitud Si recordamos, la exactitud (o “accuracy“) representa el porcentaje de predicciones correctas frente al total. Por tanto, es el cociente entre los casos bien clasificados por el modelo (verdaderos positivos y verdaderos negativos, es decir, los valores en la diagonal de la matriz de confusión), y la suma de todos los casos. Sin embargo, cuando un conjunto de datos es poco equilibrado, no es una métrica útil. Por ejemplo, si lo que intentamos predecir es una enfermedad rara, y nuestro algoritmo clasifica a todos los individuos como sanos, podría ser muy preciso (incluso un 99%), pero también, totalmente inútil. Por ello, en estos casos se suele recurrir a otras métricas, como la sensibilidad (o recall), que representa la habilidad del modelo de detectar los casos relevantes, y que veremos un poco más adelante. (El valor obtenido para este modelo es de un 73%. No es maravilloso, pero podemos considerarlo aceptable). Para calcularlo a mano, a partir de la matriz de confusión: (993+176)/(993+176+107+316)=1169/1592= 0,73—73% Precisión La precisión, (o“precision”) se refiere a lo cerca que está el resultado de una predicción del valor verdadero. Por tanto, es el cociente entre los casos positivos bien clasificados por el modelo y el total de predicciones positivas. Para calcularlo a mano, a partir de la matriz de confusión: (176)/(176+107)= 0,62— 62% El valor obtenido para este modelo es de un 62%. Por tanto, nuestro modelo es más preciso que exacto. Sigamos con otras métricas. Sensibilidad, exhaustividad La sensibilidad (o recall) representa la tasa de verdaderos positivos (True Positive Rate) ó TP. Es la proporción entre los casos positivos bien clasificados por el modelo, respecto al total de positivos. Para calcularlo en este caso: 176/(316+176)=0,35— 35% Representa, como hemos dicho antes, la habilidad del modelo de detectar los casos relevantes. Un 35% es claramente un valor muy malo para una métrica. Podemos decir que nuestro algoritmo de clasificación es poco sensible, “se le escapan” muchos positivos. Especifidad La especificidad, por su parte, es la tasa de verdaderos negativos, (“true negative rate”)o TN. Es la proporción entre los casos negativos bien clasificados por el modelo, respecto al total de negativos. Para calcularlo a mano, a partir de la matriz de confusión: 993/(993+107)=0,90 —90% En este caso, la especificad tiene un valor muy bueno. Esto significa que su capacidad de discriminar los casos negativos es muy buena. O lo que es lo mismo, es difícil obtener falsos positivos. ¿Qué métrica elegir? La conveniencia de usar una métrica otra como medida del estimador dependerá de cada caso en particular y, en concreto, del “coste” asociado a cada error de clasificación del algoritmo. En este ejemplo, la sensibilidad=0,35 y la especifidad=0,90. Por tanto, este modelo mucho más específico que sensible. Esta es la situación que nos interesa cuando nuestro objetivo es evitar a toda costa los falsos positivos. Un ejemplo típico sería una prueba de dopping en un deportista. Si un falso positivo significa expulsarle de la competición injustamente, debemos evitar esta situación. En nuestro ejemplo sobre infidelidad, podemos decir que nuestro modelo evitaría “acusaciones injustas” 😉 Si lo que nos interesa es identificar los verdaderos negativos, (evitar falsos positivos) debemos elegir especifidad alta. Por el contrario, si las “falsas alarmas” no nos preocupan, y lo que queremos evitar son los falsos negativos, nos interesa una mayor sensibilidad o recall. Por ejemplo, no nos importa un falso positivo en una prueba de diabetes, ya que, indudablemente, la prueba se repetirá. Sin embargo, no nos interesa que una persona diabética no diagnosticada, no acceda rápidamente al tratamiento adecuado debido a un falso negativo. Si lo que nos interesa es evitar falsos negativos, debemos elegir sensibilidad alta. Conclusión Este pequeño experimento, evidentemente, no tiene mayor utilidad que la de ayudarnos a aprender cómo funciona el algoritmo de regresión logística o cómo interpretar la matriz de confusión. Un modelo no vale nada, si los datos sobre los que se ha entrenado no tienen ni el volumen ni la calidad suficientes (como en este ejemplo). Sin embargo, como vemos, la mejor manera de aprender es…¡haciendo! Para ello, no te pierdas nuestra colección de tutoriales sobre IA y Big Data. Model Audit Y, volviendo a los modelos analíticos reales: Una vez construido y puesto en producción un modelo que resuelve un problema específico, la calidad de las predicciones se devalúa con el paso del tiempo. Este fenómeno es inevitable debido al continuo cambio que sufren los datos de entrada, debido a cambios en el comportamiento de los usuarios, cambios en el proceso de adquisición de los datos, o cambios en el entorno asociado al problema. Por ello, es necesario monitorizar y auditar continuamente el rendimiento de cualquier modelo analítico en el tiempo y tomar medidas adecuadas de mantenimiento de cara a la extracción de valor. Model Audit es un servicio de LUCA orientado a la auditoria de modelos analíticos de Machine Learning, que proporciona una visión 360 del rendimiento que tiene un modelo analítico con el objetivo de ofrecer recomendaciones personalizadas para incrementar la extracción de valor en el negocio. Para mantenerte al día con LUCA visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn y YouTube. Python para todos: 5 formas de generar datos aleatoriosTu primer proyecto IoT Cloud (I): Tutorial para solución E2E con ESP32 y AWS IoT
Fran Ramírez Las matemáticas del Machine Learning: Números aleatorios y dónde encontrarlos (II) En el artículo anterior mencionamos la importancia que tienen en nuestro día a día los números aleatorios, utilizados para realizar cualquier tipo de simulación y fundamentales a la hora...
LUCA Talk: La importancia de la seguridad y aspectos legales en el gobierno de los datos. FORMATO: Charla de 30 minutos + Q&A de 10 minutosCUÁNDO: 3 de marzo, 16:00 h (CET)CÓMO: Inscripción gratuita en eventbrite SOBRE QUÉ: Desde la Comisión Europea se está definiendo y escribiendo...
LUCA La teoría Gestalt en Gobierno del Dato Al igual que un dato por si sólo no vale nada si no se le dota de información, conocimiento y se usa para un propósito, “Gobernar el dato por...
Paloma Recuero de los Santos Drones e IA para detectar síntomas de COVID19 La Universidad de Australia de Sur, UniSA ha diseñado una tecnología pionera en el mundo que combina ingeniería, drones, cámaras e inteligencia artificial para monitorizar a distancia constantes vitales....
LUCA Planificando la ubicación de un site de retail con los datos Una de las decisiones de negocio clave para cualquier marca es decidir dónde “establecer su tienda”. Esto implica la necesidad de conocer muy bien a los consumidores y su...
Paloma Recuero de los Santos Python para todos: Matplotlib y la curva corazón Hoy os proponemos aprender a realizar visualizaciones sencillas con Python. Y, como siempre nos gusta hacer un guiño a San Valentín (reconozcámoslo, es muy cursi, pero tiene su gracia...
Hola. En la descripción de la precisión debería decir algo como: “…Por tanto, es el cociente entre los casos positivos bien clasificados por el modelo y el total de predicciones positivas….” Es lo que corresponde con la fórmula. Gracias por el artículo, Un saludo, Pablo Responder