Clasificación Marta Millan [email protected] www.eisc.univalle.edu.co/materias Clasificación vs. Predicción Clasificación Predicción de etiquetas categóricas Clasificar los datos (construir un modelo) basándose en un conjunto de datos de entrenamiento y los valores de un atributo de clasificación, y luego utilizar el modelo para clasificar nuevos datos Clasificación vs. Predicción Predicción Modelos (funciones) para variables con valores continuos, i.e., predicción de valores desconocidos Aplicaciones típicas Concesión de créditos Campañas de marketing Diagnósticos médicos Clasificación Muy similar a la experiencia de aprendizaje humana Utilización de la observación para formar un modelo Analizar un conjunto de datos para determinar las características de los mismos (creación de un modelo) Clasificación Aprendizaje supervisado El modelo se forma a partir de datos clasificados correctamente de antemano Los modelos se desarrollan en dos fases Entrenamiento Prueba Clasificación Objetivo Obtener modelos que discrimine las instancias de entrada en diferentes clases de equivalencia por medio de los valores de diferentes atributos. Y X Clasificación Requisitos Suministrar el atributo decisión o clase (label) El conjunto de valores de este atributo debe ser finito y no excesivamente grande Suministrar los atributos condición Podría requerir datos que no sean numéricos pero existen variedades que tratan con datos numéricos Número máximo de precondiciones Soporte mínimo de las reglas Clasificación Entrada de los algoritmos Atributos condición: Atributos usados para describir por medio del proceso de inducción las clases. Atributos decisión o label: Atributos usados para construir las clase en los métodos supervisados (una clase por cada valor o combinación de valores de dichos atributos). Clasificación Construcción del modelo Describir un conjunto de datos con base en una característica • Cada tupla pertenece a una clase predefinida determinada por el atributo de decisión • Se utiliza el conjunto de datos de entrenamiento • El modelo se representa a través de reglas de clasificación, árboles de decisión o mediante formulas matemáticas Clasificación Uso: Para clasificar objetos nuevos de los que se desconoce su clase Determinación de la precisión del modelo Utiliza le modelo para clasificar el conjunto de datos de entrenamiento y se compara el resultado con la etiqueta original La exactitud es el porcentaje de conjunto de datos de prueba que son clasificados correctamente El conjunto de datos entrenamiento y el conjunto de datos de prueba deben de ser disjuntos, para evitar el overfitting Clasificación Representación del error Matriz de Confusión Representación en forma de tabla del número de instancias clasificadas correctamente Predicción B 56 1355 A B Datos reales A 1034 107 Clasificación Construcción del modelo Algoritmos de clasificación Datos de entrenamiento Nombre Alberto Maria Nacho Alvaro David Sonia Tipo Asociado Asociado Titular Asociado Asociado Asociado Años 3 7 2 7 6 3 Fijo no si si si no no Clasificador (Modelo) IF tipo = ‘Titular’ OR años > 6 THEN fijo = ‘si’ Clasificación Técnicas Árboles de inducción C4.5 y sus variantes, ID3 Muy eficientes en tiempo de proceso Resultados intuitivos Inducción neuronal El resultado es una arquitectura de nodos con pesos Muy robustas Clasificación Técnicas Técnicas simbólicas: árboles de inducción Muy eficientes en tiempo de proceso Resultados intuitivos Particiones lineales Algunos presentan problemas con variables continuas Clasificación Técnicas Redes neuronales Sólo entrada numérica Mas robusto Difícil de entender la salida Clasificación Árboles de decisión Árboles de decisión La representación es en forma de árbol Los nodos representan la verificación de una condición sobre un atributo Las ramas representan el valor de la condición comprobada en el nodo del cual derivan Los nodos hoja representan las etiquetas de clase Clasificación Árboles de decisión La construcción de los árboles de decisión en dos fases Construcción del árbol • Al principio, todos las tuplas del conjunto de entrenamiento está en la raíz • Se dividen recursivamente con base en el atributo seleccionado Poda del árbol • Identificar y eliminar las ramas que presentan ruido o outliers Clasificación Árboles de decisión Utilización de los árboles de decisión: clasificar una muestra desconocida Comprobar los valores de los atributos de la nueva muestra con las condiciones del árbol y descubrir su etiqueta de clase Ejemplo Datos de entrenamiento Edad alta alta alta media baja baja baja media baja media media media alta media Estudia Ratio de crédito no aceptable no excelente no aceptable no aceptable si aceptable si excelente si excelente no aceptable si aceptable si aceptable si excelente no excelente si aceptable no excelente Compra no no si si si no si no si si si si si no Ejemplo Árbol de decisión Edad? overcast 30..40 <=30 Estudia? si no si no si >40 Ratio de crédito? excelente no aceptable si Árbol de decisión: algoritmo Algoritmo básico (voraz) El árbol se construye de forma top-down recursiva utilizando divide y vencerás Al principio, todas las tuplas se encuentran en la raíz Los atributos deben ser categóricos, si son valores continuos hay que discretizarlos previamente Las tuplas se van dividiendo recursivamente en base al atributo seleccionado Los atributos de condición se seleccionan en base a heurísticas o mediante medidas estadísticas, por ejemplo, ganancia de información Árbol de decisión: algoritmo Condiciones de terminación de división Todas las muestras en un nodo pertenecen a la misma clase No hay más atributos para futuras particiones. Se puede utilizar votación para clasificar el nodo hoja No quedan más ejemplos Ganancia de información (ID3/C4.5/C5.0) Seleccionar el atributo con mayor ganancia de información Si hay dos clases, P y N Sea el conjunto de ejemplo S que contiene p elementos de la clase P y n elementos de las clase N La cantidad de información, que se necesita para decidir si una muestra cualquiera de S pertenece a P o a N se define como I ( p, n ) = − p p n n log 2 − log 2 p+n p+n p+n p+n Ganancia de información en árboles de decisión Si se utiliza un atributo A, un conjunto S se dividirá en conjuntos {S1, S2 , …, Sv} Si Si contiene pi ejemplos de P y ni ejemplos de N, la entropía, o la información necesaria para clasificar objetos en todos los subárboles Si es pi + ni E ( A) = ∑ I ( pi , ni ) i =1 p + n ν La ganancia de información de la rama A es Gain( A) = I ( p, n) − E ( A) Selección de atributos usando ganancia de información Clase P: compra = “si” Clase N: compra = “no” I(p, n) = I(9, 5) =0.940 Calcular la entropía para edad: edad <=30 30…40 >40 pi 2 4 3 ni I(pi, ni) 3 0,971 0 0 2 0,971 E ( edad 5 4 I ( 2 ,3 ) + I ( 4 ,0 ) 14 14 5 + I ( 3 , 2 ) = 0 . 971 14 ) = Gain(edad ) = I ( p, n) − E (edad ) Gain(ingresos ) = 0.029 Gain(estudia ) = 0.151 Gain(ratio de crédito) = 0.048 Extracción de reglas de árboles de decisión Si condición Entonces decisión Se crea una regla por cada camino de la raiz a las hojas Cada par atributo-valor a lo largo del camino representa una conjunción El nodo hoja representa la clase SI edad = “<=30” Y estudiante = “no” ENTONCES compra_pc = “no” SI edad = “<=30” Y estudiante = “si” ENTONCES compra_pc = “SI” Evitar el “overfitting” El árbol generado es posible que sea muy exacto para el conjunto de entrenamiento Demasiadas ramas puede significar que algunas son debidas al ruido o a los outliers Poca exactitud en los ejemplos no vistos Dos enfoques para evitarlo Prepruning Postpruning Enfoques para determinar el tamaño final del árbol Separa los datos en los conjuntos de entrenamiento (2/3) y prueba (1/3) Utilizar la validación cruzada e.g., la validación 10-fold Utilizar todos los datos para entrenamiento Pero aplicar un test estadístico (e.g., chi-square) para estimar si expandir o podar un nodo Mejoras en los árboles Permitir atributos con valores continuos Tratamiento de valores nulos Se definen dinámicamente los valores discretos que dividen los valores del atributo en un conjunto discreto de intervalos Se asigna el valor mas frecuente Se asigna una probabilidad a cada uno de los posibles valores Creación de nuevos atributos que reduzcan la repetición y la replicación Clasificación bayesiana ¿por qué? Aprendizaje probabilístico: Calcula hipótesis probabilísticas explícitas y destaca entre los enfoques mas comunes para ciertos tipos de problemas Incremental:Cada ejemplo puede incrementar/decrementar la probabilidad de que una hipótesis sea correcta. La predicción probabilística predice múltiple hipótesis ponderadas Teorema de Bayes Dado un conjunto de datos, la probabilidad a posteriori de una hipótesis h es: P ( D | h ) P ( h ) P(h | D) = P(D) Dificultad: requiere conocimiento inicial de las probabilidades Clasificador Naïve Bayes Classifier (I) Suposición simplificada: los atributos son condicionalmente independientes : n P(Cj|V) ∞ P(Cj)∏P(vi|Cj) i=1 Reduce enormemente el costo computacional pues solo tiene en cuenta la distribución de la clase. Clasificador Naive Bayes (II) Dado un conjunto de entrenamiento se puede calcular las probabilidades Tiempo soleado cubierto lluvia Temperatura calor suave fresco P 2/9 4/9 3/9 2/9 4/9 3/9 N 3/5 0 2/5 2/5 2/5 1/5 Humedad P N alta 3/9 4/5 normal 6/9 1/5 Viento si no 3/9 3/5 6/9 2/5 Redes Neuronales Ventajas La exactitud es generalmente alta Robusto, trabaja bien incluso cuando los datos contienen errores La salida puede ser discreta, valor real, un vector de valores reales Evaluación rápida de la función aprendida Crítica Largo tiempo de entrenamiento Dificultas de entender la función aprendida Predicción de valores similar a la clasificación Primero construye un modelo El modelo predice el valor desconocido El principal método es la regresión Regresión lineal y múltiple Regresión no lineal Predicción de valores En lo que difiere de la clasificación La clasificación predice clases de valores categóricos Los modelos de predicción son funciones continuas Algoritmos de Predicción de Valores Para un conjunto de atributos condición: c1, c2, c3, ... , cn Se pretende aproximar el atributo X como: X=w1 c1 + w2 c2 + w3 c3 + ... + wn cn En otras palabras, calcular el vector de pesos (w1, w2, w3, ... wn) Algoritmos de Predicción de Valores (Regresión) X c Análisis de regresión Regresión lineal: Y = α + β X Los parámetros α y β especifican la línea y se estiman utilizando los datos. Regresión múltiple: Y = b0 + b1 X1 + b2 X2. Modelos Log-linear: La tabla de probabilidades conjunta se aproxima por el producto de tablas de ordenes inferiores. Probabilidad: p(a, b, c, d) = αab βacχad δbcd Exactitud de la clasificación: estimación de los errores División: Entrenamiento y prueba Validación cruzada (Cross-validation) Conjuntos independientes (2/3), (1/3) Se utiliza cuando se tienen muchos datos Dividir el conjunto en K muestras Utilizar k-1 muestras como entrenamiento y la restante como prueba (k-fold cross-validation) Datos con tamaño moderado Bootstrapping (dejar uno fuera) Datos de tamaño pequeño Boosting y Bagging El Boosting incrementa la exactitud de la clasificación Aplicable a los árboles de decisión o a los Clasificadores Bayesianos Se entrenan distintos clasificadores y cada uno aprende de su predecesor Bagging: entrenamiento donde se van eligiendo k elementos con reemplazamiento. Se puede utilizar en la predicción numérica Resumen La clasificación es posiblemente una de las técnicas mas usada Dependiendo del tipo de datos y del tipo de la variable a estimar así se eligen las técnicas Conviene entrenar los datos con distintas técnicas