Aprendizaje Automatizado rboles de Clasificacin rboles de Clasificacin
Aprendizaje Automatizado Árboles de Clasificación
Árboles de Clasificación l l Entrada: Objetos caracterizables mediante propiedades. Salida: – – l En árboles de decisión: una decisión (sí o no). En árboles de clasificación: una clase. Conjunto de reglas.
Árboles de Clasificación l Se clasifican las instancias desde la raíz hacia las hojas, las cuales proveen la clasificación. l Cada nodo especifica el test de algún atributo. l Ejemplo: Si (Outlook = Sunny, Temperature = Hot, Humedity = High, Wind = Strong) Juego al tenis?
Play Tennis
Play Tennis l Disyunción de conjunciones: (Outlook = Sunny And Humidity = Normal) Or (Outlook = Overcast) Or (Outlook = Rain And Wind = Weak)
Play Tennis
Problemas Apropiados l Las instancias pueden ser representadas por pares (atributo, valor). l La función objetivo tiene valores discretos (o pueden ser discretizados). l Pueden ser requeridas descripciones en forma de disjunción. l Posiblemente existen errores en los datos de entrenamiento (robustos al ruido). l Posiblemente falta información en algunos de los datos de entrenamiento.
Algoritmo básico para obtener un árbol de decisión l Búsqueda exhaustiva, en profundidad (de arriba hacia abajo), a través del espacio de posibles árboles de decisión (ID 3 y C 4. 5). l Raíz: el atributo que mejor clasifica los datos Cuál atributo es el mejor clasificador? respuesta basada en la ganancia de información.
Algoritmos: ID 3 (Interactive Dichotomizer Version 3) l Entropía(S) - pÅ log 2 pÅ - p. Q log 2 p. Q pÅ = proporción de ejemplos positivos. p. Q = proporción de ejemplos negativos. S: conjunto de datos actual. Por ejemplo, en el conjunto de datos Play Tennis pÅ = 9/14, p. Q = 5/14 y E(S) = 0. 940 En general: Entropía(S) = - i=1, c pi log 2 pi
Algoritmos: ID 3 (Interactive Dichotomizer Version 3) Por ejemplo: Si S 1 es el subconjunto de S en el cual Humedity = High Entonces: l – pÅ = 3/7 – p. Q = 4/7 – Entropía(S 1) = -3/7 log 2 3/7 - 4/7 log 2 4/7 = 0. 985
Entropía y proporción de positivos
Ganancia de información l Mide la reducción esperada de entropía sabiendo el valor del atributo A Gain(S, A) Entropía(S) - v Valores(A) (|Sv|/|S|)Entropía(Sv) Valores(A): Conjunto de posibles valores del atributo A Sv: Subconjunto de S en el cual el atributo A tiene el valor v Ej: Gain(S, Humedad) = 0. 940 - (7/14)0. 985 - (7/14)0. 592 proporción de humedad alta prop. de humedad normal
Play Tennis
Play Tennis l. Gain(S, Outlook) = 0. 246 l. Gain(S, Humidity) = 0. 151 l. Gain(S, Wind) = 0. 048 = 0. 029 l. Gain(S, Temperature) Outlook es el atributo del nodo raíz.
Play Tennis
Algoritmo: CART (Classification and Regression Trees) l l Árboles de clasificación: predicen categorías de objetos. Árboles de regresión: predicen valores continuos. Partición binaria recursiva. En cada iteración se selecciona la variable predictiva y el punto de separación que mejor reduzcan la ‘impureza’.
Índice de diversidad de Gini
Índice de diversidad de Gini l Ai es el atributo para ramificar el árbol. l Mi es el número de valores diferentes del atributo A i. l p(Aij) es la probabilidad de que ésimo valor (1 <= j <= Mi). Ai tome su j-
Índice de diversidad de Gini l p(Ck|Aij) es la probabilidad de que un ejemplo pertenezca a la clase Ck cuando su atributo Ai toma su j-ésimo valor. l p(¬Ck|Aij) es l 1 - p(Ck|Aij). Este índice es utilizado como una medida de impureza de la información al igual que la entropía.
Sobreentrenamiento l Se debe evitar el sobreentrenamiento – – Parar de crecer el árbol temprano. Postprocesamiento del árbol (poda) Cómo? – – Usar un conjunto de ejemplos de validación Usar estadísticas
Matlab - Statistics Toolbox l l La clase @classregtree está diseñada para manipular árboles de regresión y árboles de decisión (CART). Ejemplo: >> load fisheriris; >> t = classregtree(meas, species, 'names', {'SL' 'SW' 'PL' 'PW'})
Matlab - Statistics Toolbox t = Decision tree for classification 1 if PL<2. 45 then node 2 else node 2 class = setosa 3 if PW<1. 75 then node 4 else node 4 if PL<4. 95 then node 6 else node 5 class = virginica 6 if PW<1. 65 then node 8 else node 7 class = virginica 8 class = versicolor 9 class = virginica 3 5 7 9
Matlab - Statistics Toolbox >> view(t)
Matlab - Statistics Toolbox l Clasificar datos: sfit = eval(t, meas); l Computar la proporción de clasificados correctamente: pct = mean(strcmp(sfit, species)) pct = 0. 9800
Matlab - Statistics Toolbox l Calcular el promedio de errores al cuadrado: mse = mean((sfit - species). ^2) l Podar el árbol: t 2 = prune(t, 'level', 1)
- Slides: 25