MÉTODOS AVANZADOS EN APRENDIZAJE ARTIFICIAL: TEORÍA Y APLICACIONES A PROBLEMAS DE PREDICCIÓN Manuel Sánchez-Montañés Luis Lago Ana González Escuela Politécnica Superior Universidad Autónoma de Madrid Aprendizaje APRENDIZAJE AUTOMATICO: ¿ Qué significa aprender? No hay una única definición. Es un proceso de inducción del conocimiento. ¿Por qué automático? Problemas demasiados complicados para resolverlos a mano: Grandes bases de datos Alta dimensionalidad Objetivo: Crear programas capaces de generalizar comportamientos a partir de una información, por lo general no estructurada, suministrada en forma de ejemplos. Aprendizaje Razonamiento Lógico: Deducción versus Inducción. • Deducción: aplicar un conocimiento general que ya teníamos a casos específicos: “Todos los hombres son mortales. Sócrates es hombre. Luego Sócrates es mortal.” • Inducción: • • • A partir de una observación o varias observaciones, se puede reconocer un patrón. Una vez definido el patrón, se convierte en una hipótesis provisional. Una vez la hipótesis es definida y demostrada se convierte en una teoría. • Observación: Thor, Lasy y Luna son perros • Patrón: tienen cuatro patas • Hipótesis: Los perros tienen cuatro patas, induzco que perro --‐> cuatro patas. Ahora me dicen que Niebla es un perro, y con la regla que he aprendido infiero que Niebla tiene cuatro patas. Aprendizaje • Aprender está relacionado con generalizar, con saber reaccionar a casos nuevos: predecir/inferir. Para introducir lo que vamos a utilizar a lo largo del curso necesitaremos definir tres conceptos: Agente Entorno Función de coste Aprendizaje Agente y entorno: Consideremos un sistema o agente A que interacciona con un entorno E. El agente es una entidad capaz de percibir el entorno y de actuar sobre él. Ejemplos: - un robot que mueve objetos en una fábrica - un programa de ordenador que clasifica el correo electrónico como “spam” o “no spam” - un alumno que interacciona con su profesor Los agentes tienen un punto de vista incompleto, pero esto no limita que se halle una solución (aproximada) Búsqueda de una solución completa y consistente. Aprendizaje Función de coste, f(A, E): - Es una función que depende del error entre la salida real del sistema que se pretende modelar (entorno) y la salida del núcleo estimador. Mide el grado de confianza en la interacción del agente con su entorno ¿Cómo de bueno es el resultado obtenido? Medición: Resultado numérico Ejemplos: - energía total que necesita el robot para transportar los objetos - número de fallos que comete el ordenador clasificando los correos - puntuación media que obtiene el alumno en sus exámenes Aprendizaje ¿Qué significa entonces aprender ? Decimos que el agente A aprende si es capaz de rectificar su comportamiento de tal forma que la función de coste f(A, E) mejora con el paso del tiempo hasta conseguir (si es posible) llegar al óptimo. Ejemplos: el robot consume menos energía cada día moviendo el mismo número de objetos el programa clasifica cada vez mejor el correo electrónico el alumno saca cada vez mejores notas (“saber” versus “aprender”) Aprendizaje Aprendizaje: siempre hay una función de coste que se debe optimizar. El aprendizaje consiste en la búsqueda de la hipótesis óptima que maximiza (o minimiza) esta función. Ejemplos: Robot adaptativo que busca minimizar la energía invertida en el transporte de objetos Física, Química, ...: Búsqueda de teorías científicas que: minimicen la complejidad de la teoría (número de parámetros) y maximicen el número de observaciones explicadas Estudiante: minimizar esfuerzo necesario para aprobar exámenes maximizar puntuación obtenida en exámenes maximizar cantidad de conocimiento obtenido maximizar otras cantidades no relacionadas con estas Aprendizaje Clasificación principal de los tipos de aprendizaje Nos basamos en cómo obtiene el agente la información adicional para aprender. Aprendizaje no supervisado: el agente no necesita información adicional Ejemplo: nuestro robot que minimiza la energía consumida Aprendizaje supervisado: hay un “supervisor” que le da información al agente sobre lo que debe hacer. Ejemplo: nuestro programa que clasifica el mail como “spam” o “no spam” Los ejemplos etiquetados (spam/no spam) son datos del pasado. Aprendizaje por refuerzo: hay un supervisor que da información al agente sobre si lo está haciendo bien o mal, pero no exactamente lo que debe hacer. Ejemplo: profesor de matemáticas que no da clases y sólo examina Aprendizaje ¿Qué es aprendizaje automático? Desarrollo de Algoritmos Explotación del producto final Base de datos Entrenamiento Respuesta Nuevos datos Terminología Términos similares: Aprendizaje Automático o “Machine Learning”, Reconocimiento de patrones o “Pattern Recognition” Minería de datos o “Data Mining” Data Mining: extracción de conocimiento oculto en grandes volúmenes de datos; ”minería” en los datos con el objetivo de identificar patrones y establecer relaciones Terminología: Atributos y patrones Atributo (o Variable o Característica o Descriptor) Es cualquier aspecto distintivo, cualidad o característica Los atributos pueden ser: • nominales (por ej., color: blanco, rojo, amarillo, verde, azul, …), • numéricos (por ej., altura –medida en metros-). Patrones (o Casos o Instancias) Colección (posiblemente ordenada y estructurada) de descriptores (características) que representan un objeto. Importante: patrones que describen objetos de una misma clase, presentan características similares. Terminología: Atributos y patrones Cada patrón está representado por un conjunto de atributos un vector columna de d dimensiones llamado vector de atributos El espacio de atributos es el espacio de d dimensiones definido por este vector Los patrones se representan como puntos del espacio de atributos Vector de atributos Espacio de atributos Terminología: Atributos y patrones ¿ Qué es un “buen” vector de atributos ? La calidad de un vector de atributos está relacionada con su capacidad de discriminar ejemplos de clases diferentes: • Los atributos de ejemplos de la misma clase deberían tener valores similares •Los atributos de ejemplos de diferentes clases deberían tener valores diferentes Atributos “buenos”: Significativamente diferenciados Atributos “malos” Terminología: Atributos y patrones Otras propiedades relacionadas con los atributos: Separabilidad lineal Separabilidad no lineal Atributos altamente correlacionados Multi-modal Áreas relacionadas y aplicaciones del reconocimiento de patrones Áreas relacionadas - Procesamiento adaptativo de señal - “Machine Learning” - Redes neuronales artificiales - Robótica y Visión - Ciencias Cognitivas - Estadística Matemática - Optimización No Lineal - Análisis exploratorio de datos (“Data Mining”) - Sistemas genéticos, sistemas difusos (Computación Evolutiva) - Teoría de la Detección, Teoría de la Estimación - Lenguajes formales - Modelado estructural -Neurociencia Computacional -Bioinformática: Genómica y Proteómica -Biomedicina Áreas relacionadas y aplicaciones del reconocimiento de patrones Aplicaciones - Pre-Procesamiento de Imágenes / Segmentación - Visión automática - Reconocimiento del habla - Reconocimiento automático de objetivos militares - Reconocimiento óptico de caracteres - Análisis de Seismos - Diagnóstico de pacientes / máquinas - Identificación de huellas digitales - Inspección Industrial - Predicción en entornos Financieros - Detección automática de fraudes en tarjetas de crédito - Diagnóstico médico - Análisis de señales ECG y EEG Áreas relacionadas y aplicaciones del reconocimiento de patrones - Visión automática - Inspección visual - Detección de enemigos - Reconocimiento de caracteres (OCR) - Ordenamiento automático de cartas - Procesamiento automático de cheques bancarios - Diagnóstico asistido por ordenador - Análisis de imágenes médicas (RMN) - Análisis de señales (EEG, ECG) - Diseñadas para ayudar (no sustituir) a los médicos Reconocimiento del habla - Interacción ordenador-humano, acceso universal: El micrófono graba una señal acústica del habla, la señal es clasificada en fonemas y/o palabras Áreas relacionadas y aplicaciones del reconocimiento de patrones # ejemplos 105 Ecology Market Analysis 104 Text Categorization 10 System diagnosis 103 102 Machine Vision 10 OCR HWR Bioinformatics 102 103 104 105 # variables Componentes de un sistema de reconocimiento de patrones Un sistema de clasificación de patrones contiene: - Sensor Adquisición de la base de datos - Mecanismo de preprocesamiento - Mecanismo de reducción de la dimensionalidad - Algoritmo de aprendizaje - Mecanismos de validación con un conjunto de ejemplos ya clasificados (conjunto de test) Sistemas de medición Preprocesamiento Reducción de la dimensionalidad Predicción Selección del modelo el “mundo real” Resultados del análisis Sensores Cámaras Bases de datos Selección/proyección de características Eliminación del ruido Extracción de características Normalización Validación cruzada Bootstrap Clasificación Regresión Clustering Descripción Componentes de un sistema de reconocimiento de patrones Sistemas de medición PreReducción de la procesamiento dimensionalidad Predicción Selección del modelo el “mundo real” Resultados del análisis Entorno Sensores Cámaras Bases de datos Selección/proyección de características Eliminación del ruido Extracción de características Normalización Valores perdidos (missing values) Validación cruzada Bootstrap Clasificación Regresión Clustering Descripción Tipos de problemas de predicción Clasificación - El problema consiste en asignar una clase a un objeto - La salida del sistema es una “etiqueta” Ejemplo: clasificar un producto como “bueno” o “malo” en un test de control de calidad Regresión - Generalización del problema de clasificación - La salida del sistema es un número/vector real Ejemplo: predecir la temperatura que habrá la semana que viene Clustering (agrupamiento) - El problema de organizar objetos en grupos que tengan sentido - El sistema halla una agrupación de objetos que puede ser jerárquica Ejemplo: organizar plantas en una taxonomía de especies Descripción - El problema de representar un objeto en términos de una serie de primitivas - El sistema produce una descripción estructural o lingüística Ejemplo: etiquetar una señal ECG en términos de complejos P, QRS y T Aprendizaje Supervisado: Clasificadores La tarea de un clasificador es separar el espacio de atributos en regiones de decisión, cada una con una “etiqueta” (clase asignada) - Los límites entre diferentes regiones se llaman fronteras de decisión - La clasificación del vector de atributos x consiste en determinar a qué región de decisión pertenece, y asignarle la clase correspondiente Clasificador con fronteras lineales Clasificador con fronteras no lineales Aprendizaje supervisado: le damos ejemplos al sistema acerca de qué debe hacer exactamente en esos casos. Queremos que el sistema aprenda de ellos a generalizar situaciones nuevas. Aprendizaje Supervisado: Clasificadores Frontera de decisión lineal x2 0.5 0.4 0.3 0.2 0.1 X3 x3 0 -0.1 -0.2 -0.3 -0.4 x1 -0.5 -0.5 0 xX22 0.5 0.5 0 xX11 -0.5 Aprendizaje Supervisado: Clasificadores Frontera de decisión no lineal x2 0.5 Hs.7780 x3 0 -0.5 0.5 0.5 0 0 x1 x Hs.234680 2 -0.5 -0.5 Hs.128749 x1 Aprendizaje Supervisado: Clasificadores El clasificador se puede ver como un conjunto de funciones discriminantes El clasificador etiqueta el vector x como clase ωi si gi(x) > gj(x) para todo j ≠ i Aprendizaje no Supervisado: Clustering •¿Cuántos grupos/clusters? •¿Cómo sabemos que un determinado agrupamiento/clustering es bueno? Aprendizaje no Supervisado: Clustering Queremos un sistema que reconozca automáticamente las letras L, P, O, E, Q - Determinar un número suficiente de atributos - Diseñar un clasificador basado en árboles de decisión Aprendizaje no Supervisado: Clustering DENDROGRAMA EN BIOLOGIA Aprendizaje no Supervisado: Clustering DENDROGRAMA EN BIOLOGIA- Bi-clustering Ciclo de diseño de un sistema de reconocimiento de patrones (1) Obtención de datos • Probablemente es el componente que requiere más tiempo de un proyecto de RP • ¿Cuántos ejemplos son suficientes ? Preprocesamiento de los datos • Señal/Ruido • “Missing Values” • “Outliers” • Normalización de los datos Elección de los atributos • Es crítico para el éxito en un problema Reconocimiento de Patrones • Requiere un conocimiento básico del problema a priori Elección del modelo • Diferentes tipos de modelos • Diferentes parámetros con los que jugar Ciclo de diseño de un sistema de reconocimiento de patrones (2) Entrenamiento • Dado un conjunto de atributos y un modelo “en blanco”, adaptar el modelo para explicar los datos • Aprendizajes supervisado, no supervisado, por refuerzo Evaluación • ¿ Cómo es de bueno el modelo entrenado ? • Sobreajuste (“overfitting”) versus generalización Ciclo de diseño de un sistema de reconocimiento de patrones (3) Consideremos el siguiente problema: • Una empresa pesquera quiere automatizar el proceso de separación de los peces, de acuerdo con la especie (salmón o lubina) • El sistema de automatización consiste en: - Una cinta de transporte para el pescado recogido en el mar - Dos cintas de transporte para los peces separados (salmón y lubina) - Un brazo mecánico que coge los peces de la cinta de entrada y los lleva a una de las dos cintas de salida - Un sistema de visión con una cámara CCD - Un ordenador que analiza las imágenes, toma una decisión y controla el brazo mecánico hacia una u otra cinta De [Duda, Hart y Stork, 2001] Ciclo de diseño de un sistema de reconocimiento de patrones (4) Sensor - El sistema de visión captura una imagen de cada pez que entra en el área de separación Preprocesamiento - Algoritmos de procesamiento de imágenes - Ajustes de niveles medios de intensidad - Segmentación para separar el pez del fondo (cinta, suelo, …) Extracción de características - Sabemos que en promedio la lubina es más grande que el salmón - Estimamos la longitud del pez a partir de la imagen segmentada Ciclo de diseño de un sistema de reconocimiento de patrones (5) Clasificación - Reunimos un conjunto de ejemplos de ambas especies - Calculamos la distribución de longitudes para ambas clases - Determinamos una frontera de decisión (umbral) que minimice el error de clasificación - Estimamos la probabilidad de error obteniendo un resultado desalentador del 40% ¿ Qué hacemos ahora ? Ciclo de diseño de un sistema de reconocimiento de patrones (6) Mejorando el rendimiento de nuestro sistema de Reconocimiento de Patrones - Nos piden que alcancemos una tasa de reconocimiento del 95% - Intentar añadir otros atributos: • Ancho • área, • posición de los ojos respecto a la boca, • … Estos atributos no contienen información discriminatoria - Finalmente encontramos un buen atributo: la intensidad media de las escamas Ciclo de diseño de un sistema de reconocimiento de patrones (7) - Combinamos longitud e intensidad media de las escamas para mejorar la separabilidad de las clases - Calculamos una función discriminante lineal para separar las dos clases, obteniendo una tasa de clasificación correcta del 95.7% Ciclo de diseño de un sistema de reconocimiento de patrones (8) Riesgo versus Tasa de clasificación - Nuestro clasificador lineal fue diseñado para minimizar el error global de clasificación - ¿Es ésta la mejor función objetivo para nuestra industria pesquera? • El riesgo de clasificar un salmón como lubina es: un consumidor final se encuentra un sabroso salmón habiendo comprado lubina • El riesgo de clasificar una lubina como salmón es: un consumidor final enfadado ya que le han vendido lubina al precio de salmón - Intuitivamente, podríamos ajustar la frontera de decisión para minimizar el riesgo Satisfacer al cliente Ciclo de diseño de un sistema de reconocimiento de patrones (9) Ciclo de diseño de un sistema de reconocimiento de patrones (10) El problema de la generalización - La tasa de reconocimiento de nuestro clasificador lineal (95.7%) se ajustaba a las especificaciones, pero pensamos que podemos mejorar esta tasa - Así que diseñamos una red neuronal artificial con 5 capas ocultas, una combinación de funciones de activación logísticas e hiperbólicas, la entrenamos usando el algoritmo de Levenberg-Marquadt y obtenemos una tasa impresionante del 99.9975% con la siguiente frontera de decisión: Ciclo de diseño de un sistema de reconocimiento de patrones (11) - Contentos con nuestro clasificador, lo integramos en el sistema de la fábrica - Después de un par de días, el director de la fábrica nos llama quejándose de que el sistema clasifica mal el 25% de los peces - ¿ Qué ha pasado ? -SOBREAJUSTE (OVERFITTING) -Se ha memorizado el problema Pasos para el desarrollo de un modelo de predicción: introducción Objetivo: poder predecir de manera eficaz una propiedad de un conjunto de casos que no se nos han dado anteriormente. Ejemplos: • ¿hay problemas cardíacos o no en paciente nuevo? • ¿un cliente de un banco se cambiará o no a otra compañía? • ¿subirá o bajará el índice Dow Jones mañana? Dicha predicción se realiza a partir de información adicional (variables independientes o atributos). Ejemplos: historial clínico + pruebas clínicas sencillas historial de movimientos bancarios + datos personales historial del Dow Jones + otros índices relevantes Pasos para el desarrollo de un modelo de predicción: introducción Requisito indispensable para la construcción de un modelo: necesitamos partir de una base de datos de casos anteriores conocimiento Si no disponemos de la base de datos, hay que crearla. La mayor parte de las veces esta base de datos proviene de investigadores de áreas distintas a la informática. Pasos para el desarrollo de un modelo de predicción: introducción ¿ Qué propiedades debe tener la base de datos de casos anteriores ? Los casos deben ser medidos en las mismas condiciones que los que queremos predecir. Por ejemplo, las pruebas médicas deben de hacerse y evaluarse usando los mismos criterios problema práctico cuando se mezclan informaciones de diferentes fuentes. Los casos no deben tener ningún sesgo relevante frente a los casos a predecir. Por ejemplo, si queremos predecir problemas de corazón en pacientes de ambos sexos, no nos vale una base de datos en la que sólo hay mujeres, ya que el sexo puede ser un factor importante en el diagnóstico. Pasos para el desarrollo de un modelo de predicción: introducción ¿ Qué propiedades debe tener la base de datos de casos anteriores ? Codificación de las variables: Cada una de las variables de cada caso (variable a predecir, variables independientes) debe tomar un único valor, que debe ser numérico o simbólico. Por ejemplo: la variable “sexo” puede ser “H” o “M”, pero no “de género masculino”, “de género femenino”. En general, los métodos estándar de aprendizaje prefieren variables numéricas: por ejemplo “0” para hombre, “1” para mujer. Pasos para el desarrollo de un modelo de predicción: introducción ¿ Qué propiedades debe tener la base de datos de “casos anteriores” ? - Minimización de la redundancia en las variables: se evitará codificar con diferentes valores el mismo significado. Por ejemplo: no se admite codificar a veces como “0”, otras como “1” el sexo “hombre”, y a veces como “2”, otras como “3” el sexo “mujer”. - Definición inconfusa de los valores: se evitará codificar con el mismo valor cosas diferentes: cuidado al mezclar datos provenientes de distintas fuentes !!! Pasos para el desarrollo de un modelo de predicción: introducción ¿ Qué es entonces la base de datos de casos anteriores ? - Tabla en la que hay tantas filas como casos. - Hay tantas columnas como variables en el problema: variables predictoras + variables a predecir (etiquetas o target) - En cada celda de la tabla, hay un sólo valor, que se escoge como numérico - En problemas de clasificación y regresión, los valores de la columna variable a predecir están rellenados apropiadamente - Valores del resto de las columnas pueden no estar rellenos: “missing values” (“valores ausentes”). Pasos para el desarrollo de un modelo de predicción: introducción Representación de la Base de datos Base de datos: X m filas = patrones n columnas = atributos n X={xij} m xi Colon cancer, Alon et al 1999 y={yj} Pasos para el desarrollo de un modelo de predicción: Análisis y definición del problema ¿ qué queremos predecir exactamente ? • Debemos definir de una manera objetiva, medible y completamente clara la variable a predecir. • Hace falta un conocimiento profundo del problema: esta variable se deberá determinar con ayuda de expertos. Pasos para el desarrollo de un modelo de predicción: Análisis y definición del problema ¿ A partir de qué datos vamos a predecir la variable objetivo ? Si partimos del problema de cero (no tenemos la base de datos creada): - conocimiento experto: ¿qué variables son relevantes ? - obtención de los datos Si ya tenemos la base de datos: - conocimiento experto + análisis de datos - selección de variables y unificación de los datos en una sola base de datos En cualquiera de los dos casos, se puede realizar una segunda selección de variables en el proceso de modelado. Pasos para el desarrollo de un modelo de predicción: Creación y depuración de la base de datos Creación de “tabla” con el mismo número de columnas = número de atributos Codificación numérica de las variables Minimización de la redundancia en las variables Definición inconfusa de los valores Depuración de los datos Auditoria de los datos Análisis estadístico de la base de datos (Normalización). Limpieza de “outliers” (datos anómalos). Missing values (“valores ausentes”). Segmentación de valores. Pasos para el desarrollo de un modelo de predicción: Creación y depuración de la base de datos Preprocesamiento de datos - Diferentes tipos de datos: numéricos (discretos/continuos), simbólicos, categóricos, series temporales, vectoriales, … - ¿Cómo se codifican? diferentes criterios - Creación de grupos: segmentación - Compresión de series temporales: media, tendencia, varianza. - Obtención de variables sintéticas: ratios. Se necesita conocimiento experto. - Obtención de nuevas características: PCA, LDA, ICA - Missing values (datos ausentes) Pasos para el desarrollo de un modelo de predicción: Creación y depuración de la base de datos “Missing values” Tipos de “missing values”: - campo no rellenado por olvido. Ejemplo: sexo de una persona - campo no rellenado por imposibilidad. Ejemplo: edad del marido/mujer (en caso de ser solter@). - valor "especial". - verificar en qué datos hay “missing values” y discutir por qué -> detección de posibles errores en la introducción de los datos. ¿ Qué hacemos con ellos ? - borrar patrón: ¿ qué hacemos entonces con los nuevos datos a predecir que contengan “missing values”? - borrar columna: pierdo datos. A lo mejor el hecho de ser “missing value” es informativo. - sustituir “missing values” por un valor numérico especial: cuidado! rompo topología. - sustituir “missing value” por valor promedio. - tratar de predecir “missing values”. Pasos para el desarrollo de un modelo de predicción: Creación Conjuntos de Entrenamiento, Validación y Test Dividir el conjunto de datos iniciales en subconjuntos de forma aleatoria, manteniendo la representación de partida • Objetivo: construcción de un modelo definitivo que responda al problema de predicción planteado con un grado de fiabilidad determinado Conjunto de entrenamiento: conjunto de datos con el que Se construyen distintos modelos para resolver el problema Se seleccionan uno o varios modelos finales Pasos para el desarrollo de un modelo de predicción: Creación Conjuntos de Entrenamiento, Validación y Test Conjunto de validación: conjunto de datos con el que Se validan los modelos finales del punto anterior Se determina el modelo definitivo según: 1.- Modelo con mejor ajuste a los datos 2.- Modelo más “cercano” al problema de predicción Conjunto de prueba: conjunto de datos con el que Se realizan pruebas de funcionamiento del modelo Pasos para el desarrollo de un modelo de predicción: Creación Conjuntos de Entrenamiento, Validación y Test Conjunto de datos de partida 1.- El conjunto de entrenamiento y validación deben salir del mismo conjunto de datos inicial (misma población) • 60% + 40% entrenamiento + validación • Muestras reducidas: • Validación cruzada (“Cross-validation”) • K-fold (K=10) • leave-one-out = n-fold • Bootstrap = muestreo con reemplazamiento 2.- El conjunto de prueba puede o no salir del conjunto de datos inicial Valoraciones independientes Pasos para el desarrollo de un modelo de predicción: selección de modelos Modelos lineales: Análisis Discriminantes Lineales Modelos basados en núcleos: Máquinas de vectores de soporte (“Suppot Vector Machine”, SVM) Redes neuronales: Perceptrón Multicapa, PCM (“Multilayer Perceptron”, MLP) Modelos probabilísticos: Redes Bayesianas Árboles de decisión: ID3, C4.5 Métodos de “clustering”: “K-means”, Métodos Espectrales Pasos para el desarrollo de un modelo de predicción: selección de modelos Discriminante Lineal Árboles de decisión Representación: Iris Data Set (Fisher, 1936) setosa versicolor virginica Mezclas de Gausianas Kernel method (SVM) Pasos para el desarrollo de un modelo de predicción: selección de modelos ¿Cómo de bueno es un clasificador? Métodos Estadísticos ANÁLISIS ROC: Receiver Operating Characteristic curve Sens Negativo Positivo TP TP FN Spec acc Recall Precision TN TN FP TN TP PN TP TP TN TP TP FP Pasos para el desarrollo de un modelo de predicción: selección de modelos Variación del umbral Elección de la frontera de decisión f(x) < 0 x2 f(x) < 0 x2 f(x) > 0 f(x) > 0 x1 x1 Pasos para el desarrollo de un modelo de predicción: selección de modelos Variación del umbral Elección de la frontera de decisión f(x) < -1 x2 f(x) < -1 x2 f(x) > -1 f(x) > -1 x1 x1 Pasos para el desarrollo de un modelo de predicción: selección de modelos Variación del umbral Elección de la frontera de decisión f(x) < 1 x2 f(x) < 1 x2 f(x) > 1 f(x) > 1 x1 x1 Pasos para el desarrollo de un modelo de predicción: selección de modelos Curva ROC curva ROC Ideal (AUC=1) 100% TPR, tasa de acierto (“hit rate”), sensibilidad Cada punto de la curva ROC corresponde al resultado para un valor de umbral en f(x)=δ. 0 AUC 1 0 FPR, 1-specificity 100% Pasos para el desarrollo de un modelo de predicción: selección de modelos Puntos de la curva ROC son distintos niveles de decisión o valores de corte que permiten una clasificación dicotómica de los valores de la prueba según sean superiores o inferiores al valor elegido. La diferencia esencial con el caso más simple es que ahora no tenemos un único par de valores de sensibilidad y especificidad que definan la exactitud de la prueba, sino un conjunto de pares correspondientes a cada uno de los distintos niveles de decisión. Pasos para el desarrollo de un modelo de predicción: selección de modelos Muestra un balance entre sensibilidad y especificidad El clasificador (medido sobre el conjunto de test) es más exacto cuanto más cerca esté del borde superior izquierdo. El clasificador (medido sobre el conjunto de test) es tanto más inexacto cuánto más cerca esté la curva a la diagonal de los 45 grados. La pendiente de la línea tangente en un punto de corte da la tasa de verosimilitud (LR) para ese valor del test. El área bajo la curva es una medida de la calidad del clasificador (AUCROC) 0.90-1.00 = excelente 0.80-0.90 = buena 0.70-0.80 = justa 0.60-0.70 = pobre 0.50-0.60 = mala Pasos para el desarrollo de un modelo de predicción: selección de modelos Comparamos distintos clasificadores Pasos para el desarrollo de un modelo de predicción: selección de modelos Curva de campaña Estamos interesados en detectar los ejemplos más claros de una clase: queremos detectar las personas que dado unos síntomas X claramente no tienen la enfermedad Y. De esta forma nos evitamos hacer pruebas médicas innecesarias. Empresas que quieren retener a los clientes de su cartera actual (por ej. aseguradora o compañía telefónica. …). Lanzamos una campaña de marketing en la que se ofertan regalos a los clientes a cambio de que se queden en la compañia. No queremos malgastar el dinero asignado a esta campaña de promoción ofertándoles regalos a clientes que de todas formas se iban a quedar: así que detectamos los clientes que tienen más probabilidad de abandonar la compañía. Pasos para el desarrollo de un modelo de predicción: selección de modelos •¿Cómo de bien el clasificador distingue los casos positivos? hit _ rate %TPprediction Hit rate = sensitivity % Pdataset •Datos son ordenados de acuerdo al resultado del clasificador: probabilidad de la clase positiva de mayor a menor •División del conjunto de datos en fracciones (10 es un número aceptado, 10%, 20%, ..., 100%) hit10%, hit20%, hit30%, ...., hit100% •La mayor concentración de predicciones positivas estarán en los primeros quantiles. Pasos para el desarrollo de un modelo de predicción: selección de modelos ANÁLISIS TAMAÑO CAMPAÑA vs ACIERTO - Procedemos a estudiar el comportamiento de nuestro modelo en el conjunto de entrenamiento/validación/test. - Dado un umbral , la regla x < selecciona N patrones, que representan un porcentaje del t % (“tamaño de la campaña”). - De ese número de patrones seleccionado, un porcentaje h1 % pertenece a la clase que queremos detectar (“tasa de acierto de la campaña”). - La curva tamaño campaña vs acierto es el conjunto de todos los pares (t, h1 ) que podemos obtener. Pasos para el desarrollo de un modelo de predicción: selección de modelos CÓMPUTO DE LA GRÁFICA TAMAÑO CAMPAÑA vs ACIERTO 1. Calcular las estimaciones/predicciones de los ejemplos en el conjunto a estudiar, y ordenarlas de mayor a menor en referencia a las predicciones positivas. 2. Inicializar n=1, N1=0 (positiva), N0=0 (negativa) 3. Si la clase del ejemplo es 1, sumar 1 a N1. Si no, sumarlo a N0. 4. La campaña con = zn tiene un tamaño del 100*n / Ndata %, y una tasa de acierto del 100*N1 / n %. 5. Si siguen quedando ejemplos de entrenamiento, sumar 1 a n y volver al punto 3. Pasos para el desarrollo de un modelo de predicción: selección de modelos Pasos para el desarrollo de un modelo de predicción: selección de modelos COMBINACIÓN DEL ANÁLISIS CON LA MATRIZ DE COSTO - Para terminar de ajustar nuestro modelo (umbral de decisión), deberíamos tener en cuenta el coste total de predicción: nuestro objetivo es maximizar los beneficios. En el caso de la predicción de la enfermedad, queremos maximizar la tasa de acierto en los pacientes que no han desarrollado la enfermedad, a la vez que minimizamos el número de personas en las que nos equivocamos. En el caso de la compañía, queremos maximizar los beneficios totales de la compañía (beneficios que reportan los clientes que se quedan menos costo de la campaña de publicidad). -Estos costes / beneficios se obtienen a través de análisis de expertos, y constituyen nuestra matriz de costo: Cij: beneficio obtenido al clasificar un patrón de tipo j como i.